MySQL数据库和范式3段讲课.docx

昨日回顾 字符集 MySQL和字符集相关的几个变量: show variables like character_set_%; character_set_client 记录客户端的编码方式,需要客户端在写数据之前主动告诉服务器,自己编码方式。 character_set_connection 数据库内部的平滑过度 character_set_results 记录客户端读取数据时的编码方式,需要客户端在读取数据之前主动告诉服务器,自己的编码方式 set names 字符编码集 校验集: 校验就是比较的意思,校验会自动应用在where 子句中,order by子句中 列类型: 整型 小数型 float double decimal(货币) decimal(m,n) m表示所有的数位(65最大),n表示小数位(30最大),整数位m-n=35 文本型 char varchar tinytext mediumtext text longtext MySQL的记录长度 MySQL默认规定一条记录最大的长度是65535字节,所有的字段加在一起所占的字节数不能超过65535。但是MySQL中字段的长度有的时使用字节来规定int,有些字段类型是使用字符个数来规定的。 1个汉字所占的是多少?根据字符编码而定, latin1字符集1个字母占据1个字节。 gbk字符集1个汉字占据2个字节 utf8字符集1个汉字占据3个字节 还需要考虑varchar的记录长度,需要使用1或2个字节来记录。 还需要考虑null值的问题。 修改表: 修改字段类型 alter table 表名 modify 字段名 字段类型 【附加属性】【after 字段名|first】 修改字段名 alter table 表名 change 原字段名 新字段名字段类型【附加属性】【after 字段名|first】 alter table 表名 add字段名 字段类型 【附加属性】【after 字段名|first】 alter table 表名 drop 字段名 列类型 文本类型 enum(枚举类型) 语法: enum(值列表); 说明: 值是使用逗号分隔多个值 值列表中的值的个数最多是65535个 作用是规范数据,节省空间。 类比于form表单中的单选按钮 示例: 示例: 原理: set集合类型 语法: set(值列表); 说明: 值是使用逗号分隔多个值 值列表中的值的个数最多是64个 作用是规范数据,节省空间。 类比于form表单中的多选按钮 字段的数据型是一个字符串,相当于将值列表中的多个值拼接成一个字符串,值的顺序可以是任意 示例: 原理: MySQL会将集合类型组织一个二进制数,集合中的每一个值,按顺序被组织二进制中的一位 图解: 插入数据:值是red、silver、pink组合 日期时间型 date 日期型 格式 yyyy-mm-dd time 时间型 格式 hh:ii:ss datetime 日期时间型 格式 yyyy-mm-dd hh:ii:ss year(m) 年 m取的是4或2, 4表示4位的年份,取值 0000至2155 2表示2位的年份,取值70以上表示19xx,如果是69表示20xx 示例1: 示例2: timestamp 时间戳类型 说明: 格式 yyyy-mm-dd hh:ii:ss 缺省值是0000-00-00 00:00:00 只要对具有时间戳字段的表中进行更改,那么被更改的记录第1个时间戳字段会自动使用当前的时间进行填充。 示例: 列属性 列类型与列属性区别: 列类型针对的是单独的一个个体,是对单独个体的一个限制。 列属性针对列的整体进行约束。列属性也就是约束(constraint)。 示例: primary key 主键 主键:就主要的键,主键是索引中的一种,索引就是唯一标识一条记录,提供用记数据查询,索引就是加快表的查询速度。一般会自定义一个与用户数据无关的字段作为主键字段。 创建主键 方法1:在创建表结构时,在需要定义主键的字段后使用primary key,来定义主键 示例: 方法2: 在创建表结构时,在所有的字段后,使用primary key(字段名) 示例: 方法3: 在表结构好后之后,通过修改表结构来添加主键字段 查看表结构 主键的特点: 1、主键一定要唯一 2、主键字段的值不能为null 3、主键字段如果没有使用auto_increment,那么缺省值是0, 4、一个表中的主键字段只能有一个 主键的修改 主键不能修改,只能通过删除的方式,再重新添加主键 删除主键 语法: alter table 表名 drop primary key; 示例: 复合主键 就是由两个或多个字段共同组成主键字段

文档评论(0)

1亿VIP精品文档

相关文档