数据库管理系统实验及答案
实验名称:实验五:存储过程与视图实验目的:1.掌握存储过程的创建和执行;2.掌握存储过程中输入输出参数的使用;3.掌握视图的定义、维护、使用;实验内容:1.存储过程(1)在“网上书店”(或者“WSSD”)数据库中创建一个名为proc_1的存储过程,实现查询所有会员信息的功能。(2)在“网上书店”(或者“WSSD”)数据库中创建一个名为proc_2的存储过程,要求实现如下功能:根据会员昵称查询会员的
实验名称:实验五:存储过程与视图
实验目的:
1.掌握存储过程的创建和执行;
2.掌握存储过程中输入输出参数的使用;
3.掌握视图的定义、维护、使用;
实验内容:
1.存储过程
(1)在“网上书店”(或者“WSSD”)数据库中创建一个名为proc_1的存储过程,实现查询所有会员信息的功能。
(2)在“网上书店”(或者“WSSD”)数据库中创建一个名为proc_2的存储过程,要求实现如下功能:根据会员昵称查询会员的积分情况,并调用存储过程查询“平平人生”和“感动心灵”的积分。
(3)在“网上书店”(或者“WSSD”)数据库中创建一个名为proc_3的存储过程,要求实现如下功能:根据会员昵称查询会员的订购信息,如果该会员没有订购任何图书,则输出“某某会员没有订购图书”的信息,否则输出订购图书的相关信息,调用存储过程显示,会员“四十不惑”,订购图书的情况。
2、视图
(1)定义基于图书表的视图(包含图书编号、图书名称、作者、价格、出版社、图书、类别)。
(2)查询图书表视图,输出图书的名称和价格,并把查询结果按价格降序排列。
(3)查询图书表视图,输出价格最高的三种图书的名称和价格。
实验名称:实验五:存储过程与视图
实验代码:
1、(1)
mysql> use wssd;
Database changed
mysql> delimiter //
mysql> create procedure proc_1()
-> begin
-> select * from user;
-> end;//
Query OK, 0 rows affected (0.03 sec)
mysql> delimiter ;
mysql> call proc_1();
(2)
mysql> create procedure proc_2(in name varchar(5))
-> begin
-> select uname,score from user where uname=name;
-> end;//
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> call proc_2('平平人生');
+--------------+-------+
| uname | score |
+--------------+-------+
| 平平人生 | 300 |
+--------------+-------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.02 sec)
mysql> call proc_2('感动心灵');
+--------------+-------+
| uname | score |
+--------------+-------+
| 感动心灵 | 500 |
+--------------+-------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> create table u_b_o
-> (uid int,
-> uname varchar(5),
-> email varchar(20),
-> tnum varchar(20),
-> score int,
-> bid int,
-> uid_ int,
-> ordernum int,
-> orderdate datetime,
-> deliverydate datetime);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into u_b_o
-> select * from user as u left join b_order as b1 on u.uid=b1.uid;
Query OK, 9 rows affected (0.00 sec)
Records: 9 Duplicates: 0 Warnings: 0
(3)
mysql> delimiter //
mysql> create procedure proc_3(in name varchar(5))
-> begin
-> select u2.bid,u2.uid,ordernum,orderdate,deliverydate from book as b2 left join u_b_o as u2 on b2.bid=u2.bid where uname=name;
-> if ordernum is null then select '该会员没有订购该图书';
-> else select * from book;
-> end if;
-> end;//
Query OK, 0 rows affected (0.03 sec)
mysql> call proc_3('四十不惑');
2、(1)
mysql> create view basic_book as select * from book;
Query OK, 0 rows affected (0.02 sec)
mysql> select * from basic_book;
+-----+-----------------------+-----------+-------+-----------------------+----------+------+
| bid | bname | author | price | publisher | discount | cid |
+-----+-----
更多推荐
所有评论(0)