第一篇:SQLserver教學(xué)
1.Sql2000 安裝和卸載要解決掛起的問題 2.TL_SQL帶有條件、循環(huán)的語言 3.數(shù)據(jù)庫是如何存儲數(shù)據(jù)的
字段 記錄 表 約束(主鍵 外鍵 唯一鍵 非空 check default)4.數(shù)據(jù)庫是如何操作數(shù)據(jù)
Insert update delete T-SQL 存儲過程 函數(shù) 觸發(fā)器 5.數(shù)據(jù)庫是如何顯示數(shù)據(jù)的
6.主鍵:唯一標(biāo)識事物;外鍵:來連接另外相關(guān)聯(lián)的表(來自);對多一(外鍵存放“多”表)其值不能隨便設(shè)置;一條記錄—元組,列叫字段,屬性; 外鍵表(外鍵存在的表),主鍵表(被視為是主鍵的表)建立外鍵dept_id int constraint fk_dept_id_hehe foreign key references
dept(dept_id)id int constraint pk_emp_lion primary key,主鍵
7.主鍵約束:不允許重復(fù)元素,避免了數(shù)據(jù)的冗余 外鍵約束:通過外鍵約束從語法上本事物關(guān)聯(lián)的其他事物一定是存在的(事物與事物之間的關(guān)系)
Check約束:sex char(2)check(sex in('男','女'))保證事物在某個取值范圍內(nèi) Default約束:設(shè)定為默認(rèn)的值
Unique約束:不能插入重復(fù)的值,能為空,主鍵不能為空;unique和not null 可以組合使用;不允許多列為空;orcal中運行多列為空
8.主鍵的選擇:最好用沒有業(yè)務(wù)邏輯的唯一的主鍵,方便檢索; 9.關(guān)系:
一對一的關(guān)系:可以把表A的主鍵充當(dāng)表B的外鍵,也可反之; 一對多的關(guān)系:表A
(一)的主鍵成為表B(多)的外鍵;
多對多的關(guān)系:班級——老師——學(xué)生,單獨一張表去實現(xiàn)關(guān)系,第三張表的主鍵設(shè)置 外鍵與外鍵的組合;外鍵來自兩張表的主鍵;
10.查詢(最重要、難度最大)distinct 會過濾掉重復(fù)的deptno的值;distinct 兩個屬性列可以對他們組成的組合進行過濾;先取表—在過濾條件; Null 不參與邏輯運算,is null,null不能有值的進行運算;
解決辦法:sal*12+isnull(comm,0):如果其值為空,返回‘0’,不為空 返回本值 11.Order by(以某個字段排序):不是組合排序,先按照第一個屬性排序,相同的再按第二個屬性排序;
12.聚合函數(shù) count(deptno)統(tǒng)計返回的不為空的記錄
Count(distinct 字段)返回字段不重復(fù)的記錄數(shù)
13.Group by之后select 中只能出現(xiàn)分組后的整體信息,不能顯示單獨的信息;
先按A分組,如果A相同,在按B分組,如果B分組相同,再按C分組,最總統(tǒng)計的是最小分組的信息;
14.Having 對分組之后的信息進行過濾;
select deptno,avg(sal)from emp group by deptno having avg(sal)>=2000 where對原始的記錄進行過濾,group by 是對分組之后的記錄過濾; 同:都是對數(shù)據(jù)進行過濾,保留有效數(shù)據(jù)
15.連接查詢:將兩個表或者兩個以上的表以一定的連接條件連接起來,從中檢索出滿足條件的數(shù)據(jù); 內(nèi)連接:select ….from a join b on 條件;select * from a,b對表A、表B 進行笛卡爾積 用where 會對a表進行過濾; On后面為連接條件;jion為連接;
select * from emp,dept where emp.deptno=dept.deptno與內(nèi)鏈接結(jié)果相同 推薦使用jion on 對連接結(jié)果再進行where過濾 3張表進行連接:
select a.ename,a.deptno,b.dname,c.grade from emp a join dept b on a.deptno = b.deptno join salgrade c on a.sal between losal and hisal 外連接:不但返回滿足條件的所有幾率,而且會返回部分不滿足的條件的記錄; 完全連接:兩個表中匹配的所有行的記錄,左邊匹配右邊,右邊匹配左邊; 交叉連接:產(chǎn)生一個笛卡爾積 等價于select * from emp,dept 自連接:一張表和自己連接起來查詢數(shù)據(jù)。例子:不準(zhǔn)用聚合函數(shù),求薪水最高的員工的信息;
聯(lián)合的用法:表和表之間的數(shù)據(jù)以縱向的方式連接在一起; 必須滿足兩個條件:這select子句必須滿足列的屬性相同;
注意:我們之前講的所有的連接是以橫向的連接方式去連接在一起的;
16.Identity 主鍵自動增長,自動增長后刪除,不會自動過濾刪除過的記錄;主鍵不會自動增長;主鍵是否連續(xù)增長不是十分重要;可以為identity主鍵賦值;
17.學(xué)習(xí)的步驟:為什么需要A,什么是A,怎么使用A,使用A時的注意問題,A的應(yīng)用領(lǐng)域,A的優(yōu)缺點; 18.視圖
1.為什么需要視圖;2.什么是視圖;3.視圖的格式;4.視圖的優(yōu)點、缺點;5.注意的問題;
1).簡化查詢:避免了代碼的冗余,大量重復(fù)的SQL語句;從代碼上看是一個select語句 從邏輯上看是一個虛擬表看待 視圖的格式:
2).Create view 視圖的名字
3).用視圖去查詢數(shù)據(jù);4).增加了數(shù)據(jù)庫的維護的成本; As Select 語句
不用添加begin 和end 創(chuàng)建視圖的select 語句必須為所有的計算列(非原始的)指定別名;不建議對基表進行操作; 19.事務(wù):保證避免數(shù)據(jù)處于以后總不合理的中間狀態(tài)
要么成功,要么失敗;
事務(wù)也是通過鎖來解決很多問題的;線程同步就是通過鎖來解決的;
第二篇:SqlServer教學(xué)大綱
《SQL Server2005案例教程》教學(xué)大綱
一、教學(xué)目的:
1.通過本門課程的學(xué)習(xí),使學(xué)員掌握數(shù)據(jù)庫的概念,安裝以及數(shù)據(jù)庫在程序設(shè)計中的重要地位和作用 2.理解關(guān)系型數(shù)據(jù)庫和表,約束,索引的創(chuàng)建
3.了解SQL語言基礎(chǔ)與使用SQL語言實現(xiàn)數(shù)據(jù)的查詢與更新 4.熟悉sqlserver的應(yīng)用環(huán)境及掌握常用的管理方法 5.掌握視圖,存儲過程,觸發(fā)器等數(shù)據(jù)庫對象的創(chuàng)建與使用 6.掌握數(shù)據(jù)庫的安全管理 7.掌握數(shù)據(jù)的備份與恢復(fù) 8.掌握數(shù)據(jù)的導(dǎo)入導(dǎo)出步驟
9.理解SqlServer下事務(wù)的概念,并能在實際應(yīng)用中合理的使用事務(wù)控制命令
二、教學(xué)重點:
1.數(shù)據(jù)庫基本概念
2.數(shù)據(jù)庫表,約束,索引的創(chuàng)建 3.使用SQL語言實現(xiàn)數(shù)據(jù)的查詢與更新 4.Select,update,delete,insert 5.index 6.constraint 7.view視圖
三、教學(xué)難點:
1.SqlServer體系結(jié)構(gòu)
2.SqlServer下事務(wù)的概念,并能在實際應(yīng)用中合理的使用事務(wù)控制 3.存儲過程 4.觸發(fā)器
四、教學(xué)內(nèi)容及學(xué)時分配
第1章、數(shù)據(jù)庫概述 6課時
第2章、SQL Server安裝及管理 4課時 第3章、數(shù)據(jù)庫及表的設(shè)計 4課時 第4章、T-ransact SQL語言基礎(chǔ) 6課時 第5章、T-ransact SQL數(shù)據(jù)查詢與更新 14課時 第6章、視圖 6課時 第7章、存儲過程 復(fù)習(xí)
5課時
4課時
第8章、觸發(fā)器
6課時 第9章、SQL安全 3第10章、數(shù)據(jù)備份與恢復(fù) 第11章、數(shù)據(jù)轉(zhuǎn)換
復(fù)習(xí)4
課時 4課時 2課時
課時 68課時
第三篇:SqlServer教學(xué)大綱
《數(shù)據(jù)庫與SQL Server》課程教學(xué)大綱
總學(xué)時:48 學(xué)分:2.5 適用對象:軟件工程專業(yè)和信息工程與信息管理專業(yè)。先修課程:程序設(shè)計導(dǎo)論等。
考核要求:本課程采用期末考核與平時成績相結(jié)合的方式對學(xué)生學(xué)習(xí)情況予以評定,平時成績占40%,期末考核成績占60%。平時成績包括作業(yè)、實驗報告與考勤,期末考核方式為課程設(shè)計。
一、課程的性質(zhì)與任務(wù)
數(shù)據(jù)庫技術(shù)是各種信息系統(tǒng)、管理系統(tǒng)的基礎(chǔ)。Microsoft SQL Server 2000是一種使用比較廣泛、功能強大、可靠性較高的數(shù)據(jù)庫管理系統(tǒng),為用戶提供了完整的數(shù)據(jù)庫解決方案。開設(shè)本課程可以令學(xué)生掌握數(shù)據(jù)庫的有關(guān)概念,熟悉一種大型數(shù)據(jù)庫管理系統(tǒng)的使用。
本課程是一門理論和應(yīng)用相結(jié)合的課程,要求學(xué)生在完成本課程的學(xué)習(xí)后,能在SQL SERVER 2000數(shù)據(jù)庫管理系統(tǒng)中利用所學(xué)習(xí)的數(shù)據(jù)庫知識對數(shù)據(jù)庫進行設(shè)計、操作。
二、教學(xué)目的與基本要求
熟練掌握:關(guān)系數(shù)據(jù)庫中的概念,數(shù)據(jù)庫設(shè)計,數(shù)據(jù)庫的結(jié)構(gòu)與特點,數(shù)據(jù)庫系統(tǒng)的組成及各部分的功能,熟練使用結(jié)構(gòu)化查詢語言(SQL)。數(shù)據(jù)庫管理,各種數(shù)據(jù)庫對象管理,索引技術(shù),數(shù)據(jù)操縱技術(shù)。
掌握:系統(tǒng)的安裝,服務(wù)器的配置技術(shù),安全性技術(shù),數(shù)據(jù)復(fù)制技術(shù),數(shù)據(jù)的互操作技術(shù),數(shù)據(jù)完整性控制,Transact-SQL語言。
了解:關(guān)系、關(guān)系模型、鍵碼、視圖、存儲過程、觸發(fā)器等概念,SQL Server的并發(fā)性。
理論教學(xué)部分
理論課學(xué)時:42 使用教材及主要參考書:
教材:李春葆,《數(shù)據(jù)庫原理與應(yīng)用——基于SQL Server 2000》,清華大學(xué)出版社。主要參考書:Microsoft SQL SERVER 2000聯(lián)機文檔。
一、學(xué)時分配
章節(jié) 1 2 3 4 5 6 7 課程內(nèi)容 數(shù)據(jù)庫系統(tǒng)概述 數(shù)據(jù)模型 關(guān)系數(shù)據(jù)庫
關(guān)系數(shù)據(jù)庫規(guī)范化理論 數(shù)據(jù)庫設(shè)計
SQL Server 2000系統(tǒng)概述 創(chuàng)建和使用數(shù)據(jù)庫
學(xué)時 1 2 2 4 4 2 3 8 9 10 11 12 13 14 15 16 17 18 創(chuàng)建和使用表 Transact-SQL SQL高級應(yīng)用 索引 視圖
數(shù)據(jù)庫完整性 存儲過程 觸發(fā)器
SQL Server的安全管理 數(shù)據(jù)備份與還原 數(shù)據(jù)轉(zhuǎn)換 4 2 1.5 1.5 3 3 3 1 1 1
二、教學(xué)中應(yīng)注意的問題
利用多媒體輔助授課,注意培養(yǎng)學(xué)生設(shè)計、管理、使用數(shù)據(jù)庫的能力。
三、教學(xué)內(nèi)容
第一章 數(shù)據(jù)庫系統(tǒng)概述
基本內(nèi)容:
信息、數(shù)據(jù)和數(shù)據(jù)處理,數(shù)據(jù)管理技術(shù)的發(fā)展,數(shù)據(jù)庫系統(tǒng)的組成與結(jié)構(gòu),數(shù)據(jù)庫管理系統(tǒng)。
教學(xué)基本要求:
熟練掌握:信息與數(shù)據(jù),數(shù)據(jù)處理,數(shù)據(jù)庫系統(tǒng)的組成,數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu),DBMS的主要功能,DBMS的組成。教學(xué)重點難點:
數(shù)據(jù)處理,數(shù)據(jù)庫系統(tǒng)的組成,數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu),DBMS的主要功能,DBMS的組成。
第二章 數(shù)據(jù)模型
基本內(nèi)容:
數(shù)據(jù)模型,概念模型,數(shù)據(jù)庫類型。教學(xué)基本要求:
熟練掌握:數(shù)據(jù)的描述,實體間的聯(lián)系方式,實體聯(lián)系表示法(E-R方法),關(guān)系模型。教學(xué)重點難點:
關(guān)系模型。
第三章 關(guān)系數(shù)據(jù)庫
基本內(nèi)容:
關(guān)系模型的基本概念,關(guān)系的數(shù)學(xué)定義,關(guān)系代數(shù)。教學(xué)基本要求:
熟練掌握:關(guān)系模型的基本概念,關(guān)系的數(shù)學(xué)定義,關(guān)系代數(shù)。教學(xué)重點難點:
關(guān)系模型的基本概念,關(guān)系的數(shù)學(xué)定義,關(guān)系代數(shù)。
第四章 關(guān)系數(shù)據(jù)庫規(guī)范化理論
基本內(nèi)容:
函數(shù)依賴,范式和規(guī)范化,關(guān)系模式的分解。教學(xué)基本要求:
熟練掌握:函數(shù)依賴與屬性關(guān)系,Armstrong公理,范式的判定條件與規(guī)范化,無損分解的定義和性質(zhì),無損分解的測試方法,保持函數(shù)依賴的分解。教學(xué)重點難點:
范式的判定條件與規(guī)范化,無損分解的定義和性質(zhì),無損分解的測試方法,保持函數(shù)依賴的分解。
第五章 數(shù)據(jù)庫設(shè)計
基本內(nèi)容:
數(shù)據(jù)庫設(shè)計概述,需求分析,概念結(jié)構(gòu)設(shè)計,邏輯結(jié)構(gòu)設(shè)計,物理結(jié)構(gòu)設(shè)計,數(shù)據(jù)庫的實施和維護。教學(xué)基本要求:
熟練掌握:需求分析,概念結(jié)構(gòu)設(shè)計,邏輯結(jié)構(gòu)設(shè)計,物理結(jié)構(gòu)設(shè)計。教學(xué)重點難點:
局部應(yīng)用E-R模型設(shè)計,總體概念E-R模型設(shè)計。
第六章 SQL Server 2000系統(tǒng)概述
1. 基本內(nèi)容:
SQL Server 2000系統(tǒng)簡介,系統(tǒng)需求,SQL Server 2000的安裝,客戶/服務(wù)器體系結(jié)構(gòu),SQL Server服務(wù)器的管理,SQL Server 2000的主要組件。2. 教學(xué)基本要求:
熟練掌握:系統(tǒng)需求,SQL Server 2000的安裝,客戶/服務(wù)器體系結(jié)構(gòu),SQL Server 2000的主要組件。3. 教學(xué)重點難點:
系統(tǒng)需求,SQL Server 2000的安裝,客戶/服務(wù)器體系結(jié)構(gòu),SQL Server 2000的主要組件。
第七章 創(chuàng)建和使用數(shù)據(jù)庫
1. 基本內(nèi)容:
查看數(shù)據(jù)庫,SQL Server數(shù)據(jù)庫和文件,創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫更名,刪除數(shù)據(jù)庫。2. 教學(xué)基本要求:
熟練掌握:查看數(shù)據(jù)庫,SQL Server數(shù)據(jù)庫和文件,創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫更名,刪除數(shù)據(jù)庫。
3. 教學(xué)重點難點:
查看數(shù)據(jù)庫,SQL Server數(shù)據(jù)庫和文件,創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫更名,刪除數(shù)據(jù)庫。
第八章 創(chuàng)建和使用表
1. 基本內(nèi)容:
建立表,修改表的結(jié)構(gòu),建立表間的關(guān)聯(lián),刪除表,記錄的新增和修改。2. 教學(xué)基本要求:
熟練掌握:建立表,修改表的結(jié)構(gòu),建立表間的關(guān)聯(lián),刪除表,記錄的新增和修改。3. 教學(xué)重點難點:
建立表,修改表的結(jié)構(gòu),建立表間的關(guān)聯(lián),記錄的新增和修改。
第九章 Transact-SQL 1. 基本內(nèi)容:
SQL語言,Transact-SQL基礎(chǔ),Transact-SQL程序設(shè)計基礎(chǔ)。2. 教學(xué)基本要求:
熟練掌握:數(shù)據(jù)庫的操作語句,表的操作語句,數(shù)據(jù)查詢,標(biāo)識符,數(shù)據(jù)類型,運算符,變量,批處理,注釋,控制流語句,函數(shù)。3. 教學(xué)重點難點:
數(shù)據(jù)庫的操作語句,表的操作語句,數(shù)據(jù)查詢,標(biāo)識符,數(shù)據(jù)類型,運算符,變量,批處理,注釋,控制流語句,函數(shù)。
第十章 SQL高級應(yīng)用
1. 基本內(nèi)容:
SELECT高級查詢,管理ntext、text和image數(shù)據(jù),事務(wù)處理,數(shù)據(jù)的鎖定,使用游標(biāo)。2. 教學(xué)基本要求:
熟練掌握:SELECT高級查詢,管理ntext、text和image數(shù)據(jù),事務(wù)處理,數(shù)據(jù)的鎖定,使用游標(biāo)。3. 教學(xué)重點難點:
SELECT高級查詢,使用游標(biāo)。
第十一章 索引
1. 基本內(nèi)容:
索引簡介,索引類型,創(chuàng)建索引,查看和刪除索引。2. 教學(xué)基本要求:
掌握:索引類型。
熟練掌握:創(chuàng)建索引,查看和刪除索引。3. 教學(xué)重點難點:
創(chuàng)建索引,查看和刪除索引。
第十二章 視圖
1. 基本內(nèi)容:
視圖概述,創(chuàng)建視圖,使用視圖,視圖的修改,視圖信息的查詢,視圖的刪除。2. 教學(xué)基本要求:
熟練掌握:創(chuàng)建視圖,視圖的修改,視圖的刪除。3. 教學(xué)重點難點:
創(chuàng)建視圖,視圖的修改,視圖的刪除。
第十三章 數(shù)據(jù)庫完整性
1. 基本內(nèi)容:
約束,默認(rèn)值,規(guī)則。2. 教學(xué)基本要求:
熟練掌握:約束,默認(rèn)值,規(guī)則。3. 教學(xué)重點難點:
約束,默認(rèn)值,規(guī)則。
第十四章 存儲過程
1. 基本內(nèi)容:
概述,創(chuàng)建存儲過程,執(zhí)行存儲過程,存儲過程的參數(shù),存儲過程的查看、修改和刪除。2. 教學(xué)基本要求:
熟練掌握:創(chuàng)建存儲過程,執(zhí)行存儲過程,存儲過程的參數(shù),存儲過程的查看、修改和刪除。
3. 教學(xué)重點難點:
創(chuàng)建存儲過程,執(zhí)行存儲過程,存儲過程的參數(shù)。
第十五章 觸發(fā)器
1. 基本內(nèi)容:
概述,創(chuàng)建觸發(fā)器,inserted表和deleted表,使用觸發(fā)器,修改觸發(fā)器,刪除觸發(fā)器,嵌套觸發(fā)器。2. 教學(xué)基本要求:
熟練掌握:創(chuàng)建觸發(fā)器,inserted表和deleted表,使用觸發(fā)器,修改觸發(fā)器,刪除觸發(fā)器,嵌套觸發(fā)器。3. 教學(xué)重點難點:
創(chuàng)建觸發(fā)器,inserted表和deleted表,嵌套觸發(fā)器。
第十六章 SQL Server的安全管理
1. 基本內(nèi)容:
SQL Server安全體系結(jié)構(gòu),SQL Server的驗證模式,賬號和角色。2. 教學(xué)基本要求:
熟練掌握:SQL Server安全體系結(jié)構(gòu),SQL Server的驗證模式,賬號和角色。3. 教學(xué)重點難點:
服務(wù)器的登錄賬號,數(shù)據(jù)庫的用戶,數(shù)據(jù)庫角色,用戶和角色的權(quán)限問題。
第十七章 數(shù)據(jù)備份與還原
1. 基本內(nèi)容:
備份和還原構(gòu)架,備份數(shù)據(jù)庫,數(shù)據(jù)庫還原。2. 教學(xué)基本要求: 熟練掌握:備份數(shù)據(jù)庫,數(shù)據(jù)庫還原。3. 教學(xué)重點難點:
備份數(shù)據(jù)庫,數(shù)據(jù)庫還原。
第十八章 數(shù)據(jù)轉(zhuǎn)換
1. 基本內(nèi)容:
DTS的基本概念,數(shù)據(jù)的導(dǎo)入,數(shù)據(jù)的導(dǎo)出。2. 教學(xué)基本要求:
熟練掌握:DTS的基本概念,數(shù)據(jù)的導(dǎo)入,數(shù)據(jù)的導(dǎo)出。3. 教學(xué)重點難點:
數(shù)據(jù)的導(dǎo)入,數(shù)據(jù)的導(dǎo)出
實驗教學(xué)部分
實驗學(xué)時:6 實驗指導(dǎo)書:李春葆,《數(shù)據(jù)庫原理與應(yīng)用——基于SQL Server 2000》,清華大學(xué)出版社。
一、課程的性質(zhì)與任務(wù)
數(shù)據(jù)庫技術(shù)是各種信息系統(tǒng)、管理系統(tǒng)的基礎(chǔ)。Microsoft SQL Server 2000是一種使用比較廣泛、功能強大、可靠性較高的數(shù)據(jù)庫管理系統(tǒng),為用戶提供了完整的數(shù)據(jù)庫解決方案。開設(shè)本課程可以令學(xué)生掌握數(shù)據(jù)庫的有關(guān)概念,熟悉一種大型數(shù)據(jù)庫管理系統(tǒng)的使用。
本課程是一門理論和應(yīng)用相結(jié)合的課程,要求學(xué)生在完成本課程的學(xué)習(xí)后,能在SQL SERVER 2000數(shù)據(jù)庫管理系統(tǒng)中利用所學(xué)習(xí)的數(shù)據(jù)庫知識對數(shù)據(jù)庫進行設(shè)計、操作。
二、實驗?zāi)康呐c基本要求
本實驗課程配合理論教學(xué),通過實驗從實踐中進一步學(xué)習(xí),掌握和運用學(xué)過的數(shù)據(jù)庫的基本理論;熟練使用Transact-SQL語言處理各類典型數(shù)據(jù)庫應(yīng)用問題,解決實驗過程中的出現(xiàn)的錯誤和問題,培養(yǎng)、訓(xùn)練學(xué)生的分析和解決問題的能力。
學(xué)生必須完成的基本要求:準(zhǔn)備實驗,擬定實驗方案;組織實驗;寫出需求分析報告,畫出流程圖;調(diào)試程序;寫出實驗報告。
三、實驗考核方式及辦法
考核方式:考查;
實驗成績評分辦法:程序調(diào)試占40%,預(yù)習(xí)報告占10%,實驗報告占30%,平時成績占20%。
四、實驗項目一覽表
SQL Server 程序設(shè)計實驗項目一覽表
序號 1 實驗項目名稱
實驗類型
實驗要求 必做
適用專業(yè) 信息
學(xué)時 3 注冊、配置服務(wù)器、管理數(shù)據(jù)庫、管理表 設(shè)計 2 Transact-SQL 設(shè)計 必做 信息 3
五、實驗項目的具體內(nèi)容
實驗一 注冊、配置服務(wù)器、管理數(shù)據(jù)庫、管理表
1、本次實驗的目的和要求
熟練使用企業(yè)管理器、查詢分析器與MS SQL SERVER 2000實例連接,進行服務(wù)器的注冊和配置。創(chuàng)建、修改、查看、刪除數(shù)據(jù)庫。創(chuàng)建、修改、刪除數(shù)據(jù)表。熟練使用索引、視圖對數(shù)據(jù)進行管理和查看。掌握SQL SERVER中有關(guān)數(shù)據(jù)庫安全的操作。掌握SQL SERVER中如何進行數(shù)據(jù)互操作、數(shù)據(jù)復(fù)制等操作。
2、實驗內(nèi)容或原理
使用企業(yè)管理器進行MS SQL SERVER 2000服務(wù)器的注冊,并在企業(yè)管理器中對已注冊的SQL SERVER實例進行配置。
使用查詢分析器與指定MS SQL SERVER 2000服務(wù)器連接,并通過查詢窗口使用SQL語句查看、修改服務(wù)器的配置。
分別使用查詢分析器和企業(yè)管理器實現(xiàn)創(chuàng)建、修改、查看、刪除數(shù)據(jù)庫。在用戶數(shù)據(jù)庫中創(chuàng)建、修改、刪除數(shù)據(jù)表。注意表中約束條件的使用。根據(jù)要求進行索引、視圖的定義、使用、查看、修改、刪除等操作。
分別通過企業(yè)管理器和查詢分析器在SQL SERVER實例中對登錄賬號、數(shù)據(jù)庫安全賬號、角色進行創(chuàng)創(chuàng)建、修改、刪除和權(quán)限的管理。
通過SQL SERVER的數(shù)據(jù)轉(zhuǎn)換服務(wù)在SQL SERVER和其它格式數(shù)據(jù)文件之間進行數(shù)據(jù)的轉(zhuǎn)換和復(fù)制。
實驗二 Transact-SQL
1、本次實驗的目的和要求
通過查詢分析器在實驗二中創(chuàng)建的用戶數(shù)據(jù)表中使用數(shù)據(jù)操縱語言進行基本數(shù)據(jù)操作,并使用Transact-SQL進行簡單SQL程序設(shè)計。掌握數(shù)據(jù)的高級查詢技巧,學(xué)習(xí)如何處理大數(shù)據(jù),練習(xí)游標(biāo)的使用。掌握SQL SERVER中控制完整性的方法,學(xué)習(xí)存儲過程的使用。
2、實驗內(nèi)容或原理
在數(shù)據(jù)表中添加記錄、更新記錄、刪除記錄,按照要求進行數(shù)據(jù)的簡單查詢,并使用Transact-SQL進行簡單SQL程序設(shè)計。通過查詢分析器對數(shù)據(jù)進行高級查詢,處理大數(shù)據(jù),練習(xí)游標(biāo)的使用。
通過查詢分析器練習(xí)通過約束、默認(rèn)值、規(guī)則等手段進行數(shù)據(jù)的完整性控制,練習(xí)存儲過程的使用,利用存儲過程實現(xiàn)復(fù)雜操作。
通過查詢分析器進行觸發(fā)器的創(chuàng)建、使用、修改、刪除等操作,并利用觸發(fā)器實現(xiàn)復(fù)雜的完整性控制。
編寫人:趙光煜
編寫(修訂)日期:2007.7
第四篇:sqlserver講稿
各位同行:
大家好!
非常榮幸和大家一起交流學(xué)習(xí)SQLSERVER的知識,說實話,對本內(nèi)容我已經(jīng)放下很多年了,而且跟我們中的許多專業(yè)人士相比,我所掌握的知識是非常淺薄的,同時也由于時間關(guān)系,雖然我已經(jīng)竭盡全力,但是很多地方我只能點到為止,希望能對大家的學(xué)習(xí)起到一個簡單的引導(dǎo)和動員作用。
在開始學(xué)習(xí)內(nèi)容之前,我想講兩個問題,第一個為什么要學(xué)習(xí)數(shù)據(jù)庫?兩個理由,1、作為信息技術(shù)教師,我們必須具備比較全面的知識,數(shù)據(jù)庫應(yīng)該是信息技術(shù)教師的一個專業(yè)基礎(chǔ),目前高中信息技術(shù)選修教材就有一本數(shù)據(jù)庫技術(shù)應(yīng)用;
2、數(shù)據(jù)庫技術(shù)在我們?nèi)粘9ぷ魃钪薪?jīng)常需要應(yīng)用到,例如網(wǎng)站的編輯制作、平時給學(xué)校安裝的一些應(yīng)用軟件都經(jīng)常要用到數(shù)據(jù)庫。而且我一直有一個想法,我們象山有那么多的信息技術(shù)教師,而且人才輩出,為什么不組織起來,成立一個大的公司,因為我們的人才除了教育之外,還可以承擔(dān)社會上的網(wǎng)站制作、軟件開發(fā)、廣告制作,影視動畫設(shè)計等工作,網(wǎng)站制作、軟件開發(fā)肯定經(jīng)常要和數(shù)據(jù)庫打交道,所以適當(dāng)?shù)膶W(xué)習(xí)一些數(shù)據(jù)庫的知識對我們的工作,對我們專業(yè)知識,對我們的發(fā)展都是有好處的。第二個問題,如何學(xué)習(xí)?多實踐。計算機知識并不是靠教的,而是靠自己在實踐中去學(xué)習(xí)的。KESION 今天我們的學(xué)習(xí)內(nèi)容我分為四個部分,1、是SQLSERVER的簡介和安裝
2、運用企業(yè)管理器來建立和操作SQLSERVER數(shù)據(jù)庫,3、SQL語言來操作數(shù)據(jù)庫
4、實踐練習(xí)。我的講授實踐大約是2個半小時,實踐練習(xí)45分鐘左右。
第一部分:SQLSERVER的簡介和安裝(30分鐘)
1、SQL簡介: 結(jié)構(gòu)化查詢語言,是指用來對存放在計算機中的數(shù)據(jù)庫進行組織、管理和檢索的語言,這個概念模型是70年代IBM公司提出來的,當(dāng)時他的英文全稱是Structured Qurey Language,1986年美國標(biāo)準(zhǔn)協(xié)會公布的SQL86標(biāo)準(zhǔn)用standard query language來取代了這個英文名稱,但是其核心沒有發(fā)生改變。
SQL語言是數(shù)據(jù)庫發(fā)展和應(yīng)用中一個非常有用的工具,不僅SQLSERVER數(shù)據(jù)庫支持SQL語言,ACCESSMY-SQL等都支持SQL語言,是目前應(yīng)用最廣泛的關(guān)系數(shù)據(jù)庫查詢語言,不僅SQL數(shù)據(jù)庫中可以用到它,基本上所有的關(guān)系型數(shù)據(jù)庫都可以用到。而且它有一個好處是SQL語言不僅僅在數(shù)據(jù)庫中可以直接應(yīng)用,而且還可以嵌入到其它的開發(fā)語言中,例如網(wǎng)頁代碼中、各種編程語言中,利用編程語言來操作數(shù)據(jù)庫。
而且它的語言簡單,易學(xué)易用。功能包括四個方面,定義、查詢、操縱和控制數(shù)據(jù)庫。整個語言中,只有9個核心動詞,這9個核心動詞分布在SQL語言的四個部分中
(1)數(shù)據(jù)定義語言(DDL,Data Define Language),這部分語言是用來定義、撤銷、修改數(shù)據(jù)對象的,例如修改數(shù)據(jù)庫或者數(shù)據(jù)表。它有3個單詞:create drop alter Create 創(chuàng)建表、創(chuàng)建索引、創(chuàng)建觸發(fā)器 Drop 丟棄表 Alter 修改
(2)數(shù)據(jù)庫查詢語言
select
(3)數(shù)據(jù)庫操縱語言
insert update delete
(4)數(shù)據(jù)庫控制語言 grant revoke 例如對用戶進行授權(quán),控制讀寫權(quán)限。
2、SQLserver簡介
Sqlserver 是微軟公司開發(fā)和推廣的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它最初是有微軟、SYBASE和ASTON三個公司共同開發(fā)的,后來后2家公司退出了開發(fā)團隊,微軟 憑借強大的財力和實力,不斷地退出新的版本,我們今天學(xué)習(xí)的是2000版,其實2000版后面還有2005,2008,2010三個版本,由于系統(tǒng)限制,同時2000占據(jù)應(yīng)用市場的最大份額。
特點:(1)、支持C/S體系結(jié)構(gòu),計算機最早是單機系統(tǒng),后來出現(xiàn)多用戶系統(tǒng)。例如銀行用的UNIX系統(tǒng),一臺服務(wù)器支持多個終端。客戶機可以訪問服務(wù)器的資源,利用一臺電腦建立SQLSERVER數(shù)據(jù)庫服務(wù)器,將SQLserver安裝到這臺電腦上,其它電腦可以登錄到這臺電腦共享數(shù)據(jù)資源。SQLserver是一個單進程,多線程的服務(wù)。也就是說,服務(wù)器上始終有一個進程在待命,同時可以相應(yīng)對個終端的請求。它最多可以同時支持32767個連接。
(2)、圖形化工作界面,使系統(tǒng)管理和數(shù)據(jù)管理更加直觀、簡單,容易學(xué)習(xí),容易控制。(3)、有豐富的變成接口工具,為用戶今次那個程序設(shè)計提供了豐富的選擇余地,例如可以使用ODBC數(shù)據(jù)源連接,也可以使用網(wǎng)絡(luò)連接。
(4)與windowsNT以上版本完全集成,很好地與微軟的操作系統(tǒng)產(chǎn)品集成,集成管理登陸的安全性。
(5)具有很好的伸縮性,從win95到win7多種平臺,多種處理器使用。
(6)對WEB技術(shù)的支持,使用戶很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到WEB上。
(7)提供數(shù)據(jù)倉庫功能,而這個功能除了SQLSEVER外只有一些比較昂貴的數(shù)據(jù)庫管理系統(tǒng)中才有,例如ORACLE.性能
Sqlserver數(shù)據(jù)庫管理系統(tǒng)中可以同時建立32767個數(shù)據(jù)庫,每個庫中可以建立20億個表,每個表可以支持1024個字段(列),可以同時支持32767個用戶連接,鎖定打開對象20億個,可以同時打開32767個數(shù)據(jù)庫。
數(shù)據(jù)庫的安裝,安裝之前我們要考慮軟硬件條件是否滿足,關(guān)閉影響SQLSERVER數(shù)據(jù)庫安裝的一些程序,而且必須以管理員的身份登錄到安裝計算機。同時要考慮適合自己需要的版本。
版本:
Sqlserver2000的版本有四種,我們可以根據(jù)實際應(yīng)用需要選擇自己的版本 企業(yè)版大中型產(chǎn)品的數(shù)據(jù)庫服務(wù)器,一般作為數(shù)據(jù)庫服務(wù)器使用,一百個以上的應(yīng)用客戶端同時使用。
標(biāo)準(zhǔn)版支持工作組,用于小型的工作做或部門,不支持關(guān)系數(shù)據(jù)庫的引擎功能。個人版用于移動用戶,經(jīng)常在網(wǎng)絡(luò)上斷開,除了事務(wù)處理復(fù)制功能外支持標(biāo)準(zhǔn)版的所有功能。
開發(fā)版只授權(quán)開發(fā)和測試使用,而不是一個產(chǎn)品的服務(wù)器,提供豐富調(diào)試工具。安裝示范
實例是SQL2000中引入的一個新概念,多實例就是在同一臺電腦上安裝多個SqlServer服務(wù)器,實例不僅可以在同一電腦上運行多個SqlServer服務(wù)器,而且可以可以安裝不同版本的SqlServer數(shù)據(jù)庫在同一電腦上,而且他們互干擾。
默認(rèn)實例就是以計算機在網(wǎng)絡(luò)上的名字命名的實例,在一臺計算機上只允許有一個默認(rèn)實例存在。
命名實例就是運用計算機在網(wǎng)絡(luò)上的名字加上數(shù)據(jù)庫標(biāo)志名字來命名的實例,形式是計算機名實例名,客戶機可以根據(jù)實際需要連接到同一臺計算機上不同的實例。
任務(wù)一:在自己的電腦上安裝SQLSERVER2000個人版。第二部分:運用企業(yè)管理器來創(chuàng)建和操作數(shù)據(jù)庫
系統(tǒng)數(shù)據(jù)庫:
Master:最重要,是追蹤其它所有數(shù)據(jù)庫和存儲信息的關(guān)鍵庫,控制著用戶數(shù)據(jù)庫和存儲信息的關(guān)鍵庫。
Model:模板數(shù)據(jù)庫,當(dāng)創(chuàng)建新的數(shù)據(jù)庫的時候,新數(shù)據(jù)庫的第一部分就是通過復(fù)制model數(shù)據(jù)庫中的內(nèi)容創(chuàng)建的,它由7個表組成,因此model數(shù)據(jù)庫不能刪除
Msdb:代理數(shù)據(jù)庫為其警報,任務(wù)調(diào)度和記錄提供存儲空間。SqlServer在MSDB數(shù)據(jù)庫中自動維護完整的聯(lián)機備份和恢復(fù)歷史記錄。
Tempdb:臨時數(shù)據(jù)庫,為臨時表、臨時存儲過程及操作過程提供存儲空間,默認(rèn)大小為8MB,根據(jù)實際情況會自動增長空大小。
Pubs數(shù)據(jù)庫和Northwind數(shù)據(jù)庫非系統(tǒng)數(shù)據(jù)庫,而是兩個范例數(shù)據(jù)庫,是學(xué)習(xí)SQLSERVER的工具。
Pubs是書籍出版公司的數(shù)據(jù)庫,Northwind數(shù)據(jù)庫是一個商品銷售數(shù)據(jù)庫。
第三分:運用查詢分析器創(chuàng)建和操作數(shù)據(jù)庫
第四部分:上機實驗
第五篇:SQLSERVER重要復(fù)習(xí)資料
第一章:概述
SQL Server體系結(jié)構(gòu):
1、主要的服務(wù)及其作用
四部分組成:數(shù)據(jù)庫引擎(SSDE):是核心服務(wù),負(fù)責(zé)完成業(yè)務(wù)數(shù)據(jù)的存儲、處理、查詢和安全管理等操作。分析服務(wù)(SSAS):提供多為分析過和數(shù)據(jù)挖掘功能,可以支持用戶建立數(shù)據(jù)倉庫和進行商業(yè)智能分析。
報表服務(wù)(SSRS):為用戶提供了支持Web的企業(yè)級的報表功能。
集成服務(wù)(SSIS):是一個數(shù)據(jù)集成平臺,可以完成有關(guān)數(shù)據(jù)的提取、轉(zhuǎn)換、加載等。
服務(wù)以windows服務(wù)程序的形式后臺運行。
服務(wù)與前臺管理工具(management studio)之間的關(guān)系:MS是Sql Server提供的一種集成 環(huán)境,將各種圖形化工具和多功能的腳本編輯器組合在一起,完成訪問、配置、控制、管理 和開發(fā)SQL Server 的所有工作,大大方便了技術(shù)人員和數(shù)據(jù)庫管理員對SQL Server的各種 訪問。
2、數(shù)據(jù)庫對象
系統(tǒng)數(shù)據(jù)庫有:master、model、msdb,Resource、tempdb。
Master:是最重要的系統(tǒng)數(shù)據(jù)庫。它記錄了SQL Server系統(tǒng)級的所有信息,這些系統(tǒng)級的信息包括服務(wù)器配置信息、登錄賬戶信息、數(shù)據(jù)庫文件信息、SQL Server初始化信息等,這些信息影響整個SQL Server系統(tǒng)的運行。
Model:是一個模板數(shù)據(jù)庫。該系統(tǒng)存儲了可以作為模板的數(shù)據(jù)庫對象和數(shù)據(jù)。當(dāng)創(chuàng)建用戶數(shù)據(jù)庫時,系統(tǒng)自動把該數(shù)據(jù)庫中的所有信息復(fù)制到用戶新建的數(shù)據(jù)庫中,使得新建的用戶數(shù)據(jù)庫初始狀態(tài)下具有了與model數(shù)據(jù)庫一致的對象和相關(guān)數(shù)據(jù),從而簡化數(shù)據(jù)庫的初始創(chuàng)建和管理操作。
Msdb:是與SQL ServerAgent服務(wù)有關(guān)的數(shù)據(jù)庫。該數(shù)據(jù)庫記錄有關(guān)作業(yè)、警報、操作員、調(diào)度等信息,這些信息可以用于自動化系統(tǒng)的操作。
Tempdb:是一個臨時數(shù)據(jù)庫,用于存儲查詢過程中所使用的中間數(shù)據(jù)或結(jié)果。
Resource:是一個很特殊的系統(tǒng)數(shù)據(jù)庫,是一個被隱藏的只讀的物理系統(tǒng)數(shù)據(jù)庫,只保存用戶實例所需的架構(gòu)和存儲過程。
數(shù)據(jù)庫對象是指存儲、管理和使用的不同結(jié)構(gòu)形式。
數(shù)據(jù)庫對象包括:表、視圖、同義詞、存儲過程、函數(shù)、觸發(fā)器、程序集、類型、規(guī)則、默認(rèn)值等。
表:實際用來存儲系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù),是整個系統(tǒng)的最核心的數(shù)據(jù)庫對象,是其他大多數(shù)數(shù)據(jù)庫對象的基礎(chǔ)。
視圖:包含了數(shù)據(jù)庫中的視圖對象,是數(shù)據(jù)庫中的虛擬表。視圖是建立在表基礎(chǔ)之上的數(shù)據(jù)庫對象。
約束:“約束”節(jié)點包含約定對象。約定用于定義應(yīng)用程序完成特定任務(wù)時所用的信息類型。
用戶:是指數(shù)據(jù)庫用戶,是數(shù)據(jù)庫級的主體。這些數(shù)據(jù)庫用戶對象可以在“用戶”節(jié)點中找到。
存儲過程:節(jié)點包含了數(shù)據(jù)庫中存儲過程對象的信息。存儲過程是指封裝了可重用代碼的模塊或例程。
觸發(fā)器:是一種特殊的存儲過程,在數(shù)據(jù)庫服務(wù)器中發(fā)生指定的事件后自動執(zhí)行。分為DML觸發(fā)器和DDL觸發(fā)器。
3、SQL Server配置管理器 可以查看所有服務(wù)及其運行狀態(tài),可以查看服務(wù)的屬性,以及啟動、停止、暫停、重新啟動響應(yīng)的服務(wù)。
第二章
sql server版本
1·32位版本,64位版本
2·服務(wù)器版本,專業(yè)版本(滿足特殊服務(wù))
3·服務(wù)器版包括企業(yè)版和標(biāo)準(zhǔn)版;專業(yè)版包括開發(fā)人員版、工作組版、WEb版、EXPRESS版、compact版;另外還有企業(yè)評估版。
實例
sql server允許在一臺計算機上多次安裝,每一次安裝都生成實例。這種多實例基址,當(dāng)某實例發(fā)生故障時,其他實例依然正常運行并提供數(shù)據(jù)庫服務(wù),確保整個應(yīng)用系統(tǒng)始終處于正常狀態(tài),提高系統(tǒng)可用性。工作組版本最多可安裝16個實例,其他版本最多可安裝50個實例。第一次安裝可以使用默認(rèn)實例,后來的安裝需要使用命名實例。
排序規(guī)則
排序規(guī)則指定了表示數(shù)據(jù)集中每一個字符的位模式,具體內(nèi)容包括選擇字符集、確定數(shù)據(jù)排序和比較的規(guī)則等。排序規(guī)則的主要特征是區(qū)分語言、區(qū)分大小寫、區(qū)分重音、區(qū)分假名以及區(qū)分全角半角。
可以在四個層面設(shè)置排序規(guī)則,服務(wù)器層、數(shù)據(jù)庫層、列層和表達(dá)式層。服務(wù)器層的排序規(guī)則可以在安裝過程中設(shè)置的,也是實例的默認(rèn)排序規(guī)則,會自動分派給其他對象。
創(chuàng)建數(shù)據(jù)庫的時候可以使用collate子句來指定數(shù)據(jù)庫的默認(rèn)排序規(guī)則。
創(chuàng)建表的時候也可以用collate子句來指定數(shù)據(jù)庫的默認(rèn)排序規(guī)則。
表達(dá)式層次上的排序規(guī)則只能在執(zhí)行語句時設(shè)置,并且影響當(dāng)前結(jié)果集的返回方式。
文件夾
安裝之后sql server有五個文件夾。即80,90,100,MSAS10.MSSQLSER,MSRS10.MSSQLSERh和MSSQL10.MSSQLSERVER.80和90文件夾中包含了與先前版本兼容的信息和工具,100文件夾中主要是存儲單臺計算機上的所有勢力使用的公共文件和信息。
服務(wù)器選項
sql server有60多個服務(wù)器選項。有高級選項,這些選項只有show advanced option 設(shè)置為1時,才能對其進行設(shè)置。有些是新設(shè)置只有當(dāng)數(shù)據(jù)庫引擎重新啟動之后才能生效。有些是子配置選項,系統(tǒng)根據(jù)需要自動配置。
根據(jù)設(shè)置后是否立即生效可以講分為動態(tài)選項和非動態(tài)選項。動態(tài)選項是設(shè)置完選項后,運行 reconfidure語句就可生效,非動態(tài)選項是設(shè)置完選項之后必須停止和重新啟動sql server才能起作用。
sp_configure sp_configure系統(tǒng)存儲過程可以用來顯示和配置服務(wù)器的各種選項。語法格式:sp_configure ?option_name?,?value?
option_name表示服務(wù)器的選項名稱,value表示服務(wù)器選項的設(shè)置,默認(rèn)是控制。成功執(zhí)行返回0,否則返回1。
第三章
SQL SERVER 2008的數(shù)據(jù)安全層次 第一層:網(wǎng)絡(luò)設(shè)置
第二層:登錄服務(wù)器
第三層:登錄后進行特定數(shù)據(jù)庫訪問或服務(wù)器管理 第四層:對數(shù)據(jù)庫中特定表或列進行訪問
1、Windows認(rèn)證模式:只能使用“windows 身份驗證”一種方式
混合認(rèn)證模式:可以使用“windows身份驗證”和“SQL Server身份驗證”兩種方式 創(chuàng)建登錄名:create login peter with password=?123? 修改登錄名:alter login peter disable----不可用 Alter login peter enable
-----啟用
刪除登錄名:drop login peter
2、登錄名的作用和類型是什么?
答:可登錄sql server服務(wù)器,并對其進行管理的用戶。所有l(wèi)ogin用戶的信息存儲在系統(tǒng)表 中,是sql server系統(tǒng)級的用戶。
windows組或windows用戶映射到登錄名
SQL Server自己的登錄名
3、服務(wù)器角色的作用和類型是什么?
答:固定服務(wù)器角色是服務(wù)器級別的主體,它們的作用范圍是整個服務(wù)器。固定服務(wù)器角色已經(jīng)具備了執(zhí)行指定操作的權(quán)限,可以把其他登錄名作為成員添加到固定服務(wù)器角色中,這樣該登錄名可以繼承固定服務(wù)器角色的權(quán)限。Bulkadmin:塊數(shù)據(jù)操作員,擁有執(zhí)行塊操作的權(quán)限
Dbcreator:數(shù)據(jù)庫創(chuàng)建者,擁有創(chuàng)建數(shù)據(jù)庫的權(quán)限 Diskadmin:磁盤管理員,擁有修改資源的權(quán)限
Processadmin:進程管理員,擁有管理服務(wù)器連接和狀態(tài)的權(quán)限
Securityadmin:安全管理員,擁有執(zhí)行修改登錄名的權(quán)限
Serveradmin:服務(wù)器管理員,擁有修改斷點、資源、服務(wù)器狀態(tài)的呢過權(quán)限 Setupadmin:安裝程序管理員,擁有修改連接服務(wù)器權(quán)限
Sysadmin:系統(tǒng)管理員,擁有操作SQL Server 系統(tǒng)的所有權(quán)限 Public:公共角色,沒有預(yù)先設(shè)定的權(quán)限
4、什么是數(shù)據(jù)庫用戶?數(shù)據(jù)庫用戶與登錄名之間的關(guān)系是什么? 答:數(shù)據(jù)庫用戶,能夠訪問、操作數(shù)據(jù)庫的用戶,是數(shù)據(jù)庫級的用戶
服務(wù)器登錄名屬于某組服務(wù)器角色;服務(wù)器登錄名需要于數(shù)據(jù)庫的用戶映射后才擁有操作數(shù)據(jù)庫的權(quán)限 ;數(shù)據(jù)庫用戶屬于某組數(shù)據(jù)庫角色以獲取操作數(shù)據(jù)庫的權(quán)限。創(chuàng)建數(shù)據(jù)庫用戶:create user peter1 for login peter 修改數(shù)據(jù)庫用戶:alter user peter1 with name=’petera’ 修改數(shù)據(jù)庫用戶權(quán)限:grant(revoke)
connect to peter1 刪除數(shù)據(jù)庫用戶:delete user peter1;
數(shù)據(jù)庫角色 :role 操作同上
5、數(shù)據(jù)庫中有哪些特殊的用戶?這些用戶的作用是什么?
答:(1)固定數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色是在數(shù)據(jù)庫級別定義的,并且存在于每個數(shù)據(jù)庫中。db_owner 和 db_securityadmin 數(shù)據(jù)庫角色的成員可以管理固定數(shù)據(jù)庫角色成員身份;但是,只有 db_owner 數(shù)據(jù)庫的成員可以向 db_owner 固定數(shù)據(jù)庫角色中添加權(quán)限。
(2)public角色。每個數(shù)據(jù)庫用戶都屬于 public 數(shù)據(jù)庫角色,當(dāng)尚未對某個用戶授予或拒絕對安全對象的特定權(quán)限時,則該用戶將繼承授予該安全對象的 public 角色的權(quán)限。
(3)特殊的數(shù)據(jù)庫用戶:Dbo:Dbo數(shù)據(jù)庫中的默認(rèn)用戶,擁有在數(shù)據(jù)庫中操作的所有權(quán)限,默認(rèn)情況下,SA登錄名在數(shù)據(jù)庫對應(yīng)的是dbo。guest用戶一個特殊的數(shù)據(jù)庫用戶,默認(rèn)情況下,數(shù)據(jù)庫創(chuàng)建時就包含一個 guest 用戶。授予 guest 用戶的權(quán)限由在數(shù)據(jù)庫中沒有帳戶的用戶繼承。
6、數(shù)據(jù)庫的默認(rèn)架構(gòu)是什么?
答:架構(gòu)是形成單個命名空間的數(shù)據(jù)庫實體的集合,是數(shù)據(jù)庫級的對象,是數(shù)據(jù)庫對象的容器。每個用戶都有一個默認(rèn)架構(gòu),用于指定服務(wù)器在解析對象的名稱時將要搜索的第一個架構(gòu)。可以使用 CREATE USER 和 ALTER USER 的 DEFAULT_SCHEMA 選項設(shè)置和更改默認(rèn)架構(gòu)。如果未定義 DEFAULT_SCHEMA,則數(shù)據(jù)庫用戶將把 DBO 作為其默認(rèn)架構(gòu)。Sql server完全限定的對象名稱現(xiàn)在包含四部分:server.database.schema.object。
7、為什么要實現(xiàn)用戶和架構(gòu)分離?
答:
1、多個用戶可以通過角色成員身份或 Windows 組成員身份擁有一個架構(gòu)。這擴展了允許角色和組擁有對象的用戶熟悉的功能。
2、極大地簡化了刪除數(shù)據(jù)庫用戶的操作。
3、刪除數(shù)據(jù)庫用戶不需要重命名該用戶架構(gòu)所包含的對象。因而,在刪除創(chuàng)建架構(gòu)所含對象的用戶后,不再需要修改和測試顯式引用這些對象的應(yīng)用程序。
4、多個用戶可以共享一個默認(rèn)架構(gòu)以進行統(tǒng)一名稱解析。
5、開發(fā)人員通過共享默認(rèn)架構(gòu)可以將共享對象存儲在為特定應(yīng)用程序?qū)iT創(chuàng)建的架構(gòu)中,而不是 DBO 架構(gòu)中。
8、權(quán)限的授予(grant)與回收(revoke)、grant select
on table to peter1;
Grant control on table to
peter1 with grant option;
把安全對象BOOK的CONTROL權(quán)限授予主體peter1,并且peter1具備授權(quán)的權(quán)限;
下面以peter身份登錄,在library數(shù)據(jù)庫下,peter登錄用戶可對tom授予對BOOK表的任何權(quán)限。
GRANT SELECT,UPDATE ON BOOK TO tom1.權(quán)限的否定
安全主體可以通過兩種方式獲得權(quán)限,第一種方式直接使用GRANT語句為其授予權(quán)限,第二種方式通過加入角色成為角色成員繼承得到權(quán)限。使用REVOKE語句只能收回安全主體通過第一種方式(grant)得到的權(quán)限,而否定(DENY)權(quán)限則可徹底刪除安全主體得到的權(quán)限。第四章
數(shù)據(jù)庫文件和文件組
一個數(shù)據(jù)庫可以由多個事務(wù)日志文件和多個數(shù)據(jù)文件構(gòu)成,至少應(yīng)由一個事務(wù)日志文件和一個數(shù)據(jù)文件構(gòu)成。
數(shù)據(jù)文件:存儲數(shù)據(jù)和各種對象以及數(shù)據(jù)的結(jié)構(gòu)。主數(shù)據(jù)文件(必須具備):*.mdf,本數(shù)據(jù)庫的系統(tǒng)表都保存在主數(shù)據(jù)文件中,只能有一個
次數(shù)據(jù)文件:*.ndf,可以沒有或有多個次要數(shù)據(jù)文件 同一個數(shù)據(jù)庫的不同的數(shù)據(jù)文件可以存儲在不同的磁盤上。
日志文件
記錄了每一個事務(wù)的開始、對數(shù)據(jù)的改變和修改等信息,隨著數(shù)據(jù)庫的操作,事務(wù)日志不斷增加,是數(shù)據(jù)庫進行恢復(fù)的重要依據(jù)。
*.ldf,一個數(shù)據(jù)庫可以有多個。
sql server遵循先寫日志后修改數(shù)據(jù)庫的原則,所以如果日志文件空間被占滿,將導(dǎo)致無法對數(shù)據(jù)庫進行操作。
文件組
數(shù)據(jù)文件的邏輯集合,是對數(shù)據(jù)文件進行分類管理的邏輯單位,方便數(shù)據(jù)的管理與分配,一個數(shù)據(jù)文件只能屬于一個文件組。
文件組的分類:
1·主文件組:primary,主數(shù)據(jù)文件默認(rèn)屬于主文件組
2·用戶定義的文件組:由用戶命名定義的文件組
3·默認(rèn)文件組:數(shù)據(jù)文件在不指定文件組歸屬時,默認(rèn)所屬于的文件組
頁:
SQL Server 中數(shù)據(jù)存儲的基本單位是頁,8k,實際存儲空間為8060字節(jié)。表中一行數(shù)據(jù)不能跨頁存放,意味著一行數(shù)據(jù)的最大值為8060字節(jié)。
區(qū)(盤區(qū)):
8個連續(xù)的頁,是空間分配的最小單元,區(qū)是八個物理上連續(xù)的頁的集合,用來有效地管理頁。所有頁都存儲在區(qū)中
六、優(yōu)化數(shù)據(jù)庫和數(shù)據(jù)庫文件 1.放置數(shù)據(jù)文件和日志文件
盡可能把數(shù)據(jù)文件分散在不同的磁盤驅(qū)動器上
把數(shù)據(jù)文件和日志文件分散在不同的物理磁盤驅(qū)動器中
好處:允許系統(tǒng)執(zhí)行并行操作,從而提高系統(tǒng)使用數(shù)據(jù)的效率 2.使用文件組
表和索引應(yīng)分布在不同的文件組中,提高查詢語句效率。
把默認(rèn)文件組改成用戶定義的文件組,以防止用戶數(shù)據(jù)在primary文件組上的增長。可備份或恢復(fù)單個文件或文件組。
3.使用RAID技術(shù)
(Redundant Array of Independent Disks)冗余磁盤陣列
是一種磁盤系統(tǒng),多個磁盤驅(qū)動器合成一個磁盤陣列。提高數(shù)據(jù)存儲的性能、可靠性。分為6個等級RAID0到RAID5。每一種提供不同的算法提高系統(tǒng)的性能。
七、數(shù)據(jù)庫的創(chuàng)建
以下示例在 SQL Server 實例上創(chuàng)建了一個數(shù)據(jù)庫。該數(shù)據(jù)庫包括一個主數(shù)據(jù)文件、一個用戶定義文件組和一個日志文件。主數(shù)據(jù)文件在主文件組中,而用戶定義文件組包含兩個次要數(shù)據(jù)文件。ALTER DATABASE 語句將用戶定義文件組指定為默認(rèn)文件組。然后通過指定用戶定義文件組來創(chuàng)建表。
USE master;GO--Create the database with the default data--filegroup and a log file.Specify the--growth increment and the max size for the--primary data file.CREATE DATABASE MyDB ON PRIMARY
(NAME='MyDB_Primary',--邏輯文件名
FILENAME= 'c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdataMyDB_Prm.mdf',--物理文件名
SIZE=4MB,MAXSIZE=10MB,F(xiàn)ILEGROWTH=1MB), FILEGROUP MyDB_FG1
(NAME = 'MyDB_FG1_Dat1',F(xiàn)ILENAME =
'c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdataMyDB_FG1_1.ndf',SIZE = 1MB,MAXSIZE=10MB,F(xiàn)ILEGROWTH=10%),(NAME = 'MyDB_FG1_Dat2',F(xiàn)ILENAME =
'c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdataMyDB_FG1_2.ndf',SIZE = 1MB,MAXSIZE=10MB,F(xiàn)ILEGROWTH=1MB)LOG ON
(NAME='MyDB_log',F(xiàn)ILENAME =
'c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdataMyDB.ldf',SIZE=1MB,MAXSIZE=10MB,F(xiàn)ILEGROWTH=1MB);GO
ALTER DATABASE MyDB
MODIFY FILEGROUP MyDB_FG1 DEFAULT;GO
--Create a table in the user-defined filegroup.USE MyDB;go CREATE TABLE MyTable
(cola int PRIMARY KEY,colb char(8))ON MyDB_FG1;GO
八、附加與分離數(shù)據(jù)庫
可以分離數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件,然后將它們重新附加到同一或其他 SQL Server 實例。如果要將數(shù)據(jù)庫更改到同一計算機的不同 SQL Server 實例或要移動數(shù)據(jù)庫,分離和附加數(shù)據(jù)庫會很有用。
分離數(shù)據(jù)庫:分離數(shù)據(jù)庫是指將數(shù)據(jù)庫從 SQL Server 實例中刪除,但是數(shù)據(jù)庫在其數(shù)據(jù)文件和事務(wù)日志文件中保持不變。(1)使用系統(tǒng)存儲過程
EXEC sp_detach_db 'mydb', 'true'
附加數(shù)據(jù)庫:附加數(shù)據(jù)庫時,所有數(shù)據(jù)文件(MDF 文件和 NDF 文件)都必須可用。EXEC sp_attach_db
'mydb','c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdataMyDB_Prm.mdf?,'c:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDatamydb.ldf';(2)使用create database 語句(3)使用對象資源管理器
擴大數(shù)據(jù)庫
如果數(shù)據(jù)庫的數(shù)據(jù)量不斷膨脹,可以根據(jù)需要擴大數(shù)據(jù)庫的尺寸。方式:
1·設(shè)置數(shù)據(jù)庫的增長方式。
2·直接修改數(shù)據(jù)庫的數(shù)據(jù)文件或日志文件的大小。3·在數(shù)據(jù)庫中增加新的次要數(shù)據(jù)文件或日志文件。收縮數(shù)據(jù)庫
如果數(shù)據(jù)庫的設(shè)計尺寸太大了,或者刪除了數(shù)據(jù)庫中的大量數(shù)據(jù),這時數(shù)據(jù)庫會白白浪費大量的磁盤資源。
方式:
1·設(shè)置數(shù)據(jù)庫為自動收縮,可以通過設(shè)置AUTO_SHRINK數(shù)據(jù)庫選項來實現(xiàn); 2·收縮整個數(shù)據(jù)庫的大小,可以通過使用DBCC SHRINKDATABASE命令完成 3·收縮指定的數(shù)據(jù)文件,可以使用DBCC SHRINKNFILE命令實現(xiàn)。
管理文件組
文件組是數(shù)據(jù)庫數(shù)據(jù)文件的邏輯組合,它可以對數(shù)據(jù)文件進行管理和分配,以便提高數(shù)據(jù)庫文件的并發(fā)使用效率。
T_SQL沒有單獨提供管理文件組的命令,只能使用ALTER DATABASE語句來提供管理文件組的命令。
新建文件組就是在當(dāng)前數(shù)據(jù)庫中新建一個數(shù)據(jù)文件的邏輯組合。默認(rèn)文件組是指新增數(shù)據(jù)庫數(shù)據(jù)文件時,如果沒有明確指定,那么該文件將放置在默認(rèn)文件組中,但是即使有默認(rèn)文件組,系統(tǒng)表等信息總是放在primary文件組中。
如果文件組的名稱不合適,可以修改文件組名稱。如果文件組不再需要了,可以將該文件刪除(只有該文件組不再包含數(shù)據(jù)文件時,才能將該文件組刪除)。
RAID技術(shù)
獨立磁盤冗余陣列;分為六個等級(RAID0到RAID5),每一個等級都是用不同的算法來提高系統(tǒng)的性能。
RAID0是數(shù)據(jù)并行。這個等級中,所有的數(shù)據(jù)都并行分布在不同的物理設(shè)備上,以便有效執(zhí)行多個并行的讀寫操作。
RAID1是設(shè)備鏡像。設(shè)備鏡像就是在所有的鏡像設(shè)備上提供數(shù)據(jù)的完全復(fù)制,提高系統(tǒng)的容錯能力。
RAID5是最常用的容錯等級。這個等級中,奇偶信息并行存儲,既可以提高性能,又可以提高可靠性。第五章
1、sql server 2008的數(shù)據(jù)類型
2、標(biāo)識符分為常規(guī)標(biāo)識符和分割標(biāo)識符。
標(biāo)識符的格式規(guī)則:第一個字符必須是下劃線、@、#、字母、數(shù)字 分割標(biāo)識符:包含在雙引號(“”)或方括號([ ])內(nèi)的標(biāo)識符
3、運算符
分為算術(shù)運算符、邏輯運算符、賦值運算符、字符串串聯(lián)運算符、按位運算符、一元運算符、比較運算符
字符串串聯(lián)運算符只有一個,就是(+); 賦值運算符只有一個,就是(=)
4、常量與變量
1)變量的聲明:declare @count int,@name
varchar(10);2)變量的賦值:set @count=11;set
@name=‘張三’;
3)變量的輸出: select @count;或print
Eg:USE AdventureWorks;GO DECLARE @EmpIDVariable int;SELECT @EmpIDVariable = EmployeeID FROM HumanResources.Employee ORDER BY EmployeeID DESC;SELECT @EmpIDVariable;GO
5、內(nèi)置函數(shù)
Len()返回指定字符串表達(dá)式的字符數(shù),其中不包含尾隨空格。
Eg:len(name);Left()返回字符串中從左邊開始指定個數(shù)的字符
eg:select left(‘a(chǎn)bcdef’,2)返回最左邊的兩個字符 year()返回一個整數(shù),該整數(shù)表示指定的 date 的年份 eg:
Getdate()返回當(dāng)前數(shù)據(jù)庫系統(tǒng)時間戳,返回值的類型為 datetime,并且不含數(shù)據(jù)庫時區(qū)偏移量
datediff()返回兩個指定日期的日期邊界數(shù)和時間邊界數(shù) Datepart cast()convert()@@servername @@language
第十一章
存儲過程
存儲過程是一個可重用代碼模塊,可以高效率地完成指定的操作。a·存儲過程的已經(jīng)在服務(wù)器上注冊,可以提高T_SQL語言執(zhí)行效率; b·存儲過程可以強制應(yīng)用程序的安全性,方式SQL嵌入式攻擊;
c·存儲過程允許模塊化設(shè)計,大大提高了程序的設(shè)計效率; d·存儲過程是一組命名代碼,允許延遲綁定; e·存儲過程可以大大減少網(wǎng)絡(luò)通信流量。分類:
用戶定義的存儲過程。是封裝了可重用代碼的模塊或例程。
用戶定義的存儲過程分為T_SQL類型的存儲過程和CLR類型的存儲過程。T_SQL是指保存在T_SQL語句的集合,可以接受和返回用戶提供的參數(shù)。
CLR存儲過程是對.net framework公共語言運行時方法(CLR)的引用,可以接受和返回用戶提供的參數(shù)。
特點:
存儲過程中的參數(shù)的最大數(shù)目為 2100。
存儲過程中的局部變量的最大數(shù)目僅受可用內(nèi)存的限制。根據(jù)可用內(nèi)存的不同,存儲過程最大可達(dá) 128 MB。
系統(tǒng)存儲過程
SQL Server 中的許多管理活動都是通過一種特殊的存儲過程執(zhí)行的,這種存儲過程被稱為系統(tǒng)存儲過程。
存儲在Resource系統(tǒng)數(shù)據(jù)庫中,并且?guī)в蠸P前綴。
定義方法:
CREATE PROCEDURE 存儲過程名稱 參數(shù)名 參數(shù)數(shù)據(jù)類型...............WITH:procedure_option(用于指定存儲過程的特殊行為)AS sql_statement(該存儲過程定義的編程語句)
調(diào)用方法:
sql server中,可以使用EXECUTE語句執(zhí)行存儲過程,EXECUTE語句也可以簡寫為EXEC。如果執(zhí)行的存儲過程需要參數(shù),那么應(yīng)該存儲過程名稱后面帶上參數(shù)值。
觸發(fā)器
觸發(fā)器是一種特殊類型的存儲過程,它包含了大量的T_SQL語句,但是觸發(fā)器不能被用戶直接調(diào)用運行,只能自動執(zhí)行。
觸發(fā)器由DBA和程序開發(fā)者創(chuàng)建,由用戶對表的操作(更新、刪除、插入數(shù)據(jù))激活。
分類:
DML觸發(fā)器:當(dāng)數(shù)據(jù)庫中發(fā)生數(shù)據(jù)操縱語言事件時將調(diào)用DML觸發(fā)器。DML事件包括指定表或視圖中修改數(shù)據(jù)的INSTER語句、UPDATE語句、DELETE語句。
DDL觸發(fā)器:和DML觸發(fā)器不同之處是DDL觸發(fā)器的觸發(fā)事件是數(shù)據(jù)定義語言。包括CREATE語句、ALTER語句、DROP語句。DDL觸發(fā)器的主要作用是執(zhí)行管理操作。定義方法:
DML觸發(fā)器
CREATE TRIGGER trigger_name ON table_name_or_view_name WITH ENCRYTION {FOR
|
AFTER
|
INSTEAD OF }{[DELETE][,][INSERT]..} AS sql_satatemennt
例子
create trigger t_audit_insert on accountdate(表名)with encryption for insert as declare @insertedamount money select @insertedamount= accountamount from inserted insert into
auditaccountdata(audit_log_actiontype ,audit_log_amount)values('insert',@insertedamount)
create trigger t_audit_update on accountdate with encryption for update as declare @insertedamount money if update(accountamount)
begin select @insertedamount= accountamount from inserted insert into
auditaccountdata(audit_log_actiontype ,audit_log_amount)values('update',@insertedamount)
DDL觸發(fā)器
例子
CREATE TRIGGER safety ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT 'You must disable Trigger “safety” to drop or alter tables!' ROLLBACK;
第十二章 備份
數(shù)據(jù)備份是制作數(shù)據(jù)庫的結(jié)構(gòu)和數(shù)據(jù)的拷貝,以便在數(shù)據(jù)庫遭到破壞的時候能夠恢復(fù)數(shù)據(jù)庫。
還原
數(shù)據(jù)庫還原是指加載數(shù)據(jù)庫備份到系統(tǒng)中的進程。
數(shù)據(jù)庫的備份和恢復(fù)是相互的。沒有數(shù)據(jù)庫的備份,就無法進行數(shù)據(jù)庫的恢復(fù),但恢復(fù)工作本身也是一項非常艱巨的工作。(要建立恢復(fù)與備份同等重要的概念)
備份和還原時相互的,還原時備份的目的,備份是為了還原而備份不是為了備份而備份。
恢復(fù)模式
備份和還原操作是在“恢復(fù)模式”下進行的。類型:
1·簡單恢復(fù)模式:
在此模式下,數(shù)據(jù)庫會簡略地記錄大多數(shù)事務(wù),所記錄的信息只是為了確保在系統(tǒng)崩潰或還原數(shù)據(jù)備份之后數(shù)據(jù)庫的一致性。適用于規(guī)模較小的或數(shù)據(jù)不經(jīng)常改變的數(shù)據(jù)庫;在此模式下,在每個數(shù)據(jù)備份后事務(wù)日志將自動截斷,也就是說,不活動的日志將被刪除;可通過執(zhí)行完整數(shù)據(jù)庫備份和增量(差異)備份恢復(fù)數(shù)據(jù)庫。
2·完整恢復(fù)模式
此模式完整地記錄了所有的事務(wù),并保留所有的事務(wù)日志記錄,直到將它們備份。完整恢復(fù)模式能使數(shù)據(jù)庫恢復(fù)到故障時間點。但這種恢復(fù)模式耗費大量的磁盤空間。
3·大容量日志恢復(fù)模式
此模式簡略地記錄大多數(shù)大容量操作(例如,索引創(chuàng)建和大容量加載),完整地記錄其他事務(wù)。大容量日志恢復(fù)提高大容量操作的性能,常用作完整恢復(fù)模式的補充。
備份方法
(1)完全(完整)備份
備份數(shù)據(jù)庫中所有的數(shù)據(jù)和結(jié)構(gòu),是其他備份方式的基礎(chǔ)。(2)增量(差異)數(shù)據(jù)庫備份
備份自上次完全備份后的改變,完全備份是基礎(chǔ)(3)事務(wù)日志備份
備份數(shù)據(jù)庫中事務(wù)日志的變化過程。
a·要在完全備份的基礎(chǔ)上進行事務(wù)日志備份
b·在simple 恢復(fù)模型下不能執(zhí)行事務(wù)日志備份(4)數(shù)據(jù)庫文件或文件組備份
適用于海量數(shù)據(jù)庫,只備份一個或多個文件或文件組。
恢復(fù)方法
執(zhí)行恢復(fù)就是把備份內(nèi)容加載到數(shù)據(jù)庫中的過程。在備份文件或文件組時,要同時備份事務(wù)日志。恢復(fù):
完整備份是備份當(dāng)前整個數(shù)據(jù)庫。
增量備份是在當(dāng)前最近的一次完整備份的基礎(chǔ)上附加的完整數(shù)據(jù)庫內(nèi)容的備份。事務(wù)日志備份是相對于上一次事務(wù)日志或者完整備份(之前無事務(wù)日志備份)的數(shù)據(jù)庫內(nèi)容的備份。