計算機應用技術數(shù)據(jù)庫09查詢_第1頁
計算機應用技術數(shù)據(jù)庫09查詢_第2頁
計算機應用技術數(shù)據(jù)庫09查詢_第3頁
計算機應用技術數(shù)據(jù)庫09查詢_第4頁
計算機應用技術數(shù)據(jù)庫09查詢_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

SQLSERVER2000表的查詢SQL語言的種類

SQL(StructuredQueryLanguage)是一種在關系數(shù)據(jù)庫中定義和操作數(shù)據(jù)的標準語言.SQL語言通常分為4類:

查詢語言(select)操縱語言(insert,update,delete)定義語言(create,alter,drop)控制語言(commit,rollback)SQL語言提供的SELECT語句的一般格式如下:SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>][,…]FROM<表名或視圖名>[,<表名或視圖名>][,…][WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY]<列名2>[ASC|DESC]];說明:

SELECT語句的含義是,根據(jù)WHERE子句指定的條件,從FROM子句后面的基本表或視圖中找出滿足條件的記錄,再按照SELECT子句指定的目標列表達式,選出這些記錄相應的列形成結果集返回。其中,SELECT子句和FROM子句是必選的,而WHERE子句、GROUPBY子句、HAVING子句以及ORDERBY子句都是可選的。select語句的基本格式是由select子句,from子句和where子句組成的查詢塊.整個select語句的含義是:根據(jù)where子句的篩選條件表達式,從from子句指定的表中找出滿足條件的記錄,再按select子句中指定的字段次序,選出記錄中的字段值構造一個顯示結果表.如果有group子句,則將結果按<分組表達式>的值進行分組,該值相等的記錄為一個組.如果group子句帶having短語,則只有滿足指定條件的組才會輸出.如果有order子句,則顯示結果表還要按<字段>值的升序(asc)或降序(desc)進行排序.一、選擇行和列--選擇和投影運算的實現(xiàn)下面以人事工資管理系統(tǒng)的員工表employee和部門表dept為例介紹SELECT語句的使用方法。Employee(emp_id,ename,job,mgr_id,workdate,sal,comm,dept_id)

員工號姓名職位主管參加工作時間月薪崗位津貼部門號

Dept(dept_id,dname,tel)

部門號,部門名稱,電話用下面語句創(chuàng)建表結構:

CREATETABLEemployee(emp_idCHAR(4)PRIMARYKEY,enameVARCHAR(20),jobVARCHAR(9),mgr_idCHAR(4),workdatedatetime,salSMALLINT,commSMALLINT,dept_idCHAR(2)NOTNULL)CREATETABLEdept(dept_idCHAR(2)PRIMARYKEY,dnameVARCHAR(12),telVARCHAR(20))1、選擇運算的實現(xiàn)查詢一個表的所有行

在SELECT語句中只要沒有WHERE子句,查詢結果就包含了所有行?!纠?】查詢表employee的所有員工的員工號和姓名。查詢滿足條件的某些行查詢滿足條件的某些行,可以通過WHERE子句來實現(xiàn)?!纠?】查詢月薪超過1800的員工姓名和月薪?!纠?】查詢員工號為1001的員工姓名及部門號。

1.SELECTemp_id,enameFROMemployee2.SELECTename,salFROMemployeeWHEREsal>1800;3.SELECTename,dept_idFROMemployeeWHEREemp_id=’1001’2、投影運算的實現(xiàn)查詢表的全部列【例4】查詢部門表中部門號為11的全部內(nèi)容。在SQL語言中,可以用星號“*”代表所有列名,列的顯示順序與基本表中列的順序一致。查詢表的部分列

【例5】查詢?nèi)w員工的員工號,姓名和參加工作時間。查詢經(jīng)過計算的值SELECT子句的<目標列表達式>不僅可以是基本表的屬性,也可以是表達式,包括算術表達式、字符串常量和函數(shù)等【例6】查詢?nèi)w員工的姓名及年薪。查詢可以通過指定別名來改變查詢結果的列標題,這樣也可以使結果更清晰。

SELECTenameAS姓名,sal*12AS年薪

FROMemployee注意:當自定義的列標題中有空格時必須用單引號。

SELECT'姓名'=ename,'年薪'=sal*12

FROMemployee

4.SELECTdept_id,dname,telFROMdeptWHEREdept_id=’11’5.SELECTemp_id,ename,workdateFROMemployee6.

