最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第四章SQLServer 2012 數(shù)據(jù)的基本操作

2019-10-04 12:47 作者:游戲理想國(guó)  | 我要投稿


一、數(shù)據(jù)的添加、修改和刪除

SQL Server 數(shù)據(jù)庫的新表建好后,表中并不包含任何記錄數(shù)據(jù),要想實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),必須向表中添數(shù)據(jù)。

  1. 選擇須要輸入數(shù)據(jù)的表,右擊然后選擇打開表。在查詢?cè)O(shè)計(jì)器的表中可以輸入新記錄,也可以修改和刪除已經(jīng)輸入的記錄。

(2)在數(shù)據(jù)的基本操作中,常用到T-SQL語句,來對(duì)數(shù)據(jù)表進(jìn)行增加,刪除,修改,和查詢等操作。

1數(shù)據(jù)的添加

向表中添加數(shù)據(jù)可以使用INSERT語句。INSERT 語句的語法格式:

INSERT [into] table_name (column_list) VALUES(data_values)

[into]是一個(gè)可選的關(guān)鍵字,可以將它用在insert和目標(biāo)表之間。

table_name是將要添加數(shù)據(jù)的表的名稱

(column_list)是要添加數(shù)據(jù)的字段名稱或字段列表,必須用括寫將column_list括起來,并用逗號(hào)進(jìn)行分隔。若沒有指字段列表,則指字全部字段。

1.2 省略values的insert語句(系統(tǒng)中不建議使用)

在T-SQL語言中,有一種簡(jiǎn)單的插入多行的方法。這種方法使用select語句查詢出的結(jié)果代替values子句.這種語法結(jié)構(gòu)如下:


INSERT [into] table_name (column_name) ?SELECT [column_name] FROMtable_name where [search_conditions]


[sheresearch] 查詢條件。

INSERT表和SELECT表的結(jié)果集的列數(shù),數(shù)據(jù)類型必須一致。

[search_conditions]查詢條件


2數(shù)據(jù)的修改

在數(shù)據(jù)輸入過程中,可能會(huì)出現(xiàn)輸入錯(cuò)誤,或是因?yàn)闀r(shí)間變化而需要更改數(shù)據(jù)。修改表中的數(shù)據(jù)可以直接打開要修改的表進(jìn)行更改表的數(shù)據(jù)?;蚴褂肨-SQL進(jìn)行修改,UPDATE的語法格式如下:


UPDATEtable_name SET ?column_name=值where[search_conditions]


table_name是需要更新的表的名稱。

SET是指定要更新的列或變量名稱的列名。







3數(shù)據(jù)的刪除

隨著系統(tǒng)的運(yùn)行,表中可能產(chǎn)生一些無用的數(shù)據(jù),這些數(shù)據(jù)不僅占用空間,而且還影響查詢的速度。刪除數(shù)據(jù)可以使用detelt語句

DELETE table_name WHERE [search_conditions]


table_name 是要從其中刪除數(shù)據(jù)的表中名稱。

WHERE 指定用于限制冊(cè)除行數(shù)據(jù)的條件。如果沒有提供 ?where子 ? ? ? ? ?

句,則delete刪除表中的所有行。

[search_conditions]指定刪除行的限定條件。


4.簡(jiǎn)單查詢

數(shù)據(jù)庫存在的意義在于將數(shù)據(jù)組織在一起,以方便查詢。

SQL語言中最主要、最核心的部分是查詢功能。查詢語句用來對(duì)已經(jīng)存在于數(shù)據(jù)庫的數(shù)據(jù)按照特定的組合、條件表達(dá)式或者一定進(jìn)檢索。其基本格式是由select子句、from子句和where子句組成的sql查詢語句:


SELECT <列表名>

FROM ?<表或視圖名>

WHERE <查詢限定條件>


也就是說,SELECT指定了要查看的列(字段),from指定這些數(shù)據(jù)

的來源(表或視圖)WHERE則指定了要查詢那些記錄


4.1、輸出表中的所有列

將表中的所有字段都在”結(jié)果”窗口列出來,可以有兩種方法:一種是將所有字段名在SELECT關(guān)鍵字后列出來;另一種是在SELECT語句后使用一個(gè)*

SELECT*FROMtable_name



列出表中的部分字段,可以在SELECT關(guān)鍵字后依次把字段名寫出來,之間用逗號(hào)隔開,字段的順序可根據(jù)需要來指定,

SELECTA,B,C FROM table_name



4.3、選擇表中的若干記錄

兩個(gè)不相同的記錄,但在某字段上是相同的如果

要去掉結(jié)果集中重復(fù)的行,可以在字段列表前面加

個(gè)DISTINCT關(guān)鍵字。

SELECTDISTINCT 列名FROM table_name


