基本数据类型
大约 2 分钟
基本数据类型
数值类型

选取适当的数据类型
- 比如age TINYINT; 不要写成age int
选数据类型两个原则
- 是否越界 (text类型评论发送不了全文)
- 精度是否足够(float 7; double 15)
INT(7) 什么意思
int底层内存存储的数据大小固定不变(INT 类型总是占用 4 个字节的存储空间,无论括号中的数字是多少),括号内数字是一个显示时显示的宽度;即,与显示和格式化有关,与数据的实际存储或值域无关
字符串类型

字符串使用单引号
'name'
varchar使用的时候要指定大小,如varchar(50)
varchar与char的区别:
首先明确的是,char的长度是不可变的,而varchar的长度是可变的。
定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了;。
char的存取数度还是要比varchar要得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。
char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,。
日期和时间类型

select unix_timestamp(now());
距离1970-1-1的秒数
enum和set
enum枚举只能取其中一个数据类型
create table students(
id int auto increment primary key,
name varchar(20),
gender enum('male', 'female') #字符串用单引号
);
insert into students(name, gender) values('zhangsan', 'male'),('lisi', 'female');
creata table orders(
id int auto_increment primary ket,
product_name varchar(100),
payment_methods set('cash', 'credit card', 'debit card')
);
insert into orders(product_name, payment_methods) values('book', 'credit card, cash');