目录
- 范式理论
- 范式主要有哪些
- 三范式概念
- 函数依赖
- 三范式的区分
- SQL语言的组成
- DDL(Data Definition Language)
- DML(Data Manipulation Language)
- DQL(Data Query Language)
- DCL( Data Control Language)
- mysql 约束
- 主键约束(primary key) pk
- 自增长约束(auto_increment)
- 外键约束(foreign key) fk
- 非空约束(not null)
- 唯一性约束(unique)
- 默认约束(default)
- 零填充约束(zerofill)
- mysql 内置函数
- 随机数rand
- 时间相减函数: timestampdiff
- mysql有关权限的表都有哪几个?
范式理论
范式主要有哪些
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)
三范式概念
第一范式(1NF):每个列不可以在拆分
第二范式(2NF):在第一范式的基础上,非主键列完全依赖于主键,不能是部分依赖于主键
第三范式(3NF):在第一范式的基础上,非主键列完全只赖于主键,不依赖于其它非主键
函数依赖
这里只用通俗的话表达
- 完全函数依赖
通过AB能得出C,不能只通过A或者B得到C,那么说C完全依赖AB
- 部分函数依赖
通过AB能得出C,或者只通过A,或者B中的一个就能得到C,那么说C部分依赖AB
- 传递函数依赖
通过A得到B,通过B得到C,但是直接通过A得不到C,那么说C传递依赖A
三范式的区分
- 第一范式的核心原则是:属性不可切割
- 第二范式的核心原则是:不能存在“部分函数依赖”
- 第三范式的核心原则是:不能存在“传递函数依赖”
SQL语言的组成
DDL(Data Definition Language)
数据定义语言,用来定义数据库对象(数据库,表,字段)
DML(Data Manipulation Language)
数据操作语言,用来对数据库表中的数据进行增删改
DQL(Data Query Language)
数据查询语言,用来查询数据库中表的记录
DCL( Data Control Language)
数据控制语言,用来创建数据库用户,控制数据库的访问权限
mysql 约束
主键约束(primary key) pk
重要
创建主键
删除主键
总结:
- 每个表最多只允许一个主键
- 主键约束列不允许重复,也不允许出现空值
- 唯一标识表中的每一行,其目的是为了提高查询效率
自增长约束(auto_increment)
重要
创建自增长约束
注意事项:
- 一个表中只能有一个字段使用 auto_increment约束,且该字段必须有索引,以避免序号重复(即为主键或主键的一部分)
- auto_increment约束的字段必须具备 NOT NULL 属性
- auto_increment约束的字段只能是整数类型(TINYINT、SMALLINT、INT、BIGINT) 等
删除自增长约束
delete
数据之后自动增长从 断点 开始
truncate
数据之后从1开始
外键约束(foreign key) fk
重要
创建外键约束
删除
- 删除数据时,需要先删除从表,然后删除主表
- 删除外键约束
非空约束(not null)
创建非空约束
删除非空约束
唯一性约束(unique)
默认约束(default)
零填充约束(zerofill)
mysql 内置函数
随机数rand
- 生成随机整数
- mysql 生成随机小数
好像默认保留2小数
时间相减函数: timestampdiff
语法:
timestampdiff(args1,date1,date2)
参数简单解释:
date1小,date2大
args:可以是year|month|day|hour|minute|second
mysql有关权限的表都有哪几个?
mysql服务器通过权限表来控制用户对数据库的访问
mysql在安装时会自动创建一个名为mysql的数据库,mysql 数据库中存储的都是用户权限表,用户登录以后,mysql会根据这些权限表的内容为每个用户赋予相应的权限
权限表共有以下5个:
- user表
记录允许连接到服务器的账号信息,里面的权限都是全局的
- db权限表
记录各个帐号在各个数据库上的操作权限
- host权限表
配合db权限表,对给定主机上数据库级操作权限作更细致的控制。这个权限表不受grant和revoke语句的影响
- table_priv权限表
记录数据表级的操作权限
- columns_priv权限表
记录数据列级的操作权限