基础知识与常见数据类型
2020-12-03 本文已影响0人
无力韬韬
DDL:数据定义语言
DCL:数据控制语言
DML:数据操作语言
表的创建修改删除。
表的复制:
create table qqq like jobs;//只复制表的结构
create table qqq select * from jobs;//复制表的结构+数据。
create table qqq select job_id,job_title,//复制表的部分数据
create table qqq select job_id,job_title where 1=2;//复制表的部分结构
DQL:数据查询语言
MYSQL的主要字符集:
utf8,utf8mb4.
utf8单个字符最多三个字节。utf8mb4单个字符最多四个字节,支持emoji(一个emoji四个字节)。
latin1,5.7版本的默认字符集。
校对规则:影响排序(比如排序时大小写是否敏感)。
数据类型
数值类型
tinyint : -128~127
int :-2^31~2^31-1
说明:手机号是无法存储到int的。一般是使用char类型来存储手机号
字符类型
char和varchar的区别
例如char(10)和 varchar(10),括号里的数字代表字符长度而不是字节长度,char为固定长度,这就是这个字段的长度被固定为10,即使添加的数据长度<10,也会自动填充空格来使长度达到10,varchar则是可变长度,最长不能超过10,存入的数据长度<10,也会是数据本身的长度。
varchar的效率没有char高,因为varchar还会同时存在一到两个字节用来记录数据的长度,所以varchar的实际长度应该等于数据的长度+1(这里的长度为字符长度),因此虽然varchar最大长度为65535,但其实他到不了这个长度。而且varchar的长度到达一定值时,会自动把类型转为text类型,因此在存储空间上,二者并没有什么区别。
- 大于varchar(255)变为 tinytext
- 大于varchar(500)变为 text
-
大于varchar(20000)变为 mediumtext
在性能上二者好像也没有太大差别。(//TODO)
但是varchar有截断特性,即当字符长度超过括号里的值时,会自动进行截断,而text则不会,所以有可能会放入一串非常大的数据,因此还是推荐使用varchar。
日期格式 - DATETIME
范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。占用8字节长度 - TIMESTAMP
1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。占用4字节长度
timestamp会受到时区的影响