mysql sql的分类、运算符、常用的数据类型
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字符。