SQL语言包括:数据定义、数据操纵(Data Manipulation),数据控制(Data Control)
数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等
数据操纵:Select ,insert,update,delete,
数据控制:grant,revoke
完整性约束:实体完整性、参照完整性、用户定义完整性
什么是第三范式:
1NF:每个属性是不可分的。
2NF:若关系R是1NF,且每个非主属性都完全函数依赖于R的键。
3NF:若R是2NF,且它的任何非键属性都不传递依赖于任何候选键。
事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。
事务性质:
原子性。即不可分割性,事务要么全部被执行,要么就全部不被执行。
一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态
隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,
持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。
存储过程:存储过程就是编译好了的一些sql语句。
1.重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2.提高性能。存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。
3.减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
4.安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
触发器:当满足触发器条件,则系统自动执行触发器的触发体。
触发时间:有before,after.
触发事件:有insert,update,delete三种。
触发类型:有行触发、语句触发
内联接,外联接区别
内连接是保证两个表中所有的行都要满足连接条件。
外连接分左连接、右连接、全连接三种。
INNER JOIN 在表中存在至少一个匹配时。
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。