一、字符串类型的基本使用其细节
utf 8编码格式:三个字节表示一个字符;ctf8 varchar(size) size =(65535-3)/3=21844;
gbk编码格式:两个字节表示一个字符;gbk varchar(size) size =(65535-3)/2=32766;
格式:
先创建表:create table 表名(列名1 列格式1,列名2 列格式2,列名n 列格式n );
给表中插入相应的数据:
insert into 表名(列名1,列名2,列名3,......列名n) values(依据列名对应的列格式赋值);
查询表:
select * from 表名;
-
char(x)和varchar(x) 这两种字符串类型后面的x值,代表的是字符个数,不是字节数,具体的占用空间取决于所用的编码格式,不管是中文还是英文最多都是存放x个字符数;
-
char(x)这个数据是定长的,也就是大小由x的值决定,而不是插入的具体值,x的值最大为255;
-
varchar(x)数据是可变长,x只是最大值,而具体占用大小是由插入的数值决定,而不是由x来决定,注意:在使用varchar(x)时,本身有1到3个字节被用来存放内容长度;
-
查询速度:char>varchar
-
如果varchar不够用,存放文本时,可以考虑使用text(0-2^16字节)、mediumtext(0-2^24字节)、longtext(0-2^32)
二、日期类型的基本使用
时间戳:timestamp not null default current_timestamp no update current_timestamp 表示时间戳不为空,同时在插入数据的参数列表中,不填写也可以获取当前的日期和时间;
mysql中 注释的快捷键:ctrl+shift +C 取消注释的快捷键:ctrl+shift +R;
-- 一、字符串类型的基本使用 -- (1)CHAR(size)固定长度字符串最大255字符 -- (2)varchar(size)可変长度字符串最大65532字节; -- utf 8编码最大21844字符(1-3)1-3个字节用于记录大小 -- utf 8编码:三个字节表示一个字符:utf 8 varchar(size) size =(65535-3)/3 =21844 -- gbk编码:两个字节表示一个字符: gbk varchar(size) size = (65535-3)/2 = 32766 CREATE TABLE t08( `name` CHAR(255)); SELECT * FROM t08; CREATE TABLE t09( `name` VARCHAR(32767)) CHARSET utf8;##utf8编码大小最大为21844,CHARSET为编码格式 CREATE TABLE t10( `name` VARCHAR (32766)) CHARSET gbk; ##gbk编码大小最大为32766 -- 注释的快捷键:ctrl+shift+c 取消注释:ctrl+shift+r -- 二、字符串类型使用的注意细节 -- (一)char(4) 和varchar(4) 这个4表示字符个数,不是字节个数,至于多大取决于编码格式,char后面的数字最大可以取255,不管是中文还是字母都是按照字符数进行计算 -- (二)char(4)是定长(固定的大小),这里是4位,即使插入的值不够4个字符,也会占用分配的4个字符 -- varchar(4)是变长的,空间大小是根据插入的实际字符数所决定,而不是这里的4个字符数;注意:使用varchar是本身需要预留1-3个字节来记录存放内容长度 -- 查询速度:char>varchar CREATE TABLE t11( `name` VARCHAR(5));#表示为5个字符数,空间大小取决于实际锁插入的字符数 -- drop table t11; INSERT t11 VALUE('china'); SELECT *FROM t11; -- 如果varchar不够用,可以考虑使用mediumtext 或者longtext,或者直接用text CREATE TABLE t12(content TEXT,content1 MEDIUMTEXT,content3 LONGTEXT); INSERT t12 VALUES('教育技术学','计算机科学与应用技术','互联网工程技术于大数据'); SELECT * FROM t12; -- 三、日期类型的基本使用 CREATE TABLE t13( `name` VARCHAR(5), birthday DATE, age INT, job_time DATETIME, login_time TIMESTAMP #TIMESTAMP (时间戳)可以进行自动更新当前的日期和时间 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); #drop table t13; SELECT *FROM t13; INSERT INTO t13 (`name`,birthday,age,job_time)#这里虽然没有加上login_time 这个参数,但是在执行下面语句时候,会自动更新当前日期和时间 VALUES ('李四','1994-1-1','25','2020-11-11 10:10:10');
-- 创建一个员工表emp,适当选用合适的数据类型 CREATE TABLE emp( id INT, `name` VARCHAR(4), sex CHAR(2), birthday DATE, entry_date DATE, job CHAR(4), salary DOUBLE, `resume` LONGTEXT); -- 添加一条数据 INSERT INTO emp(id,`name`,sex,birthday,entry_date,job,salary,`resume`) VALUES('001','张三','男','1994-11-11','2020-5-15','程序员', '15600.00', '主要负责程序的开发与运行和维护,按时完成公司交给的业务'); -- 查找表 SELECT *FROM emp;
标签:字符,varchar,字节,--,Mysq,name,字符串,类型,size From: https://www.cnblogs.com/nzm-2019/p/16875609.html