数值型:体重,身高,成绩,工资等
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
tinyint | 1字节 | -128~127 | 0~255 | 微小整数 |
smallint | 2字节 | -32768~32767 | 0~65535 | 小整数 |
mediumint | 3字节 | -2^23~2^23-1 | 0~2^24-1 | 中整数 |
int | 4字节 | -2^31~2^31-1 | 0~2^32-1 | 大整数 |
bigint | 8字节 | -2^63~263-1 | 0~2^64-1 | 极大整数 |
float | 4字节 | 单精度浮点 | ||
double | 8字节 | 双精度 | ||
decimal | decimal(M,D),其中M为有效数位,D为小数位,M>D,占用M+2字节 | |||
unsigned | 无符号存储范围 |
mysql>create table db1.t1(id int unsigned,pay float(7,2));
#创建表t1,字段为id 类型为int 无符号,字段pay 类型为浮点 数位为7,整数位5,小数位2
字符型:姓名,工作单位,通信住址
定长:char(字符数) | 变长:varchar(字符数) | 大文本类型:text/blob |
---|---|---|
最大长度255字符 | 根据实际分配存储空间 | 字符数大于65535时使用 |
不够时在右边空格补齐 | 字符超出,不能写入 | |
字符超出无法写入数据 |
mysql>create table db1.t2(name char(50));
枚举型:兴趣爱好,性别
给定集合选择单个值,enum | 给定值选择多个值,set |
格式:enum(值1,值2,值N...) | 格式:set(值1,值2,值N) |
mysql>create table db3.t3(
-> sex enum("male","female"),
-> interest set("book","film","music","football","running")
-> );
日期时间型:出生日期,注册时间
datatime | timestamp | date | year | time |
---|---|---|---|---|
8字节 | 4字节 | 4字节 | 1字节 | 3字节 |
1000-01-01 00:00:00.000000~ 9999-12-31 00:00:00.000000 |
1970-01-01 00:00:00.000000~ 2038-01-19 03:14:07.999999 |
0001.01.01~9999.12.31 | 1901~2155 | hh:mm:ss |
默认值为NULL | 未赋值,以当前系统时间赋值 | 默认4位数,如果两位,01~69 2001~2069,70~99 1970,1999 |
类型 | 用途 | 类型 | 用途 |
---|---|---|---|
now() | 当前日期和时间 | curdate() | 获取当前日期 |
year() | 指定时间中的年份 | curtime() | 获取当前的时刻 |
day() | 指定时间中的日期 | month() | 获取指定时间的月份 |
sleep(N) | 休眠N秒 | date() | 日期 |
time() | 时刻 |
mysql>select date(now()),curdate();
约束条件
null | 允许为空,默认设置 |
not null | 不允许为空 |
key | 索引类型 |
default | 设置默认值,缺省为null |
mysql>create table db1.t5(id char(6) not null,name varchar(5) not null,index(id),index(name));
index 普通索引 | 可以有多个字段,字段值允许重复,把经常查询字段设置为索引,key标志是mul |
unique唯一索引 | |
fulltext全文索引 | |
primary key主键 | 只能有一个字段/表,不允许重复和空值,复合主键需一起创建,标志是pri,与auto_increment连用,把唯一标识的字段设置为主键【记录编号字段】 |
foreign key外键 | 存储引擎必须为innodb,字段类型一致,被参照字段必须为索引类型的一种(pri) |
扫描二维码关注公众号,回复:
4767827 查看本文章