SELECTename,sal*12FROMemployee二、SQL的運算符SQL語言使用的運算符包括算術運算符、比較運算符、邏輯運算符等。

算術運算符算術運算符有4種:+、-、*、/

比較運算符基本比較運算符共9種:=、>、<、<=、>=、!=或<>、!>(不大于)、!<(不小于)特殊比較運算符有4類:BETWEEN…AND…、IN、LIKE和ISNULL運算符BETWEEN…AND…運算符BETWEEN…AND…是用于確定記錄的范圍,即某屬性值在指定的范圍之內(nèi)(包括邊界值)的記錄,其中BETWEEN后面是下限,AND后面是上限?!纠?1】查詢月薪在1000到1500之間的員工姓名及月薪。查詢結果包括那些月薪等于1000和月薪等于1500的記錄。運算符IN

運算符IN是用于查找某屬性值包含在指定集合內(nèi)的記錄,IN后面跟的是指定集合。

【例22】查找部門號是1或2的員工姓名及部門號。運算符LIKE(模糊查詢)

運算符LIKE可用來進行字符串的匹配,LIKE后面跟的是匹配模式。匹配模式可以是一個包含通配符“%”(百分號)和“_”(下劃線)的字符串?!?”代表任意長度(長度可以為0)的字符串。

“_”代表任意單個字符?!癧]”表示指定范圍。

【例23】查詢所有姓張員工的姓名。

【例24】查找所有2011年參加工作的員工姓名及參加工作時間。

【例25】查找姓名第2個字為“小”的員工姓名?!纠?6】查找姓為王或周并且單名的員工情況。

運算符IS[not]NULL

運算符ISNULL用來測試某個屬性值是否為空。【例27】可能有這樣的情況:新進員工暫時沒有崗位津貼,等試用期滿后再領崗位津貼。查詢沒有崗位津貼的員工姓名。【例21】

SELECTename,salFROMemployeeWHEREsalBETWEEN1000and1500【例22】

SELECTename,dept_idFROMemployeeWHEREdept_idIN('11','21')

【例23】

SELECTenameFROMemployeeWHEREenameLIKE‘張%’【例24】SELECTename,workdateFROMemployeeWHEREworkdateLIKE‘%1990%’【例25】SELECTenameFROMemployeeWHEREenameLIKE'_小%'【例26】SELECT*FROMemployeeWHEREenameLIKE'[王周]%'【例27】SELECTenameFROMemployeeWHEREcommISNULL邏輯運算符SQL語言的邏輯運算符有3種:NOT、AND、OR?!纠?8】查詢月薪超過1500的部門主管的姓名及月薪?!纠?9】查詢月薪超過1500的員工和所有部門主管的姓名及月薪?!纠?0】查找部門號不屬于1和2的員工姓名及部門號。

【例28】

SELECTename,salFROMemployeeWHEREsal>1500ANDjob=‘部門主管’【例29】

SELECTename,salFROMemployeeWHEREsal>1500ORjob=‘部門主管’【例30】

SELECTename,dept_idFROMemployeeWHEREdept_idNOTIN(‘1’,’2’)三、對查詢結果排序SQL語言中用ORDERBY子句實現(xiàn)對查詢結果的排序,可以根據(jù)包含的一列或者多列的表達式進行ASC(升序)或DESC(降序)的排列,默認值是ASC。ORDERBY子句指定的排序列可以不只一個?!纠?1】查詢所有員工的姓名及月薪,結果按月薪的降序排列?!纠?2】查詢所有員工的姓名、部門號及月薪,結果按部門號升序排列,同一部門按月薪降序排列。說明:上例中dept_id稱為主排序關鍵字,sal成為次排序關鍵字。注意:

(1)ORDERBY子句不改變基本表中行或列的順序,只改變查詢顯示的順序。

(2)ORDERBY子句指定排序的列必須出現(xiàn)在SELECT子句的列表達式中。

(3)排序是查詢語句的最后一步工作,所以ORDERBY子句一般放在查詢語句的最后?;颈碇胁幌嗤男?,經(jīng)過對某些指定列進行投影運算后,可能會變成完全相同的行,顯示結果不直觀,這時需要用DISTINCT選項消除重復的行?!纠?3】查詢表employee中的所有職位。

注意:在一個SELECT語句中DISTINCT只能出現(xiàn)一次,并且DISTINCT必須在所有列名之前,否則會發(fā)生語法錯誤。與DISTINCT選項含義相反的是A

溫馨提示

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

評論

0/150

提交評論