mysql 表操作 数据类型
一 查看支持引擎
-- 数据库支持的存储引擎 show enginesG -- 正在使用的存储引擎 show variables like "storage_engine%";
二 数据类型
1 整数类型
tinyint smallint int bigint 类型 大小 范围(有符号) 范围(无符号) 用途 tinyint 1字节 (-128,127) (0,255) 小整数 smallint 2字节 (-32768, 32767) (0,65535) 大整数 int 4字节 (-2147483648,2147483647) (0,4294967295) 大整数 bigint 8字节 极大整数值 float 4字节 单精度 浮点数值 double 8字节 双精度 浮点数值 decimal 小数值
2 字符串数据类型
char 固定长度字符串 最多为255个字符 varchar 可变长度字符串 最多为65535个字符
3 浮点型
float double decimal
4 日期型
date time datetime timestamp year YEAR YYYY(1901/2155) DATE YYYY-MM-DD(1000-01-01/9999-12-31) TIME HH:MM:SS('-838:59:59'/'838:59:59') DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
4-1 datatime 与 timestamp 的区别
--- datetime 与timestamp的区别 1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。 2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。 3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。 4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
5 字符类型
char类型:定长,简单粗暴,浪费空间,存取速度快 字符长度范围:0-255(一个中文是一个字符,是utf8编码的3个字节) 存储: 存储char类型的值时,会往右填充空格来满足长度 例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储 varchar类型:变长,精准,节省空间,存取速度慢 字符长度范围:0-65535 varchar类型存储数据的真实内容,不会用空格填充,如果'ab ',尾部的空格也会被存起来 虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡
6. 枚举类型与集合类型
enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)
create table consumer( name varchar(50), sex enum('male','female'), level enum('vip1','vip2','vip3','vip4','vip5'), hobby set('play','music','read','study') ); insert into consumer values ('yyy','male','vip5','read,study'); insert into consumer values ('xxx','female','vip1','music'); mysql> select * from consumer; +------+--------+-------+------------+ | name | sex | level | hobby | +------+--------+-------+------------+ | yyy | male | vip5 | read,study | | xxx | female | vip1 | music | +------+--------+-------+------------+
7. 列属性
数值 unsigned 禁止使用负值 仅整数 auto_increment 生成包含连续唯一整数值的序列 default 如果没有指定值 则为其提供默认值 null not null 不能为空 binary 二进制 character set 指定使用字符集
create table student(id int not null primary key AUTO_INCREMENT); create table student1(id int not null primary key AUTO_INCREMENT,name varchar(20))charset utf8; create table teacher(id int not null ,name varchar(20) not null); create table teacher1(id int not null ,name varchar(20) not null,beizhu varchar(20) not null default "ok");
primary key 主键; 非空唯一
unique 唯一