一.sql介绍
结构化的查询语言,关系型数据库中通用的一种命令。
使用SQL_MODE规范SQL语句的语法标准。
SQL_MODE
查看方法:select @@sql_mode
ONLY_FULL_GROUP_BY
STRICT_TRANS_TABLES
NO_ZERO_IN_DATE
NO_ZERO_DATE
ERROR_FOR_DIVISION_BY_ZERO
NO_AUTO_CREATE_USER
NO_ENGINE_SUBSTITUTION
确保数据有意义。
SQL常用分类
DDL:数据定义语言
DCL:数据控制语言
DML:数据操作语言
DQL:数据查询语言
4.字符集&校对规则
可以作用于库级别和表级别,一般在建库建表时设定
字符集:
utf8:最多允许字符长度为3个字节
utf8mb4:最多允许字符长度为4个字节
gbk:
show charset; 查看所有字符集
校对规则:排序规则
AbCD
ABCD
show collation; 查看校对规则
5.表的属性和列的属性
1.表定义属性
存储引擎:innodb
字符集&校对规则:utf8mb4
注释:
2.列的属性
01.数据类型
保证数据的一致性,完整性(有意义)。
(1)数值类型
tinyint:-128~127,0-255。最多存储1个字节长度数字 1Bytes=8bit
int:4Bytes ,0-2^32,-2^31~2^31-1,10位数
bigint:8Bytes,0-2^64,-2^63~2^63-1,20位数
(2)字符串类型(万能)
char(64):括号中最大的字符长度 255字节
定义的字符串类型,一次性分配固定长度存储空间,存不满,用空字符串填充
varchar(64):变成的字符类型,按需分配存储空间。65535,最多65533。
1-255字符之间,单独占用1字节存储字符长度
255-65535字符长度,单独占用2字节存储字符长度
区别:
char(64) varchar(64)
1.定长 和 变长
2.64代表了,最多可以存储字符的个数
3.字节限制255.65535字节
4.varchar 需要花费额外的1-2字节存储的字符长度
enum(‘bj’ ‘sh’):枚举类型
注意:数字列不要,经常变化的列不要使用
(3)时间类型
datetime :1000 9999
timestamp
DATETIME
范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。
TIMESTAMP
1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。
timestamp会受到时区的影响
(4)二进制类型(略)
(5)json类型(8.0以后 支持的比较好)
6.约束
not null 非空约束
unique key 唯一约束
primary key 主键约束(非空且唯一),一张表只能有一个 ,一般是ID列
数据类型约束 :unsigned 非负数
7.其他属性
auto_increment 自增长
default 默认值
comment 注释
网友评论