索引创建
-
在图书表中按出版社号建立一个非聚集索引PublishingnoIdx:
sql
CREATE NONCLUSTERED INDEX PublishingnoIdx ON 图书(Publishingno);
-
在读者表中按身份证号建立一个非聚集索引IdentifycardIdx:
sql
CREATE NONCLUSTERED INDEX IdentifycardIdx ON 读者(身份证号);
-
在读者表中,首先按工作单位的升序,然后按最大借书数量降序建立一个非聚集索引WorkunitCountIdx:
sql
CREATE NONCLUSTERED INDEX WorkunitCountIdx ON 读者(工作单位 ASC, 最大借书数量 DESC);
视图创建
-
创建一个图书名称中含有“数据”的图书视图BookView:
sql
CREATE VIEW BookView AS
SELECT * FROM 图书
WHERE 图书名称 LIKE '%数据%';
-
创建包含读者编号、读者姓名、图书编号、图书名称、借阅日期、归还日期的视图BorrowView:
sql
CREATE VIEW BorrowView AS
SELECT 读者编号, 读者姓名, 图书编号, 图书名称, 借阅日期, 归还日期
FROM 借阅记录;
-
创建显示至少借阅3本书的读者信息视图ReaderView:
sql
CREATE VIEW ReaderView AS
SELECT 读者编号, 读者姓名, COUNT(借阅编号) AS 借阅数量
FROM 借阅记录
GROUP BY 读者编号, 读者姓名
HAVING COUNT(借阅编号) >= 3;
视图查询
-
查询2016年3月1日以前借阅的图书信息(基于BorrowView视图):
sql
SELECT * FROM BorrowView
WHERE 借阅日期 < '2016-03-01';
-
查询姓张的读者信息(基于ReaderView视图):
sql
SELECT * FROM ReaderView
WHERE 读者姓名 LIKE '张%';
-
基于BorrowView创建只包含“统一股份有限公司”读者的借阅视图BorrowView1:
sql
CREATE VIEW BorrowView1 AS
SELECT * FROM BorrowView
WHERE 读者单位 = '统一股份有限公司';
-
删除视图BorrowView:
sql
DROP VIEW BorrowView;