(1)運行SQL-SERVER服務管理器, 啓動服務
(2)運行查詢分析器, 以DBA身份登陸數據庫服務器:
用戶名sa, 密碼123456
(3)打開CREATE-TABLE.SQL並執行, 創建有關表. html
「CREATE-TABLES.SQL」文件 https://www.cnblogs.com/wkfvawl/p/10843788.html數據庫
1. 創建圖書管理有關表,要求有完整性約束(實體,參照,用戶定義):
注意: 外碼與對應主碼的類型一致!
出版社( 出版社號, 出版社名) 主碼?
PUBLISHER(PNO,PNAME)
圖書(書號,書名,價格,做者, 出版社號) 主碼?外碼?
BOOK(BNO,TITLE, PRICE, AUTHOR , PNO)
讀者(讀者號,姓名,性別,年齡)主碼?
READER(RNO,NAME, AGE, SEX)
借閱(讀者號,書號,借日期,還日期) 日期類型DATETIME,主碼?外碼?
LOAN(RNO, BNO, LOANDATE, RETURNDATE)
數據類型:
CHAR(n) 字符型
INT 整型
NUMERIC ( 精度,小數位數) 實型 精度是總有效位數
DATETIME 日期型
創建PUBLISHER的語句截圖:服務器
CREATE TABLE PUBLISHER ( PNO CHAR(10) PRIMARY KEY, PNAME CHAR(20) NOT NULL )
創建BOOK的語句截圖:spa
CREATE TABLE BOOK ( BNO CHAR(10) PRIMARY KEY, TITLE CHAR(40) NOT NULL, PRICE NUMERIC(5,2) NOT NULL, AUTHOR CHAR(20) NOT NULL, PNO CHAR(10) REFERENCES PUBLISHER(PNO) )
創建READER的語句截圖:code
CREATE TABLE READER ( RNO CHAR(10) PRIMARY KEY, RNAME CHAR(20) NOT NULL, AGE INT NOT NULL, SEX CHAR(20) CHECK (SEX IN ('男','女')) )
創建LOAN的語句截圖(約束還書日期>=借書日期,
(CHECK約束涉及多個列, 用元組級CHECK實現)htm
CREATE TABLE LOAN ( RNO CHAR(10), BNO CHAR(10), LOANDATE DATETIME, RETURNDATE DATETIME, PRIMARY KEY(RNO,BNO), FOREIGN KEY (RNO) REFERENCES READER(RNO), FOREIGN KEY (BNO) REFERENCES BOOK (BNO), CHECK (RETURNDATE>=LOANDATE) )
2. 爲用戶 'ZhangPing' 建立了一個密碼爲'Rose'的 SQL Server 登陸
語法格式: EXEC sp_addlogin '用戶名', '密碼' 對象
EXEC sp_addlogin 'ZhangPing', 'Rose'
3. 將用戶 ZhangPing 添加到當前數據庫
語法格式: EXEC sp_adduser '用戶名'blog
EXEC sp_adduser 'ZhangPing'
4. 將PUBLISHER表的查詢權,插入權授予PUBLIC
(注意SQL SERVER與教材不一樣:受權語句中要去掉關鍵字TABLE 一次只能對一個表受權)索引
GRANT SELECT , INSERT ON PUBLISHER TO PUBLIC
5. 將BOOK全部權授予ZhangPingget
GRANT ALL ON BOOK TO ZhangPing
6. 將READER的查詢權授予ZhangPing
GRANT SELECT ON READER TO ZhangPing
7. 將LOAN的插入權刪除權授予ZhangPing
GRANT SELECT,DELETE ON LOAN TO ZhangPing
8. 將READER的查詢權修改權授予ZhangPing
GRANT SELECT,UPDATE ON READER TO ZhangPing
9. 將LOAN的刪除權從ZhangPing收回
REVOKE DELETE ON LOAN TO ZhangPing
10從新以ZhangPing登陸 ( 查詢分析器選擇文件菜單的」鏈接」, 輸入用戶名ZhangPing, 密碼Rose)
登陸後, 注意將當前數據庫選擇爲」STUDB」。
登陸後更改密碼, 將密碼'Rose'改成 'coffee'
格式: EXEC sp_password '舊密碼', '新密碼'
EXEC sp_password 'Rose', 'coffee'
11. 對PUBLISHER插入1行數據。
對BOOK插入1行數據
SQL語句執行截圖:
INSERT INTO PUBLISHER(PNO,PNAME) VALUES('123456','清華大學出版社')
INSERT INTO BOOK VALUES('159317','數據庫系統概論',42.00,'王珊,薩師煊','123456');
12. 查詢BOOK全部數據 。
SELECT * FROM BOOK
13. 查詢LOAN全部數據, 報錯(未被受權查詢)
拒絕了對對象 'LOAN'(數據庫 'STUDB',全部者 'dbo')的 SELECT 權限。
14. 插入一行READER數據, 報錯(未被受權查詢)
拒絕了對對象 'READER'(數據庫 'STUDB',全部者 'dbo')的 INSERT 權限。
15. 創建一個班級表CLASS, 有班號,班名列, 報錯(無權建表)
服務器: 消息 262,級別 14,狀態 1,行 1
在數據庫 'STUDB' 中拒絕了 CREATE TABLE 權限。
1六、從新以DBA登陸 (注意當前數據庫是STUDB)
對STUDENT表的Sdept創建普通索引
CREATE INDEX STUDEPT ON STUDENT(SDEPT)
1七、對COURSE表的CNAME創建惟一索引
SQL語句執行截圖:
CREATE UNIQUE INDEX COURSENAME ON COURSE(CNAME)