




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4.4.1SQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)的組成4.4.2創(chuàng)建數(shù)據(jù)庫(kù)4.4.3創(chuàng)建表4.4.4編輯表4.4.5數(shù)據(jù)庫(kù)備份與恢復(fù)4.4.6SQL語(yǔ)言4.4.1SQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)的組成
SQLServer2000前端工具
查詢分析器為數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)人員提供了一個(gè)簡(jiǎn)單易用的SQL交互窗口,用戶通過(guò)它可以交互地設(shè)計(jì)、測(cè)試、運(yùn)行TransactSQL語(yǔ)句。
SQLServer企業(yè)管理器是SQLServer的一個(gè)最重要的工具,它通過(guò)圖形化的用戶界面(GUI)來(lái)設(shè)置和管理服務(wù)器,易于使用。SQLServer支持系統(tǒng)數(shù)據(jù)庫(kù)、示例數(shù)據(jù)庫(kù)和用戶數(shù)據(jù)庫(kù)。系統(tǒng)和示例數(shù)據(jù)庫(kù)是在安裝SQLServer后自動(dòng)創(chuàng)建的,用戶數(shù)據(jù)庫(kù)是由系統(tǒng)管理員或授權(quán)的用戶創(chuàng)建的數(shù)據(jù)庫(kù)。一、系統(tǒng)數(shù)據(jù)庫(kù)
SQLServer的系統(tǒng)數(shù)據(jù)庫(kù)包括以下幾個(gè)數(shù)據(jù)庫(kù):master:控制用戶數(shù)據(jù)庫(kù)和SQLServer操作,儲(chǔ)存用戶 賬戶、可配置的環(huán)境變量、系統(tǒng)錯(cuò)誤消息等信息model:新建用戶數(shù)據(jù)庫(kù)的模板原型tempdb:臨時(shí)表以及其他臨時(shí)的工作存儲(chǔ)需要msdb:調(diào)度信息和作業(yè)歷史存儲(chǔ)區(qū)域SQLServer的數(shù)據(jù)庫(kù)組成系統(tǒng)級(jí)信息
臨時(shí)數(shù)據(jù)庫(kù),屬于全局資源,沒(méi)有權(quán)限限制。
復(fù)制、作業(yè)調(diào)度和管理報(bào)警等建立新數(shù)據(jù)庫(kù)的模板二、數(shù)據(jù)庫(kù)對(duì)象
數(shù)據(jù)庫(kù)包含的對(duì)象主要包括:關(guān)系圖、表、視圖、存儲(chǔ)過(guò)程、用戶、角色等。關(guān)系圖 強(qiáng)調(diào)的是表和表之間的關(guān)系表 由行和列構(gòu)成的集合,用來(lái)存儲(chǔ)數(shù)據(jù)。視圖 是個(gè)虛擬表。常用于集中、簡(jiǎn)化和定制顯示數(shù)據(jù)庫(kù)中 的信息。對(duì)一個(gè)或多個(gè)基表中的數(shù)據(jù)進(jìn)行篩選、引用。存儲(chǔ)過(guò)程 存放于服務(wù)器的預(yù)先編譯好的一組T-SQL語(yǔ)句。
創(chuàng)建數(shù)據(jù)庫(kù)就是為數(shù)據(jù)庫(kù)確定名稱、大小、存放位置、文件名的過(guò)程。SQLServer2000中創(chuàng)建數(shù)據(jù)庫(kù)的方法有:使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)使用Transact-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)例:以默認(rèn)形式創(chuàng)建mydb數(shù)據(jù)庫(kù),步驟如下:
(1)啟動(dòng)企業(yè)管理器,連接服務(wù)器,展開其樹形目錄,用鼠標(biāo) 右鍵單擊【數(shù)據(jù)庫(kù)】文件夾,在彈出的快捷菜單中,單 擊【新建數(shù)據(jù)庫(kù)…】打開圖1所的對(duì)話框。4.4.2創(chuàng)建數(shù)據(jù)庫(kù)(2)在【數(shù)據(jù)庫(kù)屬性】對(duì)話框的【名稱】文本框內(nèi)輸入數(shù)據(jù)庫(kù)名 (邏輯名)。例如MyDB,系統(tǒng)默認(rèn)用該數(shù)據(jù)庫(kù)名與“_data”串 的連接命名數(shù)據(jù)文件(見圖2),該數(shù)據(jù)庫(kù)名與“_log”串的 連接命名日志文件(見圖3)。主數(shù)據(jù)文件(.mdf):存儲(chǔ)數(shù)據(jù)信息和數(shù)據(jù)庫(kù)的啟動(dòng)信息。一個(gè) 數(shù)據(jù)庫(kù)有且僅有一個(gè)主數(shù)據(jù)文件。日志文件(.ldf):存儲(chǔ)數(shù)據(jù)庫(kù)的所有事務(wù)日志信息,包含用 于恢復(fù)數(shù)據(jù)庫(kù)的日志信息,一個(gè)數(shù)據(jù)庫(kù)的 日志文件至少有一個(gè),也可以有多個(gè)。
(3)單擊【確定】按鈕,數(shù)據(jù)庫(kù)就創(chuàng)建好了,在默認(rèn)位置、采 用默認(rèn)設(shè)置創(chuàng)建了一個(gè)名為MyDB的數(shù)據(jù)庫(kù)。圖1數(shù)據(jù)庫(kù)屬性對(duì)話框圖2數(shù)據(jù)文件選項(xiàng)卡界面
圖3事務(wù)日志文件選項(xiàng)卡界面4.4.3創(chuàng)建表SQLServer的一個(gè)數(shù)據(jù)庫(kù)中可以存儲(chǔ)20億個(gè)表,一個(gè)表最多允許定義1024個(gè)列。表的行數(shù)和總大小僅受可使用空間的限制。表的每一列必須具有相同的數(shù)據(jù)類型。一、設(shè)計(jì)表
在為一個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)表之前,應(yīng)該完成了需求分析,確定了概念模型,將概念模型轉(zhuǎn)換為關(guān)系模型。關(guān)系模型中的每一個(gè)關(guān)系對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表。創(chuàng)建表的過(guò)程,就是將一種具體的關(guān)系DBMS(例如SQLServer2000)作為工具,實(shí)現(xiàn)關(guān)系模型(邏輯模型)到物理模型的轉(zhuǎn)換,即關(guān)系模型的物理實(shí)現(xiàn)。因此,以下稱關(guān)系為表,稱元組為行(或記錄),稱屬性為列(或字段)。
設(shè)計(jì)表時(shí)需要確定如下內(nèi)容:1)表中需要的列以及每一列的類型(必要時(shí)還要有長(zhǎng)度)。2)列是否可以為空。3)是否需要在列上使用約束、默認(rèn)值和規(guī)則。4)需要使用什么樣的索引。5)哪些列作為主鍵。表的設(shè)計(jì)要體現(xiàn)完整性約束的實(shí)現(xiàn)。實(shí)體完整性約束的體現(xiàn)是主鍵約束,即主鍵的各列不能為空,且主鍵作為行的惟一標(biāo)識(shí);外鍵約束是參照完整性約束的體現(xiàn);默認(rèn)值和規(guī)則等是用戶定義的完整性約束的體現(xiàn)。數(shù)據(jù)類型描述imageImage用來(lái)存儲(chǔ)超過(guò)8k的可變長(zhǎng)度的二進(jìn)制數(shù)據(jù),如bmp、gif、jpeg等圖象。char存儲(chǔ)固定長(zhǎng)度的字符類型的數(shù)據(jù),(<=8k),實(shí)際定義varcharvarchar存儲(chǔ)可變長(zhǎng)度的字符數(shù)據(jù),(<=8k)textText用來(lái)存儲(chǔ)大于8k的ASCII字符。Datetime日期類型,存儲(chǔ)從1753年1月1日-9999年12月31日的日期二、字段的數(shù)據(jù)類型int4字節(jié)整型,表達(dá)范圍是-2147483648-2147483647float浮點(diǎn)數(shù),但在計(jì)算機(jī)里面的表達(dá)是一個(gè)近似值decimal浮點(diǎn)數(shù),但表達(dá)是一個(gè)精確的值money貨幣類型,8字節(jié)bit占用一個(gè)二進(jìn)制的位,經(jīng)常作為布爾類型使用三、字段的屬性字段長(zhǎng)度 對(duì)于字符類型,如char和varchar,定義字段的同時(shí)可以指定字段存放的字符的個(gè)數(shù),如定義字段為sNamevarchar(20)
對(duì)于數(shù)值型的字段,如int,float等,系統(tǒng)自動(dòng)定義其占用的字節(jié)數(shù)。decimal由用戶自己定義長(zhǎng)度和小數(shù)位數(shù)。小數(shù)位數(shù) 用于decimal和貨幣類型的字段自動(dòng)增量 用于數(shù)據(jù)庫(kù)表的記錄號(hào)的自動(dòng)增加,常用于做表中記錄的主鍵默認(rèn)值 當(dāng)表中新增加一個(gè)記錄時(shí),又不想具體指定某個(gè)字段的 值??梢越o它一個(gè)默認(rèn)的值非空限制 用于限制字段的值不能為空。 例如學(xué)生的姓名字段,每一個(gè)記錄都必須有值。有效性規(guī)則 字段的有效性規(guī)則用于檢查字段中的輸入值是否符合要求索引 對(duì)字段進(jìn)行索引,可以通過(guò)設(shè)定該字段為查詢條件來(lái)加快 數(shù)據(jù)的檢索速度和統(tǒng)計(jì)、分組的速度。關(guān)鍵字 關(guān)系模式中的主鍵,用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的記錄。1、設(shè)計(jì)表結(jié)構(gòu)(1)進(jìn)入企業(yè)管理器(2)展開要操作的數(shù)據(jù)庫(kù)(3)單擊右鍵,選擇創(chuàng)建表(4)輸入字段名,確定每個(gè)字段的類型(5)保存,為表起名
注:用鼠標(biāo)選擇某列后,再用鼠標(biāo)點(diǎn)擊工具欄上的鑰匙可 將該列設(shè)定為主鍵。2、輸入記錄(1)右擊表,選擇“打開表
返回所有行”(2)直接輸入數(shù)據(jù)
四、創(chuàng)建表的過(guò)程將編號(hào)設(shè)為主鍵包括刪除字段、插入字段、移動(dòng)字段、修改字段名、設(shè)置主關(guān)鍵字、設(shè)置表間關(guān)聯(lián)等操作。4.4.4編輯表在表設(shè)計(jì)器中創(chuàng)建關(guān)系的步驟:把作為關(guān)系外鍵方的表(引用表)打開表設(shè)計(jì)器。在表設(shè)計(jì)器中右擊選擇“關(guān)系”命令并單擊"新建"按鈕。從“主鍵表”和“外鍵表”的下拉列表中,分別選擇“被引用表”和“引用表”的名字。在各自下面的網(wǎng)格中輸入分配給各表主鍵的列和外鍵的列。表設(shè)計(jì)器會(huì)建議一個(gè)關(guān)系名。若要更改這個(gè)名稱,請(qǐng)編輯"關(guān)系名"文本框的內(nèi)容。選擇"關(guān)閉"按鈕以創(chuàng)建關(guān)系。
4.4.5數(shù)據(jù)庫(kù)備份與恢復(fù)一、數(shù)據(jù)庫(kù)的完整備份步驟:展開服務(wù)器組,然后展開服務(wù)器。展開“數(shù)據(jù)庫(kù)”文件夾,右擊要備份的數(shù)據(jù)庫(kù),指向“所有任務(wù)”子菜單,然后單擊“備份數(shù)據(jù)庫(kù)”命令。在“備份”選項(xiàng)下單擊“數(shù)據(jù)庫(kù)—
完全”。在"目的"選項(xiàng)下,單擊"磁帶"或"磁盤",然后指定備份目的地。如果沒(méi)出現(xiàn)備份目的地,則單擊"添加"以添加現(xiàn)有的目的地或創(chuàng)建新目的地。實(shí)現(xiàn)將數(shù)據(jù)庫(kù)
kfsl復(fù)制到磁盤文件D:\studentcourse二、數(shù)據(jù)庫(kù)的完整恢復(fù)
步驟:展開服務(wù)器組,然后展開服務(wù)器。展開“數(shù)據(jù)庫(kù)”文件夾,單擊鼠標(biāo)右鍵,指向“所有任務(wù)”子菜單,然后單擊“還原數(shù)據(jù)庫(kù)”命令。在“還原為數(shù)據(jù)庫(kù)”后的文本框中,輸入要還原的數(shù)據(jù)庫(kù)的名字。在“還原”后的一組按鈕中單擊“從設(shè)備”,然后單擊“選擇設(shè)備”。在"還原自"下,單擊"磁帶"或"磁盤",然后選擇還原設(shè)備如果沒(méi)有出現(xiàn)設(shè)備,則單擊“添加”以添加現(xiàn)有的備份設(shè)備或創(chuàng)建新的備份設(shè)備(備份文件)。在"還原數(shù)據(jù)庫(kù)"對(duì)話框內(nèi),單擊"查看內(nèi)容"并選擇要還原的備份集。單擊“數(shù)據(jù)庫(kù)—
完全”還原數(shù)據(jù)庫(kù)備份。
在“選項(xiàng)”選項(xiàng)卡中,選中“在現(xiàn)有數(shù)據(jù)庫(kù)上強(qiáng)制還原”復(fù)選框輸入要還原的數(shù)據(jù)庫(kù)的名字(1)(2)(3)4.4.6SQL語(yǔ)言SQL語(yǔ)言是數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,是結(jié)構(gòu)化查詢語(yǔ)言(StructuredQueryLanguage)的縮寫,它包括查詢、定義、操縱、控制。使用的方法有兩種:用戶交互的方式聯(lián)機(jī)使用,稱為交互式SQL;另一種是作為子語(yǔ)言嵌入到其他程序設(shè)計(jì)語(yǔ)言中使用,稱為嵌入式SQL。SQL語(yǔ)言支持關(guān)系數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)視圖對(duì)應(yīng)外模式,基本表對(duì)應(yīng)模式,存儲(chǔ)文件對(duì)應(yīng)內(nèi)模式?;颈硎潜旧愍?dú)立存在的表,一個(gè)關(guān)系對(duì)應(yīng)一個(gè)表;一個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件,一個(gè)表可帶多個(gè)索引,索引也存放在存儲(chǔ)文件中;視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表,它本身不獨(dú)立儲(chǔ)存在數(shù)據(jù)庫(kù)中,即數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),是一個(gè)虛表。在查詢分析器中執(zhí)行SQL語(yǔ)句的步驟:從開始菜單進(jìn)入SQLServer的查詢分析器選擇數(shù)據(jù)庫(kù)
(默認(rèn)的數(shù)據(jù)庫(kù)為系統(tǒng)數(shù)據(jù)庫(kù)master,可從 下拉列表框里選所需查詢的數(shù)據(jù)庫(kù))輸入SQL語(yǔ)句按執(zhí)行按鈕執(zhí)行SQL語(yǔ)句.一、SQL中的數(shù)據(jù)查詢SELECT[ALL|DISTINCT
]<列名1>[,<列名2>……]FROM<表名>[WHERE<條件表達(dá)式>][GROUPBY<列名>
[HAVING<條件表達(dá)式>
]][ORDERBY<列名>[ASC|DESC]]輸出列數(shù)據(jù)來(lái)源
記錄篩選條件記錄分組的依據(jù)記錄排序的依據(jù)單表查詢選擇表中的全部列或部分列,對(duì)應(yīng)于投影運(yùn)算。
a)查詢指定列:
select<列名表>from<表名>
如:查詢?nèi)w學(xué)生的學(xué)號(hào)和姓名
SELECTsNo,sNameFROMStudent;b)查詢?nèi)苛校?/p>
select*from<表名>如:查詢?nèi)w學(xué)生的詳細(xì)記錄
SELECT*FROMStudent;c)查詢經(jīng)過(guò)計(jì)算的值
select子句中的<列1[,列2]…>也可以是表達(dá)式,還可通過(guò)指定別名來(lái)改變查詢結(jié)果的列標(biāo)題如:查詢?nèi)w學(xué)生的姓名和年齡
SELECTsNameNAME,2010-birthdayiAgeFROMStudent;d)消除取值重復(fù)的行:兩個(gè)不同的元組投影到指定的某些列后相同
SELECTDISTINCT<列名1,[]…>FROM<表名>
如:查詢選項(xiàng)了課程的學(xué)生的學(xué)號(hào)
SELECTDISTINCTsNo,sNameFROMselectCourse;
表Student表depart例1:查詢student表中所有的記錄
SELECT*FROMstudent例2:查詢student表中所有學(xué)生的姓名和獎(jiǎng)學(xué)金
SELECT姓名,獎(jiǎng)學(xué)金FROMstudent例3.查詢student表中所有專業(yè)號(hào)(要求重復(fù)值只選一個(gè))
SELECT專業(yè)號(hào)FROMstudent不符合要求正確的命令為:
SELECTDISTINCT
專業(yè)號(hào)FROMstudent查詢滿足條件的元組:通過(guò)where子句實(shí)現(xiàn)
SELECT<列名表>FROM<表名>WHERE<條件表達(dá)式>
條件表達(dá)式是由常量、變量和函數(shù)通過(guò)運(yùn)算符連接起來(lái)的式子,其結(jié)果為一個(gè)布爾型的數(shù)據(jù),WHERE子句常用的查詢條件有:關(guān)系表達(dá)式:=,>,<,>=,<=,!=,<>,!>,!<邏輯表達(dá)式:NOT,AND,OR,確定范圍:字段[NOT]BETWEEN值1AND值2確定集合:字段[NOT]IN(值列表)空值:字段IS[NOT]NULL字符匹配:字段[NOT]LIKE"字符串通配式"關(guān)系表達(dá)式關(guān)系運(yùn)算符:關(guān)系運(yùn)算符兩邊值的類型必須一致。>表示大于>=表示大于等于<表示小于<=表示小于等于=表示等于<>表示不等于
例4.查詢student表中獎(jiǎng)學(xué)金大于等于350的學(xué)生姓名和獎(jiǎng)學(xué)金金額SELECT姓名,獎(jiǎng)學(xué)金FROMstudent
WHERE獎(jiǎng)學(xué)金>=350
a)比較大小
b)確定范圍
c)確定集合
d)字符匹配謂詞LIKE可以用來(lái)進(jìn)行字符串的匹配,其語(yǔ)法格式:
[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]
含義:查找指定的屬性列值與<匹配串>相匹配的元組,匹配串可以含有通配符%和_。例5.查詢student表中女生信息例6.查詢student表中84年8月8日出生的學(xué)生信息SELECT*FROMstudentWHERE性別=‘女’
字符型常量要用’括起SELECT*FROMstudentWHERE出生日期=‘1984-8-8’日期型常量要用’括起
邏輯表達(dá)式
——多個(gè)條件用AND、OR、NOT組合成邏輯表達(dá)式邏輯運(yùn)算符:ANDORNOT
例7.查詢student表中01專業(yè)的男生和02專業(yè)的女生的學(xué)號(hào)和 姓名
SELECT學(xué)號(hào),姓名FROMSTUDENT
WHERE專業(yè)號(hào)=’01’AND性別=‘男’
OR專業(yè)號(hào)=’02’AND性別=‘女’字段[NOT]LIKE"字符串通配式“%(百分號(hào))
代表任意長(zhǎng)度(長(zhǎng)度可以為0)的字符串例:a%b 表示以a開頭,以b結(jié)尾的任意長(zhǎng)度的字符串。如 acb,addgb,ab等都滿足該匹配串_(下橫線)
代表任意單個(gè)字符例:a_b表示以a開頭,以b結(jié)尾的長(zhǎng)度為3的任意 字符串。如acb,afb等都滿足該匹配串例8.查詢student表中姓陳的學(xué)生信息
SELECT*FROMstudentWHERE姓名LIKE‘陳%’
字段[NOT]BETWEEN值1AND值2例9.例如查詢student表中獎(jiǎng)學(xué)金在300至400之間的學(xué)生信息
SELECT*FROMstudentWHERE獎(jiǎng)學(xué)金B(yǎng)ETWEEN300AND400等價(jià)于:獎(jiǎng)學(xué)金>=300AND獎(jiǎng)學(xué)金<=400字段[NOT]IN(值列表)例10.查詢student表中專業(yè)號(hào)為01和03的學(xué)生信息
SELECT*FROMstudentWHERE專業(yè)號(hào)IN(’01’,’03’)等價(jià)于:專業(yè)號(hào)=’01’OR專業(yè)號(hào)=’03’
字段IS[NOT]NULL例11.查詢student表中尚未分配專業(yè)的學(xué)生信息
SELECT*FROMstudentWHERE專業(yè)號(hào)ISNULL③使用統(tǒng)計(jì)函數(shù)查詢輸出列為:統(tǒng)計(jì)函數(shù)名(列名)[AS列標(biāo)題]SQL統(tǒng)計(jì)函數(shù):count(列名):列值個(gè)數(shù),不包含為空的值
注:count(*):元組個(gè)數(shù)sum(列名):列值總和avg(列名):列值平均值max(列名):列值中的最大值min(列名):列值中的最小值
例12.統(tǒng)計(jì)student表中獎(jiǎng)學(xué)金的總額、平均值及最高值
SELECTSUM(獎(jiǎng)學(xué)金)as獎(jiǎng)學(xué)金總額,AVG(獎(jiǎng)學(xué)金)as平均獎(jiǎng)學(xué)金,MAX(獎(jiǎng)學(xué)金)as最高獎(jiǎng)學(xué)金
FROMstudent對(duì)查詢的結(jié)果進(jìn)行排序用ORDERBY子句對(duì)查詢結(jié)果按照一個(gè)或多個(gè)屬性列的升序()ASC)或降序(DESC)排列,缺省值為升序。
SELECT列名表FROM表名[WHERE條件]
ORDERBY排序依據(jù)[ASC/DESC]
例13.查詢grade表的學(xué)號(hào)和成績(jī),要求按照成績(jī)的升序排名
SELECT學(xué)號(hào),成績(jī)FROMgradeORDERBY成績(jī)ASC對(duì)查詢的結(jié)果分組
GROUPBY子句將查詢結(jié)果表按某一列或多列值分組,值相等的為一組。例14.查詢某個(gè)課程號(hào)相應(yīng)的選課人數(shù)
SELECTcNo,COUNT(sNo)FROMscGROUPBYcNo
解釋:該語(yǔ)句對(duì)查詢結(jié)果按cNo的值分組,所有具有相同cNo值的元組為一組,然后對(duì)每一組用函數(shù)COUNT計(jì)算,求得該組學(xué)生人數(shù)。例:查詢選修了3門以上課程的學(xué)生學(xué)號(hào)
SELECTsNoFROMscGROUPBYsNoHAVINGCOUNT(*)>3
解釋:HAVING短語(yǔ)作用于組,可指定篩選條件,只輸出滿足條件的組。注意不同于where子句,where子句作用于基本表。2.連接查詢(多表查詢)若一個(gè)查詢同時(shí)涉及兩個(gè)以上的表,稱之為連接查詢。連接查詢中用來(lái)連接兩個(gè)表的條件稱為連接條件或連接謂詞,其一般格式為:
[<表名1>.]<列名1><比較運(yùn)算符>[<表名2>.]<列名2>比較運(yùn)算符為=時(shí),稱為等值連接;其他運(yùn)算符稱非等值連接。連接謂詞中的列名稱為連接字段,連接字段必須是可比的。例15查找獎(jiǎng)學(xué)金在300元以上的學(xué)生的姓名、學(xué)號(hào)、專業(yè)名。分析:直接觀察表student和depart,可以發(fā)現(xiàn),通過(guò)student可以得到學(xué)生的學(xué)號(hào)、姓名,但無(wú)法得到學(xué)生的專業(yè)名,但缺少的信息可以通過(guò)表depart得到,表Student和depart的專業(yè)號(hào)如果統(tǒng)一起來(lái),就可以唯一得到所需要的信息
select學(xué)號(hào),姓名,專業(yè)名fromstudent,departwherestudent.專業(yè)號(hào)=depart.專業(yè)號(hào)and獎(jiǎng)學(xué)金>300自身連接連接操作是一個(gè)表與其自己進(jìn)行連接,稱為表的自身連接。外連接在前面的連接操作中,只有滿足條件的元組才能作為結(jié)果輸出;若以某表為主體,列出所有主鍵的信息,另一個(gè)表的信息可以為空,則使用外連接。
SELECTstudent.sNO,sName,cNoFROMstudent,scWHEREstudent.sNo=sc.sNo(*);
外連接的表示方法為:在連接謂詞的某一邊加符號(hào)*。外連接就好像是為符號(hào)*所在邊的表增加一個(gè)萬(wàn)能的行,該行全部由空值組成。它可以和另一邊的表中所有不滿足連接條件的元組進(jìn)行連接。嵌套查詢
SQL中一個(gè)SELECT語(yǔ)句為一個(gè)查詢塊,將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語(yǔ)的條件中的查詢稱為嵌套查詢。例如:查詢與某某在同一個(gè)系的學(xué)生。
SELECTsNo,sName,sDeptFROMstudentWHEREsDeptIN(SELECTsDeptFROMstudentWHEREsName=‘某某’);二、數(shù)據(jù)操縱
SQL的數(shù)據(jù)操縱語(yǔ)句有INSERT、UPDATE、DELETE,完成數(shù)據(jù)的插入、更新和刪除功能。
數(shù)據(jù)更新語(yǔ)句Update修改表中原有的數(shù)據(jù)記錄與Select語(yǔ)句不同,Update語(yǔ)句不存在多表聯(lián)合操作,每個(gè)語(yǔ)句一次只能針對(duì)一個(gè)表。其語(yǔ)法格式為:
update表set字段名=表達(dá)式[,字段名=表達(dá)式,….][where條件]例17:將student表中所有學(xué)生的獎(jiǎng)學(xué)金加100元
例18:將student表中學(xué)號(hào)為“01001”的學(xué)生專業(yè)號(hào)改為“02”
1、數(shù)據(jù)更新語(yǔ)句--Updateupdatestudentset獎(jiǎng)學(xué)金=獎(jiǎng)學(xué)金+100updatestudent
SET專業(yè)號(hào)=‘02’
WHERE學(xué)號(hào)=‘01001’2、插入新記錄語(yǔ)句Insert
語(yǔ)法格式為:insertinto表名[(字段名1,字段名2…)]values(值1[,值2,…值n])注:非空的字段及沒(méi)有字段默認(rèn)值的字段,必須出現(xiàn)在字段列表中.如果不寫字段名列表,則必須按表名定義的字段順序,在values后定義值的序列.例19:向Student表插入一條記錄INSERTINTOStudentVALUES(‘01001’,‘李明’,‘男’,’1984-8-8’,19,‘01’,500)若出生日期和獎(jiǎng)學(xué)金字段可以為空,則:INSERTINTOStudent(學(xué)號(hào),姓名,性別,年齡,專業(yè)號(hào))VALUES(‘01001’,‘李明’,‘男’,19,‘01’)3、刪除記錄delete
語(yǔ)法
deletefrom表名[where條件]例20:刪除student表中學(xué)號(hào)為’01007’的學(xué)生記錄
DELETEFROMstudentWHERE學(xué)號(hào)=‘01007’三、定義、修改、刪除基本表
SQL語(yǔ)句有CREATETABLE、ALTERTABLE、DROPTABLE
其語(yǔ)法格式為:
CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件][,<列名><數(shù)據(jù)類型>[列級(jí)完整性約束條件]]…[,<表級(jí)完整性約束條件>]);例17:建立student表
CREATETABLEstudent(sNoCHAR(5)NOTNULLUNIQUE,sNameCHAR(20)UNIQUE,sSexCHAR(1),sAgeint,sDepartCHAR(15));1、定義基本表–
CREATETABLE其語(yǔ)法格式為:
ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束條件][DROP[完整性約束名]]…[MODIFY<列名><數(shù)據(jù)類型>];例:向student表中增加入學(xué)時(shí)間列,數(shù)據(jù)類型為日期型
ALTERTABLEstudentADDcomeTimeDATE;2、修改基本表–
ALTERTABLE其語(yǔ)法格式為:
DROPTABLE<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 舊屋面防水施工方案
- 毛坯粉墻涂料施工方案
- YD B 050-2010 VRLA蓄電池組在線診斷技術(shù)要求和測(cè)試方法
- 2025年度美容院顧客資源與合同權(quán)益轉(zhuǎn)讓書
- 腳手架班組承包協(xié)議(2025年度)包含環(huán)保責(zé)任條款
- 二零二五年度轉(zhuǎn)租協(xié)議甲乙丙三方房屋租賃合同
- 二零二五年度主播與網(wǎng)絡(luò)文學(xué)出版社解除合同
- 2025年度男女分手后共同子女保險(xiǎn)權(quán)益處理協(xié)議
- 二零二五年度返利協(xié)議書:健康體檢機(jī)構(gòu)返利合作協(xié)議
- 二零二五年度校園借車免責(zé)協(xié)議實(shí)施細(xì)則
- 食堂從業(yè)人員晨午檢制度
- DB35T 1816-2019 基層地震災(zāi)害緊急救援隊(duì)能力分級(jí)測(cè)評(píng)
- 現(xiàn)代家政導(dǎo)論-課件 2.1家庭的認(rèn)知
- 中小企業(yè)(民營(yíng)企業(yè))ESG星級(jí)評(píng)價(jià)
- 電氣工程及其自動(dòng)化職業(yè)規(guī)劃課件
- 護(hù)理相關(guān)法律法規(guī)
- 社區(qū)菜市場(chǎng)改造工程協(xié)議
- 《籃球運(yùn)球》教案(共四篇)
- 高中 語(yǔ)文 必修上冊(cè) 第八單元《詞語(yǔ)積累與詞語(yǔ)解釋》課件
- 客觀題法律職業(yè)資格考試(試卷一)試題及解答參考(2024年)
- 【網(wǎng)紅李佳琦直播帶貨營(yíng)銷策略問(wèn)題及對(duì)策13000字(論文)】
評(píng)論
0/150
提交評(píng)論