4.4、限制返回行數(shù)

如果一個(gè)表中有上億條記錄,而用戶只想看前n條,

這就沒有必要顯視全部的記錄。如果要限定返回的行數(shù),可

以在字段列表前使用TOPn關(guān)鍵字,可以返回結(jié)果的前n條記

錄信息。

SELECTTOP n ?FROM table_name

4.5、常用的查詢條件

常用的查詢條件

(1)比較大?。罕容^運(yùn)算符是比較兩個(gè)表達(dá)式的大小的運(yùn)算符,各運(yùn)算符的含義是=(等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、<>(不等于)、!=(不等于)

(2)確定范圍

 確定范圍運(yùn)算符BETWEEN…AND和NOTBETWEEN…AND…可以找屬性值在(或不在)指定的范圍內(nèi)的記錄。

(3)確定集合

確定集合運(yùn)IN和NOT IN可以用來查找屬性屬于(或不屬于)指定集合的記錄。

(4)字符匹配

在實(shí)際的應(yīng)用中,用戶有時(shí)候不能給出精確的查詢條件。因此,經(jīng)常需要根據(jù)一些不確定的信息來查詢。T-SQL語言提供了字符匹配運(yùn)算符

LIKE進(jìn)行字符串的匹配運(yùn)算。一般語法格式如下:


[NOT] LIKE ‘<匹配串>’[ESCAPE ‘<換碼字符>’]


其含義是查找匹配串,與記錄相匹配的記錄。匹配串可以是完整的字符

串,也可以含有通配符 “%”和“_”。百分號(hào),代表可包含任意長(zhǎng)度的字符串。下畫線,代表任意單個(gè)字符。

(5)涉及空值的查詢

一般情況下,表的每一列都有其存在意義,但有時(shí)某些列可能暫時(shí)沒有確定的值,這時(shí)用戶可以不輸入列的值。那么這列的值為NULL

空值運(yùn)算符IS NULL 用來判斷指定的列值是否為空。


列表達(dá)式[NOT] IS NULL

(6)多重條件查詢

可以使用邏輯運(yùn)算符AND、OR、NOT連接多個(gè)查詢條件,實(shí)現(xiàn)多條件查詢。

[NOT]邏輯表達(dá)式AND|OR

5. 完整的select語句的基本語法格式


雖然select語句的完整語法較復(fù)雜,但是其主要的語法格式可歸納如下:


SELECTselect_list

[intonew_table_name]

FROM table_list

[WHEREsearch_conditions]

[GROUPBY group_by_expression]

[HAVINGsearch_condition]

[ORDERBY ?order_expression [asc|desc] ]


SELECT select_list 描述結(jié)果集的列,它是一個(gè)逗號(hào)分隔的表達(dá)式,

在選擇列表中使用“*”表達(dá)式指定返回源表中所有的列


[INTO new_table_name] 用于指定使用結(jié)果集來創(chuàng)建一個(gè)新表,new_table_name是新表的名稱

FROMtable_list 結(jié)果集數(shù)據(jù)來源于哪些表或視圖。

[WHEREsearch_conditions]查詢條件

GROUPBY group_by_expression ? ?根據(jù)列中的值將結(jié)果分組。

HAVINGsearch_conditions 結(jié)果集附加篩選,通常與GROUPBY 一起使用。

ORDERBY ?order_expression [ASC|DESC] 對(duì)結(jié)果進(jìn)行分組ASC和DESC關(guān)鍵字用于指定行是按升序還是降序排序。


6、用查詢結(jié)果生成新表

在實(shí)際的應(yīng)用系統(tǒng)中,需要將查詢結(jié)果保存成一個(gè)表,這個(gè)

功能可以通過SELECT語句中的INTO子句實(shí)現(xiàn)。


INTO新表名


新表名是被創(chuàng)建的新表,查詢結(jié)果將自動(dòng)添加到此表中。


新表的字段由結(jié)果集中的字段列表決定。


如果表名前加“#” 則創(chuàng)建的表為臨時(shí)表。

7、對(duì)結(jié)果進(jìn)行分組

GROUPBY ?將查詢結(jié)果集按某一列或多列值分組,分組列的值相等為一組,并對(duì)每一組進(jìn)行統(tǒng)計(jì)。


GROUPBY 列名[HAVING 篩選條件表達(dá)式]


“BY 列名“是按列名指定的字段進(jìn)行分組,將該字段值相同的記錄組成一組,對(duì)每一組記錄進(jìn)行匯總計(jì)算并生成一條記錄。

“ HAVING 篩選條件表達(dá)式”表示對(duì)生成的組篩選后再對(duì)滿足條件的組進(jìn)行統(tǒng)計(jì)。


8、對(duì)查詢的結(jié)果排序


可以使用ORDERBY 對(duì)查詢結(jié)果按照一個(gè)或多個(gè)屬性進(jìn)行升序(ASC)

或降序(DESC)排序,默認(rèn)為升序。


ORDERBY {列名[ASC|DESC][,...n] }


9、對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

用戶經(jīng)常要對(duì)結(jié)果集進(jìn)行統(tǒng)計(jì),例如求和、平均值、最小

值、個(gè)數(shù)等這些統(tǒng)計(jì)可以通過集合函數(shù)、COMPUTE子

句,GROUPBY 子句來實(shí)現(xiàn)。


使用集合函數(shù)

COUNT([DISTINCT|ALL] *)統(tǒng)計(jì)記錄個(gè)數(shù)

COUNT([DISTINCT| ALL] <列名>)統(tǒng)計(jì)記錄個(gè)數(shù)。

SUM([DISTINCT| ALL] <列名>)計(jì)算一列值總和(此列必須是數(shù)值型)。

AVG([DISTINCT|ALL] <列名>)計(jì)算一列值的平均值(此列必須是數(shù)值型)。

MAX([DISTINCT| ALL] <列名>)求一列值中的最大值。

MIN([DISTINCT| ALL] <列名>)求一列值中的最小值。


10、使用COMPUTE

對(duì)查詢結(jié)果集中的所有記錄進(jìn)行匯總統(tǒng)計(jì),并顯視所有參加匯總記錄的詳細(xì)信息。


COMPUTE集合函數(shù)[BY 列名]

集合函數(shù),例如SUM() 、AVG()、COUNT()等。


“BY列名”按指定“列名”字段進(jìn)行分組計(jì)算,并顯視被統(tǒng)計(jì)記錄的詳細(xì)信息。


BY 選項(xiàng)必須與ORDERBY 一起使用。


11、合并結(jié)果集

使用UNION語句可以將查詢結(jié)果集合并為一個(gè)結(jié)果集,也就合并操作語法如下:

SELECT語句

{UNION SELECT 語句}[,…n]


參加UNION操作的各結(jié)果集的列數(shù)必須相同,對(duì)應(yīng)的數(shù)據(jù)類型也必須相同。

系統(tǒng)將自己動(dòng)去掉并集的得復(fù)記錄。


二、連接查詢

前面所講的查詢是單表查詢。若一個(gè)查詢時(shí)涉及兩個(gè)或兩個(gè)以上的表,則稱為連接查詢。連接查詢是關(guān)系數(shù)據(jù)庫中最主要的查詢,包括等值與非等值查詢、自然連接、自身連接查詢、外連接查詢和復(fù)合條件連接查詢等。交叉連接的語法格式:


SELECT列表列名FROM 表名1CROSS JOIN 表名2

CROSSJOIN ? 交叉表連接關(guān)鍵字


1、交叉連接查詢

(1) 把A表中的所有數(shù)據(jù),跟B表中的每一條數(shù)據(jù)進(jìn)行拼接,從而形成了的新的數(shù)據(jù)集

新數(shù)據(jù)集=A表所有記錄x B表所有記錄


(2)進(jìn)行拼接時(shí),加個(gè)條件語句

把學(xué)生表的每條記錄的班級(jí)代碼,與班級(jí)表的表的班級(jí)代碼進(jìn)行比較,如果列值相等,則拼接形成一條記錄,否則不拼接。


2、自然連接

用來連接兩個(gè)表的條件稱為連接條件或連接謂詞,其中,比較運(yùn)算符主要是:=、>、<、>=、<=、!=

等值連接的過程類似于交叉連接,不過它只拼接滿足連接條件的記錄到結(jié)果集中。語法格式為:


SELECT列表列名FROM 表名1JOIN 表名2

ON表名.列名=表名2.列名

SQLServer 2005
數(shù)據(jù)的基本操作

3、自身連接查詢

連接操作既可在多表之間進(jìn)行,也可以是一個(gè)表與其自己進(jìn)行連接,稱為表的自身連接。使用自身連接時(shí),必須為表指定兩個(gè)別名,以示區(qū)別。


selecta.姓名,b.性別from學(xué)生as a ?join 學(xué)生as b ?on a.學(xué)號(hào)=b.學(xué)號(hào)

4、外連接查詢

外連接的結(jié)果集不但包含滿足連接條件的行,還包括相應(yīng)表中的所有行,也就是說,即使某些行不滿足連接條件,但仍需要輸出該行記錄。外連接包括三種:左外連接、右外連接和完全外連接。


(1)左外連接(LEFTOUTER JOIN)

左外連接是結(jié)果表中除了包含滿足連接條件的記錄外,還包含左表中不滿足連接條件的記錄。左表中不滿足條件的記錄與右表記錄拼接時(shí),右表的相應(yīng)列上填充NULL值。左外連接的語法格式為:


SELECT列表列名FROM 表名1LEFT [OUTER] JOIN 表名2

ON表名1.列名=表名2.列名

(2)右外連接(LEFTOUTER JOIN)

右外連接是結(jié)果表中除了包含滿足連接條件的記錄外,還包含右表中不滿足連接條件的記錄。右表中不滿足條件的記錄與左表記錄拼接時(shí),左表的相應(yīng)列上填充NULL值。右外連接的語法格式為:


SELECT列表列名FROM 表名1RIGHT [OUTER] JOIN 表名2

ON表名1.列名=表名2.列名

(3)完全外連接(FULLOUTER JOIN)

完全外連接是結(jié)果表中除了包含滿足連接條件的記錄外,還包含右表中不滿足連接條件的記錄。左(右)表中不滿足條件的記錄與右(左)表記錄拼接時(shí),右(左)表的相應(yīng)列上填充NULL值。完全外連接的語法格式為


SELECT列表列名FROM 表名1FULL [OUTER] JOIN 表名2

ON表名1.列名=表名2.列名


5、復(fù)合連接條件查詢

前面所介紹的連接查詢中,ON連接條件表達(dá)式只有一個(gè)條件,允許ON連接表達(dá)式有多個(gè)連接條件,稱為復(fù)合條件連接,或多表連接.


SELECT學(xué)生.學(xué)號(hào),學(xué)生.姓名,學(xué)生.性別,班級(jí).班級(jí)名稱,專業(yè).專業(yè)名稱,

系部.系部名稱

FROM學(xué)生JOIN 班級(jí)ON 學(xué)生.班級(jí)代碼=班級(jí).班級(jí)代碼

JOIN 專業(yè)ON 學(xué)生.專業(yè)代碼=專業(yè).專業(yè)代碼

JOIN 系部ON 學(xué)生.系部代碼=系部.系部代碼


三、子查詢

將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語條件中的查詢叫做嵌套查詢。我們把括號(hào)內(nèi)的查詢塊稱為子查詢或內(nèi)層查詢,與之相對(duì)的概念是父查詢或外層查詢,即包含子查詢的查詢塊。SQL允許多層嵌套。但是子查詢的SELECT語句中不能使用ORDERBY 子句,ORDERBY 只能對(duì)最終查詢結(jié)果進(jìn)行排序。


1、帶有IN運(yùn)算符的子查詢(IN運(yùn)算符的子查詢返回的結(jié)果是集合)


SELECT列名FROM 表名WHERE 列名IN

(SELECT列名FROM 表名WHERE 列名IN

SELECT 列名FROM 表名WHERE 列名IN(1,2,3)

)

2、帶有比較運(yùn)算符的子查詢


父查詢與子查詢之間通過比較運(yùn)算符連接,便形成了帶有比較運(yùn)算符的子查詢。

父查詢中的一個(gè)表達(dá)式與子查詢返回的結(jié)果(單值)進(jìn)行比較

(1)帶有比較運(yùn)算符的子查詢返回的結(jié)果是單值

(2)若IN的子查詢結(jié)果集為單值,則”=”符號(hào)和IN可以互換


SELECT* FROM 表名WHERE 列名=

(SELECT列名FROM 表名WHERE 列名=‘X’)


3、帶有ANY或ALL運(yùn)算符的子查詢

子查詢返回單值時(shí)可以使用比較運(yùn)算符,而使用ANY或ALL運(yùn)算符時(shí)還必須同時(shí)使用比較運(yùn)算符,帶有ANY或ALL運(yùn)算符的子查詢的處理過程是:父查詢通過ANY或ALL運(yùn)算符將父查詢中的一個(gè)表達(dá)式與子查返回結(jié)果集中的某個(gè)值進(jìn)行比較。


4、帶有EXISTS運(yùn)算符的子查詢

使用EXISTS運(yùn)算符后,子查詢不返回任何數(shù)據(jù),此時(shí),若子查詢結(jié)果非空(即至小存在一條記錄)則父查詢的WHERE子句返回真(TRUE),否則返回假(FLASE)




第四章SQLServer 2012 數(shù)據(jù)的基本操作的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泗水县| 湖口县| 林州市| 山东省| 富宁县| 东兴市| 香格里拉县| 邯郸市| 彰武县| 文成县| 屏南县| 泰宁县| 霍山县| 济阳县| 楚雄市| 通江县| 湛江市| 丰都县| 隆安县| 大埔县| 远安县| 淮阳县| 湄潭县| 浠水县| 永泰县| 凉城县| 中西区| 贡嘎县| 连平县| 滁州市| 两当县| 济阳县| 常山县| 台中市| 兴宁市| 广元市| 玉环县| 玉树县| 卫辉市| 凉城县| 和硕县|