SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)_第1頁(yè)
SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)_第2頁(yè)
SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)_第3頁(yè)
SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)_第4頁(yè)
SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、SQL Server數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)經(jīng)過一段時(shí)間的學(xué)習(xí),也對(duì)數(shù)據(jù)庫(kù)有了一些認(rèn)識(shí)。數(shù)據(jù)庫(kù)基本是由表,關(guān)系,操作組成;對(duì)于初學(xué)者首先要學(xué)的:1.數(shù)據(jù)庫(kù)是如何存儲(chǔ)數(shù)據(jù)的表,約束,觸發(fā)器2.數(shù)據(jù)庫(kù)是如何操作數(shù)據(jù)的insert,update,delete T-sql 函數(shù)存儲(chǔ)過程觸發(fā)器3.數(shù)據(jù)庫(kù)是如何顯示數(shù)據(jù)的selectSQLServer數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)1.SQL基礎(chǔ)SQL Server2000安裝、配置,服務(wù)器啟動(dòng)、停止,企業(yè)管理器、查詢分析器第一代數(shù)據(jù)庫(kù)-網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù);第二代數(shù)據(jù)庫(kù)-關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DB;數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS;數(shù)據(jù)庫(kù)系統(tǒng)(DBSSQL Server 2000 提供了

2、不同版本:企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版、開發(fā)版SQL Server中的數(shù)據(jù)類型:整數(shù):int,smallint,tinyint,bigint;浮點(diǎn)數(shù): real,float,decimal;二進(jìn)制:binary,varbinary;邏輯:bit;字符: char,nchar,varchar,nvarchar;文本和圖形:text,ntext,image;日期和時(shí)間:datetime,smalldatetime;貨幣:money,smallmoney數(shù)據(jù)庫(kù)的創(chuàng)建和刪除;數(shù)據(jù)庫(kù)表的創(chuàng)建、修改和刪除數(shù)據(jù)完整性:實(shí)體完整性:Primary Key,Unique Key,Unique Index,Identi

3、ty Column;域完整性:Default,Check,Foreign Key,Data type,Rule;參照完整性:Foreign Key,Check,Triggers,Procedure;用戶定義完整性: Rule,Triggers,Procedure;Create Table中得全部列級(jí)和表級(jí)約束SQL Server中有5種約束:主鍵約束(Primary Key Constraint、默認(rèn)約束(Default Constraint、檢查約束(Check Constraint、唯一性約束(Unique Constraint、外鍵約束(Foreign Key Constraint.關(guān)系

4、圖數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)物理設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)兩個(gè)實(shí)體之間的聯(lián)系:一對(duì)一(1:1、一對(duì)多(1:n、多對(duì)多(m: n實(shí)體關(guān)系模型- E-R圖數(shù)據(jù)庫(kù)規(guī)范化:將數(shù)據(jù)庫(kù)的結(jié)構(gòu)精簡(jiǎn)為最簡(jiǎn)單的形式;從表中刪除冗余列;標(biāo)識(shí)所有依賴于其他數(shù)據(jù)庫(kù)的數(shù)據(jù)。數(shù)據(jù)庫(kù)三范式:第一范式就是無重復(fù)的列;第二范式就是非主屬性非部分依賴于主關(guān)鍵字;第三范式就是屬性不依賴于其他非主屬性2.SQL語句SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language”SQL的4個(gè)部分:數(shù)據(jù)定義語言DDL(Data Definition Language用來定義數(shù)

5、據(jù)的結(jié)構(gòu): create、alter、drop。數(shù)據(jù)控制語言DCL(Data Control Language用來控制數(shù)據(jù)庫(kù)組件的存取許可、存取權(quán)限等得命令:grant、revoke。數(shù)據(jù)操縱語言DML(Data Manipulation Language用來操縱數(shù)據(jù)庫(kù)中得數(shù)據(jù)的命令:insert、update、delete。數(shù)據(jù)查詢語言DQL(Data Query Language用來查詢數(shù)據(jù)庫(kù)中得數(shù)據(jù)的命令:select。SQL中得運(yùn)算符:算術(shù)運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、通配運(yùn)算符、字符串連接符、賦值運(yùn)算符3.查詢簡(jiǎn)單查詢,使用TOP子句查詢結(jié)果排序order by帶條件的查

6、詢where,使用算術(shù)表達(dá)式,使用邏輯表達(dá)式,使用between 關(guān)鍵字,使用in關(guān)鍵字,模糊查詢like在查詢中使用聚合函數(shù):sum(x,avg(x,min(x,max(x,count(x,count(* 使用分組查詢group by,having子句distinct關(guān)鍵字列別名select top 6 * from sales order by qty descselect au_id,au_fname,au_lname from authors where state in('ks','ca','mi'select au_fname,au_

7、lname,phone from authors where au_id like '72234-%'select type,sum(price,avg(price,count(* from titles group by type having type in('business','psycheology'簡(jiǎn)單子查詢:嵌套子查詢、相關(guān)子查詢;子查詢的select語句中不能使用order by子句,roder by子句只能對(duì)最終查詢結(jié)果排序。嵌套子查詢:執(zhí)行過程,先執(zhí)行子查詢,子查詢得到的結(jié)果不被顯示,而是傳給外層查詢,作為外層查詢的條件,然后

8、執(zhí)行外層查詢,并顯示結(jié)果。嵌套子查詢的執(zhí)行不依賴于外層查詢,子查詢只執(zhí)行一次。帶有比較運(yùn)算符的子查詢,帶有in和not in的子查詢,帶有any或all的子查詢相關(guān)子查詢:子查詢?yōu)橥鈱硬樵兊拿恳恍袌?zhí)行一次,外層查詢將子查詢引用的列的值傳給了子查詢。相關(guān)子查詢的執(zhí)行依賴于外層查詢,子查詢需要重復(fù)的執(zhí)行。帶有exists和not exists的相關(guān)子查詢。多表聯(lián)接查詢:內(nèi)聯(lián)接(inner join、外聯(lián)接(left、right、fullouter join、自聯(lián)接(self join和交叉聯(lián)接(cross join在查詢上創(chuàng)建新表:select into語句首先創(chuàng)建一個(gè)新表,然后用查詢的結(jié)果填充新

9、表。表別名select coursename from course where courseid in(select distinct courseid from grade where grade>10select studname from student where sudbirthday > any (select studbirthday from student where class = '信息系' and class<>'信息系'select studname from student where exists (sel

10、ect * from grade where studid = student.studid and courseid = '01'select stud1.* from student as stud1 join student as stud2 on stud2.studname = 'mm' and stud1.studsex = stud2.studsex select * into girls from student where studsex='m'4.視圖、索引和事務(wù)視圖是由一個(gè)或多個(gè)數(shù)據(jù)表(基本表導(dǎo)出的虛擬表或者查詢表,是關(guān)系數(shù)

11、據(jù)庫(kù)系統(tǒng)提供給用戶以多種角度觀察數(shù)據(jù)庫(kù)中數(shù)據(jù)的重要機(jī)制。視圖的好處:能夠簡(jiǎn)化用戶的操作;視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。創(chuàng)建視圖時(shí),視圖的名稱存在sysobjects表中。有關(guān)視圖中所定義列的信息添加到syscolumns表中,而有關(guān)視圖相關(guān)性的信息添加到sysdepends表中。另外,create view語句的文本添加到syscomments 表中。在通過視圖向表中插入數(shù)據(jù)時(shí),如果insert 語句列表中包含有視圖中沒有選擇的列和不允許為空值的列,這種操作是不允許的。創(chuàng)建視圖:create view view_employee as select emp_id,fname,lname fr

12、om employee使用視圖:select * from view_employee修改視圖:alter view view_employee as select emp_id,fname,job_id from employee where job_id>10刪除視圖:drop veiw view_employee查看視圖結(jié)構(gòu):exec sp_help view_employee查看視圖定義信息:exec sp_helptext 'view_employee'索引提供了一種基于一列或多列的值對(duì)表的數(shù)據(jù)行進(jìn)行快速訪問的方法。索引提供的是表中得邏輯順序。聚集索引基于數(shù)據(jù)行

13、的鍵值在表內(nèi)排序和存儲(chǔ)這些數(shù)據(jù)行。當(dāng)數(shù)據(jù)表以某列為關(guān)鍵字建立聚集索引時(shí),表中得數(shù)據(jù)行就以該列(聚集索引鍵的排序次序進(jìn)行存儲(chǔ)。每個(gè)表只能有一個(gè)聚集索引。非聚集索引具有完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu),一個(gè)表可以建立多個(gè)非聚集索引。創(chuàng)建聚集索引:create clustered index studid_ind on stud(studid創(chuàng)建非聚集索引:create unique index studfullname_ind on stud(fname desc,lname刪除索引:drop index stud.studid_ind查看stud表上得索引:exec sp_helpindex stud事務(wù)

14、是一種機(jī)制,是一個(gè)操作序列,它包含了一組數(shù)據(jù)庫(kù)操作命令,并且所有的命令作為一個(gè)整體一起向系統(tǒng)提交或撤銷操作請(qǐng)求。事務(wù)的特性:原子性(Atomicity、一致性(Consistenty、隔離性(Isolation、永久性(Durability。事務(wù)分類:顯示事務(wù)、隱性事務(wù)、自動(dòng)提交事務(wù)。視圖、索引和事務(wù)的創(chuàng)建、使用、修改和刪除5.TransactSQL編程全局變量:由系統(tǒng)定義和維護(hù),其名稱以字符開頭局部變量:由用戶定義和賦值,其名稱以字符開頭輸出語句:print邏輯控制語句:begin.end ;break ;case ;continue ; goto ; if.else ;return ;wh

15、ile常用函數(shù):行集函數(shù),聚合函數(shù),標(biāo)量函數(shù)轉(zhuǎn)換函數(shù):convert(dt,e,s,cast(數(shù)學(xué)函數(shù):絕對(duì)值abs(n,向上取整ceiling(n,向下取整floor(n,指定次冪power(n,y,四舍五入round(n,length,求符號(hào)sign(n,平方根sqrt(n 日期和時(shí)間函數(shù): dateadd(datepart,num,date,datediff(datepart,date1,date2,datename(d atepart,date,datepart(datepart,date,getdate(,year(date,month(date, day(date字符串函數(shù):low

16、er(e,upper(e,left(e,i,right(e,i,replace(s1,s2,s3用3替換1中的2,replicate(e,i重復(fù)指定次數(shù),stuff(s1,start,length,s2用2替換1中指定位置,substring(expression,start,length元數(shù)據(jù)函數(shù): db_id('database_name',db_name(datebase_id,object_id(&# 39;obj_name',object_name(obj_id,col_length('table',& #39;column&#

17、39;,col_name(table_id,col_id聚合函數(shù): avg(expr,count(expr,count(*,max(expr,min(expr,sum(exprselect au_lname,au_fname,contory =case statewhen 'ut' then 'utah' when 'ca' then 'california'else 'world'end,city from authors order by state descwhile(select avg(price fro

18、m titles<30beginupdate titles set price = price * 2if(select max(price from titles>50 breakelse continueendprint '價(jià)格太高'begininsert into jobs values('a',80,234if error<>0 print '數(shù)據(jù)插入失敗' else goto MendM:print '數(shù)據(jù)插入成功'6.游標(biāo)游標(biāo)是一種能從包含多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。將批操作變

19、成行操作,對(duì)結(jié)果集中得某行進(jìn)行操作。declare author_csr cursor read_only for -定義只讀游標(biāo)select au_fname,au_lname from authors where state = 'ca' order by au_fname,au_lnamedeclare lname varchar(20,fname varchar(20 -定義變量open author_csr -打開游標(biāo)fetch next from author_csr into lname,fname -執(zhí)行一次數(shù)據(jù)讀取操作while fetch_status=0

20、-循環(huán)游標(biāo)讀取數(shù)據(jù)beginprint 'author name:'+lname+''+fnamefetch next from author_csr into lname,fnameendclose author_csr -關(guān)閉游標(biāo)deallocate author_csr -釋放游標(biāo)7.存儲(chǔ)過程存儲(chǔ)過程(stored procedure類似c語言中的函數(shù),是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶通過指定存儲(chǔ)過程的名字餅給出參數(shù)來執(zhí)行它。常用的系統(tǒng)存儲(chǔ)過程: sp_database,sp_helpdb,sp_renamedb,sp_t

21、ables,sp_column,sp_help,sp_ helpconstraint,sp_helpindex,sp_stored_procedure,sp_password創(chuàng)建存儲(chǔ)過程:create procedure book_num (book_name varchar(26,starttime datetime,endtime datetime,total int outputasselect total=count(jy.askbookid from book,jyls jy where bookname like book_name and book.isbn=jy.isbn an

22、d jy.starttime>=starttime and endtime<=endtime使用存儲(chǔ)過程:declare book_name char(26,total intset book_name='面向?qū)ο蠓治龊驮O(shè)計(jì)'exec book_num book_name,'2007-01-01','2007-11-01',total outputselect book_name as bookname,total as num8.觸發(fā)器觸發(fā)器是一種特殊類型的存儲(chǔ)過程,主要是通過實(shí)踐進(jìn)行觸發(fā)而被執(zhí)行。觸發(fā)器的主要作用就是能夠?qū)崿F(xiàn)由主鍵

23、和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。其他功能:強(qiáng)化約束,跟蹤變化,級(jí)聯(lián)運(yùn)行,存儲(chǔ)過程調(diào)用。SQL Server 2000支持兩種類型觸發(fā)器:after觸發(fā)器:要求只有執(zhí)行某一操作之后,觸發(fā)器才被執(zhí)行,且只能在表上定義。instead of觸發(fā)器:表示并不執(zhí)行其所定義的操作,而僅是執(zhí)行觸發(fā)器本身。既可以在表上定義,也可以在視圖上定義,但對(duì)同一操作只能定義一個(gè)instead of觸發(fā)器。工作原理:當(dāng)觸發(fā)insert觸發(fā)器時(shí),新的數(shù)據(jù)行就會(huì)被插入到觸發(fā)器表和inserted 表中。觸發(fā)器通過檢查inserted表來確定是否執(zhí)行觸發(fā)器動(dòng)作或如何執(zhí)行。當(dāng)在定義有觸發(fā)器的表上執(zhí)行update

24、語句時(shí),原始行被移入到deleted表,更新行被移入inserted表。觸發(fā)器檢查deleted表和inserted表以及被更新的表,來確定是否更新了多行以及如何執(zhí)行觸發(fā)器動(dòng)作。當(dāng)觸發(fā)deleted觸發(fā)器后,從受影響的表中刪除的行將被放置到一個(gè)特殊的deleted表中。create trigger update_smoke_t_sale on smoke_t_sale for updateasdeclare newsalenum int,smokeproductname varchar(40select newsalenum= salenum from insertedselect smoke

25、productname=smokeproductname from insertedif update(salenum -判斷是否更新beginupdate smoke_t_sale set saletotalprice=newsalenum * saleprice where smokeproductname=smokeproductnameinsert into smoke_log(logContent values('更新成功'endelseprint '未更新'9.數(shù)據(jù)庫(kù)高級(jí)管理SQL Server安全體系結(jié)構(gòu),4個(gè)等級(jí):客戶機(jī)操作系統(tǒng)的安全性,SQL Server的登錄安全性,數(shù)據(jù)庫(kù)的使用安全性,數(shù)據(jù)對(duì)象的使用安全性SQL Server驗(yàn)證模式:windows身份驗(yàn)證模式和混合模式(windows

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論