Chap3_數(shù)據(jù)查詢與SQL命令_第1頁
Chap3_數(shù)據(jù)查詢與SQL命令_第2頁
Chap3_數(shù)據(jù)查詢與SQL命令_第3頁
Chap3_數(shù)據(jù)查詢與SQL命令_第4頁
Chap3_數(shù)據(jù)查詢與SQL命令_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、: 根據(jù)某種規(guī)則查找部分?jǐn)?shù)據(jù) 如查找1班的男生 同時顯示分布在若干個表或查詢中的數(shù)據(jù) 如顯示學(xué)生信息的同時顯示其關(guān)聯(lián)的導(dǎo)師姓名、職稱等信息 對表中的數(shù)據(jù)進(jìn)行計算、分類、匯總 如統(tǒng)計各班學(xué)生的平均分 轉(zhuǎn)置表并進(jìn)行分類統(tǒng)計 相當(dāng)于Excel的透視表 查詢結(jié)果轉(zhuǎn)換成表 輸出查詢的結(jié)果到新表中 成批更新、刪除表中的數(shù)據(jù),或?qū)⒑Y選出的數(shù)據(jù)追加到另一個表運算符運算符含義含義舉例舉例結(jié)果結(jié)果指數(shù)運算指數(shù)運算23236 6-負(fù)數(shù)負(fù)數(shù)-5 5-5-5* , /乘法和除法乘法和除法2 2* *3/53/51.21.2 整除整除65651 1Mod求余運算求余運算6 Mod 56 Mod 51 1+ , -加法和減

2、法加法和減法3+4-13+4-16 6&字符串連接字符串連接李李&麗麗李麗李麗運算符運算符含義含義備注=等于成績=60 性別=女大于成績60=大于等于工資=3000小于年齡30=小于等于入學(xué)成績=550不等于成績99 性別男運算符名稱含義NOT非取值與表達(dá)式相反AND與前后表達(dá)式需要同時滿足OR或前后表達(dá)式滿足之一即可 NOT(研究方向研究方向=考古學(xué)考古學(xué)) 成績成績=330 AND 成績成績 關(guān)系運算符關(guān)系運算符 邏輯運算符邏輯運算符 當(dāng)表達(dá)式有多種運算符時,先處理算術(shù)運算符,接著處理比較運算符,然后再處理邏輯運算符。所有關(guān)系運算符有相同的優(yōu)先級,即按它們出現(xiàn)的順序從左到右進(jìn)行處理。算術(shù)運

3、算符和邏輯運算符按下列優(yōu)先級進(jìn)行處理:算術(shù)運算符算術(shù)運算符-* , / Mod+ , -&邏輯運算符:邏輯運算符:NOT AND ORNOT AND OR 入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)500 AND 性別性別=女女 OR 專業(yè)專業(yè)=工商工商入學(xué)分?jǐn)?shù)在入學(xué)分?jǐn)?shù)在500以上的所有女生以上的所有女生 及及 所有工商專業(yè)的學(xué)生。所有工商專業(yè)的學(xué)生。( )字符字符含義含義示例示例可能結(jié)果可能結(jié)果* *任何數(shù)量的字符任何數(shù)量的字符劉劉* *劉寶、劉方、劉守航、劉壯劉寶、劉方、劉守航、劉壯? ?單個字符單個字符劉?劉?劉寶、劉方、劉壯劉寶、劉方、劉壯 之內(nèi)的任何字符之內(nèi)的任何字符工工程商程商1工程工程1、工商、工商1-

4、 -一定范圍內(nèi)的字符一定范圍內(nèi)的字符1a-c21a2、1b2、1c2! !被排除的字符被排除的字符1!a-x21y2、1z2、112 # #單個數(shù)字單個數(shù)字A#BA1B、 A2B 運算符運算符含義含義示例示例BETWEEN定義一個區(qū)間范圍定義一個區(qū)間范圍(包括等于包括等于)成績成績 BETWEEN 320 AND 360LIKE匹配字符串匹配字符串姓名姓名 LIKE 馬馬* *IN檢查是否屬于給定范圍檢查是否屬于給定范圍專業(yè)專業(yè) IN (工程工程,工商工商)IS NULL是否為空是否為空導(dǎo)師編號導(dǎo)師編號 IS NULLIS NOT NULL是否不為空是否不為空導(dǎo)師編號導(dǎo)師編號 IS NOT N

