1 SQL (结构化查询语言)的分类
2 DML(数据操作语言),关键字 insert,update,delete,
3 DCL(数据控制语言),控制权限,grand,revoke 授权,回收
4 DDL(数据定义语言),创建数据库,表,约束 create,drop,modify
5 DQL(数据查询语言),查询数据,select
6
7 mysql中的运算符
8 算数运算符 + - * / %
9 比较运算符 = > < >= <= 不等于: != <>
10 赋值运算符 =
11 逻辑运算符 and or not
12
13 mysql中常用的数据类型
14 一、值类型
15 1、整型
16 tinyint:迷你型,用1字节储存,256种状态
17 smallint:小整型,用2字节存储,256种状态
18 mediumint:中整型。3字节存储
19 int:标准整型,4字节存储
20 bigint:大整型,8字节存储
21 Sql中的数值类型默认全部是有符号的,分正负,tinyint(-128到127),如果使用无符号数据,需要去掉符号,
22 去掉符号用 unsigned,如 age tinyint unsigned,无符号从0开始。
23
24 2、小数型
25 a、浮点型
26 height float:直接使用 float 表示没有小数部分。
27 money float(M,D):M 代表总长度,D代表小数部分长度。整数部分长度为 M-D。
28 浮点型数据的插入,整型部分是不能超出长度的,小数部分是可以超出长度(系统会自动四舍五入)。
29
30 b、定点型
31 小数点固定,精度固定,不会丢失精度。用 decimal 数据类型定义。
32 定点型会绝对的保证整数部分不会被四舍五入(不会丢失精度),小数部分有可能(理论小数部分也不会丢失精度,
33 在自己的范围内不会进位,不在自己范围内会进位)。
34 插入数据时,定点数的整数部分一定不能超出长度(进位)不可以,
35 小数部分的长度是可以随意超出指定长度的(系统会自动四舍五入)。
36 二、字符串类型
37 在Sql中,字符串类型分为6类,分别是:char、varchar、text、blob、enum和set。
38 1、 定长字符串 char
39 char:磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度。
40 char(L):L代length(长度)的意思,单位为字符,最大长度值为255。
41 char(4):在utf8环境下,需要 4 * 3 = 12个字节。
42 2、变长字符串 varchar
43 varchar 在分配空间的时候,按照最大的空间分配,但是实际上用了多少,是根据具体的情况来确定的。
44 varchar(L):L表示length(长度),理论长度是65536个字符,但是会多出 1 到 2 个字节来确定存储的实际长度,
45 但是实际上如果长度超过255,既不用定长,也不用变长,使用文本字符串text。
46 varchar(10) :存了10个汉字,在utf8环境下,需要 (10 * 3) + 1 = 31(bytes)来存储。
47 3、文本字符串
48 如果数据量非常大,通常说超过255个字符就会使用字符串。
49 文本字符串根据存储的数据格式进行分类,text和blob。
50 text:存储文字(二进制实际上都是存储路径)。
51 blob:存储二进制数据(通常不用)。
52 4、枚举字符串
53 枚举:enum,事先将所有可能出现的结果都设计好,实际存储的数据必须是定义好的数据中的其中一个。
54 枚举的作用:
55 规范数据格式,数据只能是规定的数据的其中之一。
56 节省存储空间(枚举通常有1个别名,单选框),枚举实际存储的是字符串本身。
57 语法: enum(可能出现的元素列表)。如 enum('男','女');
58 5、集合字符串
59 集合和枚举很类似,实际存储的是数值,而不是字符集(集合是多选)。
60 语法: 字段名 set(元素列表)
61 例子:创建1个名叫【my_set】的表,为其加入一个hobby字段,为其设置数据类型为集合。
62 create table my_set(
63 hobby set('足球','篮球','乒乓球')
64 )charset utf8;
65 三、MySql记录长度
66 utf8环境下(3个字节存一个汉字),varchar的实际顶配为21844个字符。
67 gbk环境下(2个字节存1个汉字),varchar的实际顶配为32766字符。