第五节
1.数据库的生命周期:1数据库分析与设计阶段 2.数据库实现与操作阶段
2.数据库分析与设计阶段:需求设计,概念设计、逻辑设计、物理设计
3.数据库的实现与操作阶段:实现、操作与监督、修改与调整
结构化查询语言SQL是专门用来与数据库通信的语言,他可以帮助用户操作关系数据库
4.SQL的特点: 1.不是某个特定数据库供应商专有的语言2.简单易学3.强大灵活可以进行非常复杂的高度数据操作
5.SQL的组成:1数据查询2数据定义3数据操纵4数据控制
6.数据定义语言DDl :CREATE 创建数据库或数据库对象ALTER对数据库进行修改 DROP删除数据库
7.数据操纵语言DML:
SELECT INSERT UPDATE DELETE
8.数据控制语言DCL :GRANT 用于授予权限REVOKE用于回收权限
第六节
1.存储过程的基本概念:存储过程是一组为了完成某项特定功能的SQL的语句集,其实质就是一段存储在数据库中的代码,它可以由声明式的sql语句和过程式sql语句组成
2.存储过程的优点:
1)可增强sql语言的功能和灵活性2)良好的封装性3)高性能4)可减少网络流量5)可作为一种安全机制来确保数据库的安全性和数据的完整性
3.创建存储过程 DELIMITER命令 DELIMITER$$ 回到";"结束 DELIMITER;
4.使用CREATE PROCEDURE 语句创建存储过程
5.使用DECLARE语句声明局部变量
6.注意 只能在存储过程体的BEGIN…END语句块中声明;必须在存储过程的开头处声明;作用范围仅限于声明它的BEGIN…END语句块;不同于用户变量
7.局部变量与用户变量的区别:
1局部变量申明时,在其前面没有@符号,并且它只能声明它的BEGIN AND语句块中的语句所使用;
2用户变量在声明时,会在其名称前面使用@符号,同时已声明的用户变量存在于整个会话之中
8.使用DECLARE CURSOR语句创建游标
DECLARE cursor_name CURSOR FOR select_statement
9.使用open语句打开游标。使用FETCH…INTO语句读取数据。使用close语句关闭游标,使用call语句调用存储过程 使用DROP PROCEDURE语句删除存储过程
10
1。存储函数与存储过程一样,是由SQL语句和过程式语句组成的代码片段
2。区别:
存储函数 不能拥有输出参数;可以直接调用存储函数不需要CALL语句,必须包含一条RETURN语句
存储过程 可以拥有输出参数;需要CALL语句调用存储过程;不允许包含RETURN语句
3。创建存储函数 使用CREATE FUNCTION语句创建存储函数,使用关键字SELECT调用存储函数,使用DROP FUNCTION语句删除存储函数
第七节
1.触发器是用户定义在关系表上的一类由事件驱动的数据对象,也是保证数据完整性的方法。
2.使用CREATE TRIGGER语句创建触发器,使用DROP语句删除触发器
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_body
DROP TRIGGER[IF EXISTS][schema_name.]trigger_name
3.触发器的分类
1)insert 触发器 2)delete触发器 3)Update触发器 4)
4.所谓事务是用户定义的一个数据操作序列,这些操作可作为一个完整的工作单元,要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务中的操作一般是对数据的更新操作,包括增、删、改。以BEGIN TRANSACTION语句开始,以COMMIT语句或ROLLBACK语句结束。
5.事务的特征(ACID)
1)原子性2)一致性3)隔离性4)持续性
6.并发操作问题
1)丢失更新:事务T2的提交结果会破坏T1提交的结果
2)不可重复读:事务T2执行更新操作,是T1无法再现前一次读取结果
3)读“脏”数据:事务T1修改数据后撤销,使得T2读取的数据与数据库中不一致
7.封锁:一个锁实质上就是允许或者阻止一个事务对一个数据对象的存取特权
1)排它锁(X锁)用于写操作
2)共享锁(s锁)用于读操作
8.封锁的级别
0级封锁:不重写其他非0级封锁事务的未提交的更新数据(使用价值低)
1级封锁:不允许重写未提交的更新数据,防止丢失更新的发生
2级封锁:既不重写也不读未提交的更新数据(防止读脏数据)
3级封锁:不读未提交的更新数据,不写任何未提交的数据
9.使用select into …outfile语句备份数据
使用load data …infile语句恢复数据