CH2-數(shù)據(jù)查詢-簡單查詢_第1頁
CH2-數(shù)據(jù)查詢-簡單查詢_第2頁
CH2-數(shù)據(jù)查詢-簡單查詢_第3頁
CH2-數(shù)據(jù)查詢-簡單查詢_第4頁
CH2-數(shù)據(jù)查詢-簡單查詢_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)查詢

劉國柱聯(lián)系方式Liu_guozhu@1 目錄

1.T-SQL語言簡介與分類

2.T-SQL語法要素

3.簡單查詢

4.查詢統(tǒng)計與創(chuàng)建查詢結(jié)果集

5.連接查詢

6.子查詢2NO:1T-SQL語言簡介

與分類3T-SQL語言簡介與分類

SQL(StructuredQueryLanguage)由Boyce和chamberlin在1974年提出

1986年9月ANSI公布了SQL-861989年公布了SQL-89,92年公布了SQL-924T-SQL語言簡介與分類

-SQL語言分類數(shù)據(jù)定義語句(DDL)數(shù)據(jù)控制語句(DCL)數(shù)據(jù)操作語句(DML)5NO:2T-SQL語法要素6T-SQL語法要素

-標識符標識符是指用戶在SQLServer中標識服務器、數(shù)據(jù)庫、數(shù)據(jù)庫對象、變量、列等對象的名稱7T-SQL語法要素

-常規(guī)標識符

1~128個字符以字母、_、@、#開頭

@為局部變量或參數(shù),@@為全局變量,#為臨時表或存儲過程,##為全局臨時對象,臨時對象的名字不能超過116個字符第一個字符后可以是字母、數(shù)字、#,$,@,_

不能是保留字符8T-SQL語法要素

-識別數(shù)據(jù)類型數(shù)據(jù)類型是列、存儲過程、表達式和局部變量的數(shù)據(jù)特征,它決定數(shù)據(jù)的存儲格式,代表不同的信息類型。分為兩類:系統(tǒng)數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型9數(shù)據(jù)類型名定義標識日期時間型Datatime,smalldatetime整數(shù)型Int,smallint,tinyint,bigint精確數(shù)值型Decimal,numeric浮點數(shù)值型Float,real貨幣型Money,smallmoney位型Bit字符型Char,varchar,textUnicode型Nchar,nvarchar,ntext二進制數(shù)據(jù)型Binary,varbinary,image特殊數(shù)據(jù)類型Cursor,uniqueidentifier,timestamp,xml10T-SQL語法要素

數(shù)據(jù)類型-日期時間型Datetimesmalldatetime長度8字節(jié)4字節(jié)范圍1753/1/1~9999/12/311900/1/1~2079/6/6精度1/300秒分鐘11T-SQL語法要素

數(shù)據(jù)類型-整數(shù)型IntSmallinttinyint長度4字節(jié)2字節(jié)1字節(jié)范圍-2147483648~2147483647-32768~327670~25512T-SQL語法要素

數(shù)據(jù)類型-精確數(shù)據(jù)型

Decimal和numeric完全一樣,范圍:-1038~1038-1

定義:decimal(p,[s])P為精度,包括小數(shù)和整數(shù)部分,s為小數(shù)位數(shù)13T-SQL語法要素

數(shù)據(jù)類型-貨幣型

Moneysmallmoney長度8字節(jié)4字節(jié)范圍-922,337,203,685,477.5808~922,337,203,685,477.5807-214,784.3648~214,784.3647精度1/10000單位14T-SQL語法要素

數(shù)據(jù)類型-位型取值為1,00以外的被認為1

15T-SQL語法要素

數(shù)據(jù)類型-字符型CharVarchartext范圍1~80001~8000231-1個以內(nèi)長度定長不定長不定長16T-SQL語法要素

數(shù)據(jù)類型-Unicode型新增類型,用于支持非英語語種與char,varchar,text對應,有nchar,nvarchar,ntext,每個字符為2字節(jié)17T-SQL語法要素

SQLServer常用的數(shù)據(jù)類型

intfloat

char

varchar18T-SQL語法要素

-運算符算術(shù)運算符+,-,*,/,%

位運算符&,|,^,~

比較運算符>,<,=,>=,<=,!=,<>,!>,!<

邏輯運算符and,or,not,[not]between,[not]like,[not]in19T-SQL語法要素

-注釋語句行注釋:--

塊注釋:/*…….*/20NO:3簡單查詢21簡單查詢

-查詢的語法結(jié)構(gòu)SELECT[ALL|DISTINCT]select_column_list