5、ULL 本查詢?yōu)槟姆N數(shù)據(jù)庫專門的關(guān)系運算本查詢?yōu)槟姆N數(shù)據(jù)庫專門的關(guān)系運算?投投 影影說明: (1)作為查詢對象,“導(dǎo)師情況表”只是一條SQL命令,本身并不包含數(shù)據(jù)。數(shù)據(jù)來自“導(dǎo)師”表。 (2)如果打開查詢對象時對數(shù)據(jù)進(jìn)行更新、添加,則數(shù)據(jù)的變化實際發(fā)生在數(shù)據(jù)源(“導(dǎo)師”表)中。 (3)數(shù)據(jù)源如果被刪除,則查詢無法打開,并顯示出錯信息 前提:前提:“導(dǎo)師導(dǎo)師”表和表和“研究生研究生”表已建立表已建立1:M關(guān)系關(guān)系說明:說明: 查詢對象的字段名一般沿用數(shù)據(jù)表中的字段名,如果出現(xiàn)相查詢對象的字段名一般沿用數(shù)據(jù)表中的字段名,如果出現(xiàn)相同的字段名,系統(tǒng)自動在字段名前加上表的名字以示區(qū)別同的字段名,系統(tǒng)自

6、動在字段名前加上表的名字以示區(qū)別 方式一:打開已有查詢的設(shè)計視圖:單擊方式一:打開已有查詢的設(shè)計視圖:單擊 “設(shè)計設(shè)計”按鈕按鈕 方式二:點擊在設(shè)計視圖中創(chuàng)建查詢方式二:點擊在設(shè)計視圖中創(chuàng)建查詢 例例3-33-3 為例為例3-2添加博導(dǎo)列(位于添加博導(dǎo)列(位于“職稱職稱”右側(cè))右側(cè)) 思考:如果思考:如果“系系”與與“導(dǎo)師導(dǎo)師”表之間、表之間、“導(dǎo)師導(dǎo)師”與與“研究生研究生”表之間沒有建立表之間沒有建立關(guān)系,將得到什么結(jié)果?關(guān)系,將得到什么結(jié)果? 例例3-53-5 按系名顯示各研究生姓名按系名顯示各研究生姓名“導(dǎo)師導(dǎo)師”表是表是“系系”表與表與“研究生研究生”表之間的聯(lián)系表之間的聯(lián)系“橋梁橋梁

7、” 例3-6 例3-11“=”號可省略號可省略 不顯示顯示 使用參數(shù)查詢,您可以在每次運行查詢時輸入不同的條件使用參數(shù)查詢,您可以在每次運行查詢時輸入不同的條件值。您可以獲得您所需的結(jié)果,而不必每次重新創(chuàng)建整個值。您可以獲得您所需的結(jié)果,而不必每次重新創(chuàng)建整個查詢。查詢。 如如例例3-6,可通過輸入性別,實現(xiàn)查詢不同性別的學(xué)生。,可通過輸入性別,實現(xiàn)查詢不同性別的學(xué)生。例例 以表以表“研究生研究生”為數(shù)據(jù)源創(chuàng)建一個參數(shù)查詢,當(dāng)運行該查為數(shù)據(jù)源創(chuàng)建一個參數(shù)查詢,當(dāng)運行該查詢時,提示框中應(yīng)顯示詢時,提示框中應(yīng)顯示“請輸入研究方向請輸入研究方向”,輸入后,在研究,輸入后,在研究方向字段中查找具有指定

