學(xué)習(xí)筆記20170601">【PMP】學(xué)習(xí)筆記20170601
751
2022-05-28
/********************
第八單元:實(shí)現(xiàn)索引
********************/
/*
參看教材P162頁(yè)
1、索引的用途:優(yōu)化查詢,提高查詢速度(采用二分查找方法)
2、索引的分類:聚集索引(物理排序)和非聚集索引(邏輯排序)
3. 創(chuàng)建索引的語(yǔ)法格式
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX 索引名
ON 表名|視圖名 (字段名) [WITH DROP_EXISTING]
*/
/* 任務(wù):創(chuàng)建索引 */
--1. 按姓名查詢學(xué)生記錄,為了優(yōu)化查詢,給StuName創(chuàng)建非聚集索引
CREATE ? NONCLUSTERED ? INDEX ? IX_StuName
ON ? Student ? ( StuName ) ? WITH ? DROP_EXISTING ;
-- 加上WITH DROP_EXISTING,存在索引時(shí),執(zhí)行不會(huì)報(bào)錯(cuò);但是索引不存在時(shí),執(zhí)行就會(huì)報(bào)錯(cuò)。
--2. 針對(duì)Course表,課程名不允許重復(fù),創(chuàng)建一個(gè)非聚集的唯一索引
CREATE ? UNIQUE ? INDEX ? IX_CouName
ON ? Course ? ( CouName );
--3. 驗(yàn)證關(guān)于唯一索引IX_CouName是否起作用
/* 最后一條記錄:019 電子出版概論 */
INSERT ? INTO ? Course ? VALUES ? ( '020' , '電子出版概論' , '工程技術(shù)' , 3 , '羅小剛' , '02' , '周四3-4節(jié)' , 25 , 34 , 25 );
/* 錯(cuò)誤信息:不能在具有唯一索引 'IX_CouName' 的對(duì)象 'dbo.Course' 中插入重復(fù)鍵的行。*/
/* 任務(wù):重命名索引 */
--1. 將Student表上的索引IX_StuName改名為IX_StuNameNew
sp_rename ? 'Student.IX_StuName' , 'IX_StuNameNew'
--2. 驗(yàn)證:打開(kāi)“索引/鍵”對(duì)話框,查看索引名是否已經(jīng)修改
--3. 將Student表上的索引IX_StuNameNew改名為IX_StuName
sp_rename ? 'Student.IX_StuNameNew' , 'IX_StuName'
/* 任務(wù):刪除索引 */
--1. 刪除Student表中的索引IX_StuName
DROP ? INDEX ? Student . IX_StuName ;
--2. 刪除Course表中的唯一索引IX_CouName
DROP ? INDEX ? Course . IX_CouName ;
--3. 刪除Student表的主鍵索引PK_Student
DROP ? INDEX ? Student . PK_Student ;
/* 任務(wù):分析索引 */
--1. 對(duì)Student表的StuName創(chuàng)建非聚集索引IX_StuName
CREATE ? INDEX ? IX_StuName
ON ? Student ? ( StuName );
--2. 顯示查詢計(jì)劃:如果一張表上有多個(gè)索引,查詢時(shí)系統(tǒng)會(huì)采用哪個(gè)索引。
SET ? SHOWPLAN_ALL ? ON ; ? -- 顯示查詢計(jì)劃
--(1) 查找姓張的學(xué)生記錄
SELECT ? StuNo , StuName
FROM ? Student
WHERE ? StuName ? LIKE ? '張%' ;
--(2) 查找學(xué)號(hào)以“02”結(jié)尾的學(xué)生記錄
SELECT ? StuNo , StuName
FROM ? Student
WHERE ? StuNo ? LIKE ? '%02' ;
--(3) 查找學(xué)號(hào)“00000002”的學(xué)生記錄
SELECT ? StuNo , StuName
FROM ? Student
WHERE ? StuNo = '00000002' ;
SET ? SHOWPLAN_ALL ? OFF ; ? -- 不顯示查詢計(jì)劃
--3. 顯示磁盤活動(dòng)量
SET ? STATISTICS ? IO ? ON ; ? -- 顯示磁盤讀取信息
SELECT ? *
FROM ? Student
WHERE ? StuName ? LIKE ? '林%' ;
數(shù)據(jù)庫(kù)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。