[INTO[new_table_name]]FROM{table_name|view_name}[WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]][COMPUTE{{AVG|COUNT|MAX|MIN|SUM}(expression)}[,...n][BYexpression[,...n]]22簡單查詢-語法說明

select_column_list:選擇列表,指出查詢結(jié)果集合中的列數(shù)和屬性

into:說明用查詢結(jié)果集合構(gòu)造一個新表

From:指出查詢的表和各表的關(guān)系

Where:指出查詢條件

Orderby:說明查詢結(jié)果集合的排序順序

Groupby,having,compute:說明查詢結(jié)果集合的統(tǒng)計方法23簡單查詢

簡單查詢只包括選擇列、from子句和where子句,分別說明所查詢的列、查詢的表或視圖,及搜索的條件24簡單查詢-查詢所有列語法:

select*from表名示例:

將HumanResources.Employee表的所有記錄顯示出來25簡單查詢-選擇部分列,并指定顯示次序語法:selectcolumn_listfrom表名示例:

將HumanResources.Employee表中的

EmployeeID,LoginID兩個字段的值列出26簡單查詢-可以更改列標題的名稱兩種方式:列標題(結(jié)果集中顯示的列名)=列名列名列標題(結(jié)果集中顯示的列名)示例:顯示HumanResources.Department表的DepartmentID,Name字段,需要顯示中文含義作為輸出列名.27簡單查詢-可對數(shù)值列進行算術(shù)運算

selectEmployeeID,Rate,'日薪'=Rate*8fromHumanResources.EmployeePayHistory

注:空值的算術(shù)運算仍為空28簡單查詢-刪除重復行使用distinct刪除重復行,空值也互相看作重復行,多個空值只返回一行語法:Selectdistinct列名from表名例:

selectdistinct

Titlefrom

HumanResources.Employee

29簡單查詢-限制返回的行數(shù)語法:

Select[topn[percent]]column_name[,coulumn_name…]fromtable_name30簡單查詢-限制返回的行數(shù)(續(xù))講解返回前2個結(jié)果Selecttop2*fromHumanResources.Employee

返回前20%個結(jié)果Selecttop20percent*fromHumanResources.Employee31簡單查詢-使用where子句使用where子句設置查詢條件,過濾掉不需要檢索的數(shù)據(jù)行語法:Selectcolumn_listfromtable_namewhereexpressionlist_perator(‘value_list’)說明:expressionlist_perator(‘value_list’):條件表達式32簡單查詢-使用where子句示例顯示HumanResources.Department表中GroupName字段的值為”ResearchandDevelopment”的記錄.33

運算符分類運算符意義比較運算符=,>,<,>=,<=,<>,!=,!<,!>大小比較范圍運算符Between…and判斷表達式的值是否在指定范圍內(nèi)Notbetween…and列表運算符In判斷表達式值是否為列表中的指定值)Notin模式匹配符Like判斷列值是否與指定的字符通配格式相符Notlike空值判斷符isnull判斷表達式是否為空isNotnull邏輯運算符Not用于多條件的邏輯連接Andor操作符34簡單查詢-使用where子句比較運算符:=,>,<,>=,<=,<>,!=,!<,!>

使用HumanResources.Employee表,查詢出休假時間超出20小時的記錄.

35簡單查詢-使用where子句范圍運算符:

(Not)between…and

使用HumanResources.Employee表,查詢出休假時間大于20且小于80的記錄.

使用HumanResources.Employee表,查詢出休假時間小于20或大于80的記錄.36簡單查詢-使用where子句列表運算符In(Notin)

使用HumanResources.Employee表,查詢出title包含”MarketingAssistant”與”ToolDesigner”內(nèi)容的記錄.37簡單查詢-使用where子句模式匹配符

Like(notlike) %可匹配任意類型和長度的字符

_可匹配單個任意字符

[]指定一個字符、字符串或范圍

[^]與[]相反38簡單查詢-使用where子句使用HumanResources.Employee表,查詢出Title字段中頭兩個字母為”Pr”的所有記錄集合.

使用HumanResources.Employee表,查詢出Title字段中頭兩個字母不是”Pr”的所有記錄集合.39簡單查詢-使用where子句使用HumanResources.Employee表,查詢出ManagerID字段中頭1個字母為”1”的所有記錄集合.

使用HumanResources.Employee表,查詢出所有男雇員.

40簡單查詢-使用where子句空值判斷符Is(not)null

空值與任何數(shù)據(jù)運算或比較時,其結(jié)果仍為空,空值之間也不能匹配。所以where子句不能使用比較運算符對空值進行比較判斷示例:使用EmployeeDepartmentHistory表查找出”EndDate”字段不為空的記錄.41簡單查詢-使用where子句邏輯運算符要特別注意括號的使用

notandor

多數(shù)情況為配合其他操作符同時使用.42簡單查詢-查詢結(jié)果排序

Orderby子句對查詢結(jié)果按一列或多列進行排序格式:selectcolumn_listfromtable_name[where…..]orde

溫馨提示

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

評論

0/150

提交評論