8、研究方向的學(xué)生,顯示方向字段中查找具有指定研究方向的學(xué)生,顯示“學(xué)號學(xué)號”、“姓名姓名”、“性別性別”、“入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)”和和“研究方向研究方向”五個字段五個字段內(nèi)容,所建查詢命名為內(nèi)容,所建查詢命名為“研究方向查詢研究方向查詢; 例例3-12 3-12 按性別的升序和導(dǎo)師編號的降序顯示記錄按性別的升序和導(dǎo)師編號的降序顯示記錄 例例3-13 3-13 按性別的升序和導(dǎo)師編號的降序顯示記錄,輸出按性別的升序和導(dǎo)師編號的降序顯示記錄,輸出字段順序為:姓名、導(dǎo)師編號、性別和入學(xué)分?jǐn)?shù)字段順序為:姓名、導(dǎo)師編號、性別和入學(xué)分?jǐn)?shù)輸出字段順序輸出字段順序排序順序排序順序例例3-14 例例3-15 計算字段

9、的值由表達(dá)式計算而得,本身不保存在表中計算字段的值由表達(dá)式計算而得,本身不保存在表中若表達(dá)式中引用的字段或值發(fā)生了變化,必須重新執(zhí)行查詢?nèi)舯磉_(dá)式中引用的字段或值發(fā)生了變化,必須重新執(zhí)行查詢 例例3-16 計算字段,計算字段,“出生年月出生年月”為別名為別名 2009- 2009-年齡年齡 改成:改成: Year(NowYear(Now()-()-年齡年齡 1. 用向?qū)山徊姹碛孟驅(qū)山徊姹?例3-17 3. 引用兩個表的字段生成交叉表:交叉表無法同時引用兩引用兩個表的字段生成交叉表:交叉表無法同時引用兩個表的字段。個表的字段。解決方法:先建立一個查詢,然后根據(jù)查詢創(chuàng)建交叉表解決方法:先建立

10、一個查詢,然后根據(jù)查詢創(chuàng)建交叉表 例例3-18 將最后一欄將最后一欄“總計總計 入學(xué)分入學(xué)分”字段名稱更改為字段名稱更改為“入學(xué)平均分入學(xué)平均分” 設(shè)定設(shè)定“入學(xué)分?jǐn)?shù)、入學(xué)平均分入學(xué)分?jǐn)?shù)、入學(xué)平均分”字段屬性為小數(shù)位字段屬性為小數(shù)位2 2位位查詢的實質(zhì)是查詢的實質(zhì)是SQL命令命令 SQL結(jié)構(gòu)化查詢語言,可用于定義、查詢、更新、管理關(guān)系型數(shù)據(jù)庫系統(tǒng)。 SQL是一種非過程語言,易學(xué)易用,語句由近似自然語言的英語單詞組成 例如, Select 學(xué)號,姓名,入學(xué)分?jǐn)?shù),研究方向 From 研究生 Where 性別=男 顯示顯示“研究生研究生”表中所表中所有男生的學(xué)號、姓名、有男生的學(xué)號、姓名、入學(xué)分?jǐn)?shù)和

11、研究方向入學(xué)分?jǐn)?shù)和研究方向 SQL的查詢語句格式:SELECT 字段列表 INTO 新表 FROM 記錄源 WHERE GROUP BY HAVING ORDER BY 字段列表ASC|DESC 中的內(nèi)容為可選項中的內(nèi)容為可選項 選擇查詢對象 選擇進(jìn)入設(shè)計視圖,不選擇表 選擇工具欄SQL視圖按鈕1. 選取記錄源的全部或部分字段2. 用distinct 消除重復(fù)記錄3. 用TOP顯示前面若干條記錄4. 對記錄進(jìn)行選擇5. 用特殊運算符過濾記錄6. 用ORDER BY子句將記錄排序輸出 在查詢操作中,經(jīng)常會同時涉及多個關(guān)聯(lián)表中的字段信息,如查詢導(dǎo)師及其所帶學(xué)生姓名,涉及導(dǎo)師表、研究生表2個表。 1

