一.字符类型:
1.普通字符类型 一般用于存储:姓名 家庭地址 籍贯
关键指令 最大字符长度 特性
char 255(个字符) 定长 (固定长度)
varchar 65532 (个字符 ) 变长 (必须给一个值)
相同点:
超出最大固定格式字符无法写入数据。
不同点:
Char:定长输入不够指定字符数时在右边用空格自动补齐,
不检查效率高,不给值有默认值1.(工作用的最多)
Varchar:变长按输入的字符数实际大小分配存储空间,检
查效率底,必须给一个值。(一般用在邮箱 、qq号)
2.大文本类型 一般存储 :视频、音频、图片
关键指令 最大字符长度
text 大于65535
blob 大于65535
二、数值类型:整型 18 21 101 、浮点型 2.78 33.66
1.数值类型 : 年龄 成绩 身高 体重 工资
整型:根据存储数字的范围又 划分为如下类型。
整型分: 无符号 : +11 等于 11 (+号可忽略不记)
有符号 : -17
范围分:
指令 有符号存储范围 无符号存储范围
tinyint :微小整数 -128~127 0-255(unsigned)
smallint :小整数
mediumint:中整数
int :大整数 0~224-1
bigint :极大整数
备注:如果不让出现负数要加unsigned。
数值类型的宽度,是显示宽度,不能够控制给字段赋值,字段值的大小由类型决定。
三、浮点型 (能存储带小数点的数) 19.23 21.75
定义格式 :float (n,m) n:表示总位数。
double(n,m) m:表示小数位数。
当字段值与类型不匹配时,字段值作为0处理;
数值超出范围时,仅保存最大/最小值。
四、日期时间类型
一般用于:注册时间 上课时间 开会时间 生日 入职日期
年的指令: year YYYY 2017 占用1个字节
日期的指令:date YYYYMMDD 20170619 占用4个字节
时间的指令:time HH:MM:SS 160258 占用3个字节
日期时间的指令:datetime YYYYMMDDHHMMSS 201706191602
占用8个字节 如果不给datetime字段赋值时,默认值为null
日期时间的指令:timestamp YYYYMMDDHHMMSS 20170619160258
占用4个字节 如果不给timestamp字段赋值时,自动以当前系统时间赋值
mysql> create table t14(name char(10), # 姓名类型10个字符长度
-> age tinyint(2) unsigned, # 年龄类型是整数不能是复数
-> pay float(7,2), #
-> s_year year, #年
-> birthday date, #生日日期
-> up_class time, #时间
-> meetting datetime #日期+时间
-> ); #创建表
mysql> desc t14;
datetime与timestamp 的区别
1.赋值的类型不一样。
2.赋值的方式不一样。
timestamp 当不给赋值的时候他自动获取系统时间。
Datetime 当不给赋值的时候他默认为NULL(空)
五、使用时间函数给日期时间类型字段赋值
now() #获取系统的当前时间。
year() #获取指定日期里的 年。
date() #获取日期
month() #获取月
day() #获取几号
time() #获取时间
六、枚举类型 性别 专业 科目 爱好
(字段值只能在列举的范围内选择)
单选的指令:enum (值列表:值1,值2,值n)
多选的指令:set (值列表:值1,值2,值n)
例题:
mysql> create table t9(
-> name char(5), #名字 字符型,宽度5
-> sex enum("boy","girl","no"), #性别 只能选一个 男 女 不允许为空
-> homeaddr varchar(20), #描述信息
-> age tinyint unsigned, #年龄 无符号的微小型整数
-> likes set("game","film","music","book","it"),
#爱好可以选择多个
-> pay float(7,2), #学费
-> s_year year, # 出生年份
-> birthday date, #生日 日期
-> up_time time, #上课时间
-> meettint datetime #
-> );
字段约束条件:功能限制如何给字段赋值
字段约束条件有四块:
Null 字段是否允许赋空值 空 默认允许赋空值
not null 不允许为空
Key 索引类型
Default 字段的默认值,默认值的值是null(空)
不给字段赋值值使用默认值给字段赋值
设置默认值: default 值(要匹配要求)
Extra 额外设置(自动增长)