(1) 创建一个视图,包含图书表book中的图书编号bid、书名bname、作者author、出版社publisher 和定价price,然后利用该视图查询出“人民邮电出版社”的图书信息。
创建视图的语句如下。
mysql> select bid as 图书编号, bname as 书名, author as 作者,
-> publisher as 出版社, price as 定价
-> from book where bid not in
-> (select bid from borrow);
查询视图的语句如下。
mysql> select * from v_book
-> where 出版社="人民邮电出版社";
(2)创建一个视图,包含读者表reader 中的读者姓名rname、性别sex和读者类别表readertype 中的类别名称typename,然后利用该视图查询出读者类别是“学生”的信息。
创建视图的语句如下。
mysql> create or replace view v_reader(读者姓名,性别,类别名称)
-> as
-> select reader.rname,sex,typename
-> from reader join readertype on reader.typeno=readertype.typeno;
查询视图的语句如下。
mysql> select * from v_reader
-> where 类别名称="学生";
(3)创建一个视图,包含尚未还书的读者编号rid、读者姓名rname、书名bname 和借书日期 borrowtime,然后利用该视图查询出所有尚未还书的读者信息。
创建视图的语句如下。
mysql> create or replace view v_reader(读者编号,读者姓名,书名,借书日期)
-> as
-> select a.rid,rname,bname,borrowtime
-> from borrow c join reader a on a.rid=c.rid
-> join book b on b.bid=c.bid
-> where returntime is null;
查询视图的语句如下。
(4)创建一个视图,包含读者姓名rname 和书名bname,然后利用该视图查询出姓“李”的借阅了图书的读者信息,以及借阅图书的书名中包含“数据”的信息。
创建视图的语句如下。
mysql> create or replace view v_borrow(读者姓名,书名)
-> as
-> select rname,bname
-> from borrow c join reader a on a.rid=c.rid
-> join book b on b.bid=c.bid;
查询姓“李”的借阅了图书的读者信息的语句如下。
select * from v_borrow where 读者姓名 like "李%";
查询书名中包含“数据”的语句如下。
select * from v_borrow where 书名 like "%数据%";
(5)创建一个视图,包含读者表reader中的读者编号rid、读者姓名rname、性别sex 和读者类别编号typeno,然后向该视图中插入一条数据(55559999,李晓明,男,1)。
创建视图的语句如下。
mysql> create or replace view v_reader(读者编号,读者姓名,性别,读者类别编码)
-> as
-> select rid,rname,sex,typeno
-> from reader
-> with check option;
插入记录的语句如下。
mysql> insert into v_reader
-> values("55559999","李晓明","男",1);