12、 用Where實現(xiàn)表間關(guān)系 例3-32 輸出全體導(dǎo)師的姓名及其所帶研究生姓名. 常用的合計函數(shù):COUNT(計數(shù))、SUM(求和)、MAX(最大值)、MIN(最小值)、AVG(求平均值) Group by 將字段中取值相同的記錄分為一組將字段中取值相同的記錄分為一組 例按職稱統(tǒng)計教師人數(shù) 例344 通過表達(dá)式對某一字段信息進(jìn)行計算。通過表達(dá)式對某一字段信息進(jìn)行計算。例3-46顯示所有入學(xué)分?jǐn)?shù)高于平均分的研究生數(shù)據(jù) 錯誤: 正確:SELECT 姓名姓名,入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù) FROM 研究生研究生 WHERE 入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)AVG(入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù))SELECT 姓名姓名, 入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù) FR

13、OM 研究生研究生 WHERE 入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)(SELECT AVG(入學(xué)分?jǐn)?shù)入學(xué)分?jǐn)?shù)) FROM 研究生研究生)內(nèi)嵌套查詢先被執(zhí)行內(nèi)嵌套查詢先被執(zhí)行 Create、Alter、DropSELECTInsert 、Update、Delete 這種類型的查詢用于創(chuàng)建、刪除、更改表結(jié)構(gòu)。這種類型的查詢用于創(chuàng)建、刪除、更改表結(jié)構(gòu)。SQL語句語句用用 途途CREATE TABLE創(chuàng)建表創(chuàng)建表ALTER TABLE在已有表中添加新字段或約束在已有表中添加新字段或約束DROP TABLE從數(shù)據(jù)庫中刪除表、或者從字段組中刪從數(shù)據(jù)庫中刪除表、或者從字段組中刪除索引除索引CREATE INDEX為字段或字段組

14、創(chuàng)建索引為字段或字段組創(chuàng)建索引 進(jìn)入查詢視圖,選擇菜單進(jìn)入查詢視圖,選擇菜單“查詢查詢”“SQL特定查詢特定查詢”“數(shù)據(jù)定義數(shù)據(jù)定義”,進(jìn)入數(shù)據(jù)定義查詢窗口。,進(jìn)入數(shù)據(jù)定義查詢窗口。SQL語言基本數(shù)據(jù)類型語言基本數(shù)據(jù)類型1.數(shù)值型數(shù)值型 Integer,Smallint,F(xiàn)loat(n),Real,Double,Numberic(p,q) 2.字符型字符型 Char(n),Varchar(n),Text/Memo,Binary(n),VarBinary (n)3.日期、時間型日期、時間型 Date,Time,DateTime4.邏輯型邏輯型 Boolean5.貨幣型貨幣型 SmallMoney

15、,Money6.OLE型型 General 語句格式:語句格式:Create table 表名表名(列名(列名1 數(shù)據(jù)類型數(shù)據(jù)類型1 NOT NULL ,列名,列名2 數(shù)據(jù)類型數(shù)據(jù)類型2 NOT NULL ) IN 數(shù)據(jù)庫名數(shù)據(jù)庫名PRIMARY KEY 用于設(shè)置主鍵用于設(shè)置主鍵例:創(chuàng)建學(xué)生基本情況表。例:創(chuàng)建學(xué)生基本情況表。CREATE TABLE 學(xué)生情況學(xué)生情況 (學(xué)號學(xué)號 integer primary key, 姓名姓名 text(4), 性別性別 text(1),出生日期出生日期 date, 家庭住址家庭住址 text(20),聯(lián)系電話聯(lián)系電話 text(10),備備注注 memo

16、); Alter table add 數(shù)據(jù)類型數(shù)據(jù)類型例:例:ALTER TABLE 學(xué)生情況學(xué)生情況 ADD 郵政編碼郵政編碼 CHAR(6); Alter table drop 例:例:ALTER TABLE 學(xué)生情況學(xué)生情況 DROP 郵政編碼郵政編碼 ; Alter table Alter 數(shù)據(jù)類型數(shù)據(jù)類型例:例:ALTER TABLE 學(xué)生情況學(xué)生情況 Alter 備注備注 Char(10) 語句格式:語句格式: Drop table 語句功能:表名指要刪除的表名;一旦刪除,在此表上建語句功能:表名指要刪除的表名;一旦刪除,在此表上建立的索引、視圖都自動被刪除掉,且無法恢復(fù)。立的索引

17、、視圖都自動被刪除掉,且無法恢復(fù)。 例:刪除研究管理數(shù)據(jù)庫中的研究生表例:刪除研究管理數(shù)據(jù)庫中的研究生表 DROP TABLE 學(xué)生情況學(xué)生情況操作:操作:1. SQL代碼:代碼:SELECT * INTO FROM 2. 在查詢設(shè)計視圖中完成:在查詢設(shè)計視圖中完成:打開查詢設(shè)計視圖打開查詢設(shè)計視圖 執(zhí)行執(zhí)行“查詢查詢”/“生成表查詢生成表查詢”菜單命令菜單命令 例例3-9 P813-9 P81(1 1)添加數(shù)據(jù)記錄)添加數(shù)據(jù)記錄 語句格式:語句格式: INSERT INTO ( ,) Values ( ,) 語句功能:將一個新記錄(一行數(shù)據(jù))插入指定的表中。語句功能:將一個新記錄(一行數(shù)據(jù))

