目录
创建表的完整语法
create table 表名(
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件也可以写多个 空格隔开即可
4.最后一行结尾不能加逗号
ps:编写SQL语句报错之后不要慌 仔细查看提示 会很快解决
表字段类型之整形
'''
一个字节是八个比特,即:1byte = 8bit。
1kb= 1024byte,1m=1024kb,1G = 1024m。
'''
tinyint 1bytes 正负号(占1bit)
smallint 2bytes 正负号(占1bit)
int 4bytes 正负号(占1bit)
bigint 8bytes 正负号(占1bit)
int 类型默认是带正负号的
int 可存取范围 -2147483648 ~ 2147483647
int unsigned 表示取消正负号 0~4294967295
create table l1(id int,uid int unsigned,zid int(5));
# int(5)意思最少5位 不够用0在前面补.
insert into l1 values(-100,200,12);
表字段类型之浮点型
float(10,2)
# 总共存储10位 小数点后保留2位小数
douule(20,10)
# 总共存储20位 小数点后保留10位
decimal(10,2)
# 总数位10位, 小数点后保留2位
# 如果不填写 decimal()括号数字 默认(10,0)
一般项目中 涉及到金额的 都用 decimal
create table l2(money decimal(10,2));
三者的核心区别在于精确度不同
float < double < decimal
表字段类型之字符串
char(m)
定长字符串:
m代表字符串的长度 最大存储长度255个字符
定长的体现:
如果内容长度小于m 也会占用m的长度,例如 char(5) 数据是;1
底层也会占用5个字符。如果数据是 哈哈哈哈哈哈 超过5个字符会报错
注意要使用严格模式
非严格模式不会报错 但是会导致数据被阶段
varchar(m)
变长字符串:
m代表字符串的长度,但是与char不同 如果字符串长度小于m则存取真实
长度 例如 varchar(5) 数据 哈哈 那只会占用2个字符,如果超过5个字符也是会报错 varchar 最大储存字符长度65535字节
char:
优点 :存取速度相对于varchar更快 因为是整存争取
缺点 :可能浪费更多内存空间,因为不管数据大小都是存统一大小
最大存储长度255个字符
sql_mode='strict_trans_tables,pad_char_to_full_length';
# 保留定长的默认空格 一般不使用
varchar:
优点:可以节约内存空间 储存数据真实大小长度
最大储存字符长度65535字节
缺点:为了精确读取 底层对多处一个报头接收长度,相对于
char存取速度较慢
"""
char与varchar的使用需要结合具体应用场景
"""
text类型 可以保存很长的字符 一般用于 文章 新闻的储存
create table l1(new text);
表字段类型之时间
datetime 年月日时分秒
展示时间跟mysql所在主机系统时区相关 中国时间 CST
date 年月日
time 时分秒
year 年
create table t17(
id int,
name varchar(32),
register_time datetime,
birthday date,
study_time time,
work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作
year 年
create table t17(
id int,
name varchar(32),
register_time datetime,
birthday date,
study_time time,
work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作
字段类型之枚举与集合
枚举 enum
enum('male','female')
单选,只能存储enum规定的对象 并且只能单选。
create table l1(gender enum('male','female'));
# 创建列表 字段名 gender 类型 enum 枚举待选项 'male','female'
集合 set
set('football','basktabll','ball','reading')
多选(也包括单选) 只能存储set规定的对象 可以多选 也可以单选
create table l2(hobbies set('football','basktabll','ball','reading');
# 创建一个set集合类型 数据可以多选存入
标签:11,varchar,int,数据类型,mysql,基础,time,类型,table
From: https://www.cnblogs.com/moongodnnn/p/16920198.html