CREATE TABLE MEMBER ( ACCOUNT_NUMBER CHAR(20) NOT NULL, PASSWORD VARCHAR(50) NOT NULL, ADDRESS VARCHAR(50), MEMBER_ID VARCHAR(50), REGTIME VARCHAR(50), PHONE_NUMBER VARCHAR(50), POSTBOX VARCHAR(50), SEX VARCHAR(8), NAME VARCHAR(50) ) CREATE TABLE ADMINISTRATOR ( ADMINISTRATOR_ID CHAR(20) NOT NULL, AD_CODE CHAR(30) NOT NULL, AD_NAME VARCHAR(20) NOT NULL, E_MAIL VARCHAR(50), TELEPHONE VARCHAR(20) ) CREATE TABLE ORDER_SHOW ( ORDER_ID CHAR(20) NOT NULL, NUMBER CHAR(30) NOT NULL, DATE VARCHAR(20), SUM INT NOT NULL, WAY VARCHAR(20) NOT NULL, PAYMENT_WAY VARCHAR(20) NOT NULL, TOTAL_PRICE VARCHAR(20), SHIPPING_ADD VARCHAR(50) NOT NULL, CONTACT VARCHAR(20) NOT NULL, CONSIGNEE VARCHAR(50) NOT NULL, ISSUANCE_DATE VARCHAR(20), ADMINISTRATOR_ID VARCHAR(20) NOT NULL ) CREATE TABLE BOOK ( BOOK_ID CHAR(20) NOT NULL, BOOK_NAME CHAR(30) NOT NULL, TYPE VARCHAR(20), AUTHOR VARCHAR(20) NOT NULL, PRESS VARCHAR(50) NOT NULL, PRESS_DATE VARCHAR(20) NOT NULL, PRICE FLOAT NOT NULL, DISCOUNT FLOAT NOT NULL, STOCK_NUM INT, MEM_NUM CHAR(20) NOT NULL )
5. 管理基本表
--(1) 向图书表增加“页数”列,其数据类型是整数型 ALTER TABLE BOOK ADD B_PAGE INT --(2) 将“图书表”中的“页数”数据类型改成短整型 ALTER TABLE BOOK ALTER COLUMN B_PAGE SMALLINT --(3) 增加“图书表”中“页数”取值必须大于0的约束条件 ALTER TABLE BOOK ADD CONSTRAINT CK_PAGE CHECK(B_PAGE > 0) --(4) 删除“图书表”中的页数列 ALTER TABLE BOOK DROP CONSTRAINT CK_PAGE --(5) 删除“图书表” DROP TABLE BOOK
6. 建立和管理视图
--建立一个“图书类别”为“计算机”的视图 GO CREATE VIEW COMPUTER AS SELECT * FROM BOOK WHERE TYPE = '计算机' GO
7. 建立和管理索引
--在会员表上为姓名建立索引 CREATE UNIQUE INDEX MEMBER_NAME ON MEMBER(NAME)
8. 数据查询
--(1)查询“张玲”的会员信息 SELECT * FROM MEMBER WHERE NAME = '张玲' --(2)查询图书“中国通史”的价格 SELECT PRICE FROM BOOK WHERE BOOK_NAME = '中国通史' --(3)查询网上书店系统中每种数的库存数量,并按照库存数量由多到少排列 SELECT STOCK_NUM FROM BOOK ORDER BY STOCK_NUM DESC --(4)查询“陈东光”订购图书的订单情况 SELECT * FROM ORDER_SHOW WHERE CONSIGNEE = '陈东光' --(5)列出账号为“jtxia”的会员所订购的所有图书信息 SELECT * FROM BOOK WHERE MEM_NUM = 'jtxia' --(6)列出“英语初级听力(学生用书)”图书的订购情况,按照订购数量由大到小降序排列 SELECT * FROM ORDER_SHOW,BOOK WHERE ORDER_SHOW.NUMBER = MEM_NUM AND BOOK_NAME = '英语初级听力(学生用书)' ORDER BY SUM DESC --(7)查询订单数位列前三的会员信息 SELECT * FROM MEMBER WHERE NAME IN (SELECT TOP 3 NAME FROM ORDER_SHOW,MEMBER WHERE ACCOUNT_NUMBER = NUMBER GROUP BY NAME ORDER BY SUM(ORDER_ID)) --(8)查询订购过“英语初级听力”,或者“高等数学”的会员账号和姓名 SELECT ACCOUNT_NUMBER,NAME FROM MEMBER,ORDER_SHOW,BOOK WHERE MEMBER.ACCOUNT_NUMBER = ORDER_SHOW.NUMBER AND ORDER_SHOW.NUMBER = BOOK.MEM_NUM AND BOOK_NAME = '英语初级听力(学生用书)' OR BOOK_NAME = '高等数学' --(9)统计会员所有订单的订购总价 SELECT SUM(TOTAL_PRICE) FROM ORDER_SHOW --(10)查询订购总价大于200的会员的账号 SELECT NUMBER FROM ORDER_SHOW,MEMBER WHERE ACCOUNT_NUMBER = NUMBER GROUP BY NUMBER HAVING SUM(TOTAL_PRICE) > 200
9. 数据更新
INSERT INTO MEMBER VALUES ('jtxia','123456','河北省廊坊市','@~@','2020-2-1','12345678912','123@qq.com','女','张玲') --(1)书店新进一种图书,即向图书表中增加一种新的图书,ISBN号为9787302164784,书名为软件工程导论(第5版),作者为张海潘,出版社为清华大学出版社,定价为35,折扣为8,图书类别为计算机,图书概况为“本书可作为高等院校软件工程课程的教材或教学参考书”,库存量为50 INSERT INTO BOOK VALUES ('9787302164784','软件工程导论(第5版)','计算机','张海潘','清华大学出版社','2014-3-8',35.0,0.80,50,'jskdb') --(2)书店价格调整,将“软件工程导论(第5版)”图书的“折扣”更新为7.5折 UPDATE BOOK SET DISCOUNT = 0.75 WHERE BOOK_NAME = '软件工程导论(第5版)' --(3)会员地址变更,将会员账号为“jtxia”的地址更新为“天津大学” UPDATE MEMBER SET ADDRESS = '天津大学' WHERE ACCOUNT_NUMBER = 'jtxia' --(4)书店进货,将所有图书的库存量增加10 UPDATE BOOK SET STOCK_NUM = STOCK_NUM + 10 --(5)活动促销,将“计算机”类图书的折扣全部减1(多打一折) UPDATE BOOK SET DISCOUNT = DISCOUNT - 0.1 WHERE TYPE = '计算机' --(6)由于图书下架,删除图书“软件工程导论(第5版)” DELETE FROM BOOK WHERE BOOK_NAME = '软件工程导论(第5版)'
10. 数据库维护
数据库备份
SQL Server 2008提供了4种不同的备份方式,分别是:①完整备份,备份整个数据库的所有内容,包括事务日志。②差异备份,它是完整备份的补充,差异备份只备份上次完整备份后更改的数据。③事务日志备份,事务日志备份只备份事务日志里的内容。④数据库文件和文件组备份,如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方法。 常见的数据库备份you两种方法:一种是利用Management Studio进行数据库备份;另一种时利用SQL语句进行备份。