18、插入指定的表中。 例:插入一條學(xué)生記錄例:插入一條學(xué)生記錄 Insert into 學(xué)生情況學(xué)生情況(學(xué)生學(xué)生ID,姓名姓名,性別性別) values(106,張三張三,男男)注意:字段值必須按照順序?qū)懭胱⒁猓鹤侄沃当仨毎凑枕樞驅(qū)懭? 并且所有字段要寫全。并且所有字段要寫全。操作:打開設(shè)計視圖, “查詢”/“追加查詢” 例例3-503-50 只追加男研究生的信息只追加男研究生的信息 但不追加但不追加“性別性別”字段字段 語句格式:語句格式:Update Set = ,= ,Where 語句功能:更新以語句功能:更新以為名的表中數(shù)據(jù)。為名的表中數(shù)據(jù)。 例:將學(xué)生張三的學(xué)號改為例:將學(xué)生張三的學(xué)號

19、改為90101 Update 學(xué)生情況學(xué)生情況 Set 學(xué)生學(xué)生ID=90101 where 姓名姓名=張三張三 作用:作用:根據(jù)某種規(guī)則批量修改表中的數(shù)據(jù)根據(jù)某種規(guī)則批量修改表中的數(shù)據(jù) 操作:操作:打開設(shè)計視圖,打開設(shè)計視圖, “查詢查詢”/“更新查詢更新查詢” 例例3-51 將將“導(dǎo)師導(dǎo)師”表每位導(dǎo)師的年齡增加表每位導(dǎo)師的年齡增加1歲歲UPDATE 導(dǎo)師導(dǎo)師 SET 導(dǎo)師導(dǎo)師.年齡年齡 = 年齡年齡+1更新查詢對表中記錄的修改不得違反所有的數(shù)據(jù)更新查詢對表中記錄的修改不得違反所有的數(shù)據(jù)完整性約束完整性約束 注意:容易寫成注意:容易寫成 年齡年齡1 造成無法計算的錯誤。造成無法計算的錯誤。其對應(yīng)的其對應(yīng)的SQL語句為:語句為:UPDATE 導(dǎo)師導(dǎo)師 SET 導(dǎo)師導(dǎo)師.年齡年齡 = 年齡年齡+1;思考:如果寫成了思考:如果寫成了 年紀(jì)年紀(jì) 1 1會出現(xiàn)什么情況?會出現(xiàn)什么情況? 如果用戶需要經(jīng)常運行同一個查詢,但查詢內(nèi)容不同,可以利用參數(shù)查詢解決。 設(shè)置方法:在需要查詢字段的條件內(nèi)輸入 ,括號內(nèi)為查詢的提示信息。 如僅根據(jù)姓

溫馨提示

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

評論

0/150

提交評論