数据库编程 触发器举例 1)掌握——触发器的应用; 课程目标 PART ONE 触发器举例 【例】 创建一个触发器,当修改Sell表中订购册数时,如果修改后的订购册数小于5本,则触发器将该对应的折扣修改为1,否则,折扣修改为0.8。 DELIMITER $$ CREATE TRIGGER sell_update BEFORE UPDATE ON Sell FOR EACH ROW BEGIN IF NEW.订购册数<5 THEN UPDATE Book SET 折扣=1 WHERE 图书编号=NEW.图书编号; ELSE UPDATE Book SET 折扣=0.8 WHERE 图书编号=NEW.图书编号; END IF; END$$ DELIMITER ; 因为是修改了Sell表的记录后才执行触发器程序修改Book表中的记录,此时Sell表中该记录已经修改了,所以只能用NEW.图书编号来表示这个修改后的记录的图书编号,Book表使用WHERE 图书编号=NEW.图书编号条件查找要修改的记录。 触发器举例 现在验证触发器的功能: UPDATE Sell SET 订购册数=4 WHERE
2022-05-29 13:02:58 1.31MB mysql 数据库 database
创建视图 数据视图 课程目标 理解 —— 创建视图的语法格式; 掌握—— 创建视图的方法; 掌握 —— 查看视图的方法。 创建视图 使用CREATE VIEW语句创建视图 语法格式: CREATE [OR REPLACE] VIEW 视图名 [(列名列表)] AS select语句 [WITH CHECK OPTION] 列名列表:要想为视图的列定义明确的名称,可使用可选的列名列表子句,列出由逗号隔开的列名。列名列表中的名称数目必须等于SELECT语句检索的列数。若使用与源表或视图中相同的列名时可以省略列名列表。 WITH CHECK OPTION:指出在可更新视图上所进行的修改都要符合select语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。 创建视图 创建基于单表的视图 【例】创建Bookstore数据库上的book_view视图,包括图书的图书编号,书名,单价等情况。 CREATE VIEW book_view AS SELECT 图书编号,书名,单价,数量 from book; 或 CREATE or REPLACE VIEW book_view A
2022-05-29 13:02:57 1.33MB 数据库 mysql database
创建索引 数据索引 课程目标 理解 —— 创建索引的语法; 掌握 —— 在已有表上创建索引的方法; 掌握 —— 在修改表时添加索引的方法; 掌握 —— 在创建表时创建索引的方法。 创建索引 使用CREATE INDEX语句创建索引 使用CREATE INDEX语句可以在一个已有表上创建索引,一个表可以创建多个索引。 语法格式: CREATE [UNIQUE | FULLTEXT] INDEX 索引名 ON 表名(列名[(长度)] [ASC | DESC],...) 说明: UNIQUE:表示创建的是唯一性索引 FULLTEXT:表示创建全文索引; CREATE INDEX 语句并不能创建主键索引。 创建索引 CREATE [UNIQUE | FULLTEXT] INDEX 索引名 ON 表名(列名[(长度)] [ASC | DESC],...) 说明: 索引名:索引的名称,索引名在一个表中名称必须是唯一的。 列名:表示创建索引的列名。 长度:表示使用列的前多少个字符创建索引。使用列的一部分创建索引可以使索引文件大大减小,从而节省磁盘空间。BLOB或TEXT列必须用前缀索引。 创建索引
2022-05-29 13:02:57 1.35MB 数据库 mysql database
数据数据库编程 创建存储过程1 课程目标 1)了解 ——存储过程的优点; 2)理解 —— 存储过程的概念; 3)掌握 —— 存储过程的创建方法; 存储过程优点 使用存储过程的优点有: (1)存储过程在服务器端运行,执行速度快。 (2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。 (3)确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。 创建存储过程 创建存储过程可以使用CREATE PROCEDURE语句 语法格式: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) routine_body routine_body:存储过程的主体部分,也叫做存储过程体。里面包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,当存储过程体中只有一个SQL语句时可以省略BEGIN-END标志。 创建存储过程 proc_parameter的参数如下: [ IN | OUT
2022-05-29 13:02:56 1.3MB mysql 数据库 文档资料 database
数据库编程;;DECLARE语句 ;DECLARE语句 ;SET语句 ; SELECT...INTO语句 ; SELECT...INTO语句 ;declear语句的使用;谢谢
2022-05-29 13:02:56 1.29MB mysql 数据库 文档资料 database
数据库编程;;调用存储过程 ;调用存储过程 ;删除存储过程 ;存储过程的调用;谢谢
2022-05-29 13:02:55 1.28MB 数据库 mysql 文档资料 database
数据库编程 存储过程举例 1)掌握 ——存储过程的应用; 课程目标 存储过程举例 【例】 创建一个Bookstore数据库的存储过程,根据用户姓名和书名查询订单,如果订购册数小于5本不打折,订购册数在5-10本之间,订购单价打九折,订购册数大于10本,订购单价打八折。 DELIMITER $$ CREATE PROCEDURE dj_update(IN c_name CHAR(8), IN b_name CHAR(20)) BEGIN DECLARE bh CHAR(20); DECLARE yhh CHAR(10); DECLARE sl TINYINT; SELECT 用户号 INTO yhh FROM Members WHERE 姓名=c_name; SELECT 图书编号 INTO bh FROM Book WHERE 书名=b_name; SELECT 订购册数 INTO sl FROM Sell WHERE 用户号=yhh AND 图书编号=bh; IF sl>=5 AND sl<=10 THEN UPDATE Sell SET 订购单价=订购单价*0.9 WHERE 用户
2022-05-29 13:02:55 1.28MB 数据库 mysql 文档资料 database
数据库编程 存储过程嵌套 课程目标 1)理解 ——存储过程嵌套的概念; 2)掌握 —— 存储过程嵌套的使用; 存储过程嵌套 【例】 创建一个存储过程sell_insert(),作用是向Sell表中插入一行数据。创建另外一个存储过程sell_update,在其中调用第一个存储过程,如果给定参数为0,则修改由第一个存储过程插入记录的是否发货字段为'已发货',如果给定参数为1则删除第一个存储过程插入的记录,并将操作结果输出。 第一个存储过程:向Sell表中插入一行数据。 CREATE PROCEDURE sell_insert() INSERT INTO Sell VALUES('18','C013', 'TP40/02',4, 30, '2017-03-05', NULL, NULL, NULL); 存储过程嵌套 第二个存储过程:调用第一个存储过,并输出结果 DELIMITER $$ CREATE PROCEDURE sell_update (IN X INT(1), OUT STR CHAR(8)) BEGIN CALL sell_insert(); CASE WHEN x=0 THEN
2022-05-29 13:02:54 1.28MB 数据库 mysql 文档资料 database
MySQL数据库:存储函数的创建.pptx
2022-05-29 13:02:54 1.32MB 数据库 mysql database
数据库编程 存储函数的调用、举例 课程目标 掌握 ——存储函数的调用方法; 掌握—— 存储函数的使用方法; 存储函数的查看、调用 查看数据库中的存储函数 语法格式为: SHOW FUNCTION STATUS 调用存储函数 语法格式为: SELECT sp_name ([func_parameter[,...]]) 存储函数创建完后,就如同系统提供的内置函数(如VERSION()),所以调用存储函数的方法也差不多,都是使用SELECT关键字。 【例】 创建一个存储函数,返回Book表中某本书的作者姓名。 存储函数举例 DELIMITER $$ CREATE FUNCTION author_book(b_name CHAR(20)) RETURNS CHAR(8) BEGIN RETURN (SELECT 作者 FROM Book WHERE 书名= b_name); END$$ DELIMITER ; 调用此存储函数: SELECT author_book(‘计算机应用基础’); 存储函数举例 【例】 创建一个存储函数来删除Sell表中有但Book表中不存在的记录。 DELIMITER
2022-05-29 13:02:53 1.31MB 数据库 mysql database