作者簡(jiǎn)介:一名云計(jì)算網(wǎng)絡(luò)運(yùn)維人員、每天分享網(wǎng)絡(luò)與運(yùn)維的技術(shù)與干貨。?
公眾號(hào):網(wǎng)絡(luò)豆
?座右銘:低頭趕路,敬事如儀
個(gè)人主頁(yè):?網(wǎng)絡(luò)豆的主頁(yè)?????
目錄
寫(xiě)在前面
介紹
一.SQL簡(jiǎn)介
1.SQL和T-SQL
2.T-SQL的組成
二.使用T-SQL語(yǔ)句操作數(shù)據(jù)表
1.插入數(shù)據(jù)
2.更新數(shù)據(jù)
?編輯 3.刪除數(shù)據(jù)
(1)DELETE語(yǔ)句
(2)Truncate Table語(yǔ)句
(3)Delete和Truncate table區(qū)別
三.使用使用T-SQL語(yǔ)句查詢(xún)數(shù)據(jù)
1.select 語(yǔ)法結(jié)構(gòu)
2.條件表達(dá)式
3.邏輯表達(dá)式
4.查詢(xún)列
?5.改變查詢(xún)結(jié)果集列名稱(chēng)
6.查詢(xún)結(jié)果排序
7.使用SELECT生成新數(shù)據(jù) ?
寫(xiě)在前面
本系列文章將會(huì)講解SQL server 中 server T-SQL查詢(xún)語(yǔ)句,并且會(huì)同步視頻進(jìn)行安裝講解。
視頻教程:T-SQL查詢(xún)語(yǔ)句教程
前期回顧:Windows server 2016——SQL server 數(shù)據(jù)庫(kù)和表的管理
介紹
SQL Server是由微軟公司開(kāi)發(fā)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),現(xiàn)在是全世界主流數(shù)據(jù)庫(kù)之一。它具備方便使用、可伸縮性好、相關(guān)軟件集成程度高等優(yōu)勢(shì),能夠從單一的筆記本上運(yùn)行或以高倍云服務(wù)器集群為基礎(chǔ),或在這兩者之間任何一種方式上運(yùn)行。
一.SQL簡(jiǎn)介
1.SQL和T-SQL
SQL (結(jié)構(gòu)化查詢(xún)語(yǔ)言)
- 關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言
- 非過(guò)程化語(yǔ)言
- 統(tǒng)一的語(yǔ)言
T-SQL是Transact-SQL的縮寫(xiě),是SQL在Microsoft SQL Server上的增強(qiáng)版,它是用來(lái)讓?xiě)?yīng)用程序與SQL Server溝通的主要語(yǔ)言。T-SQL提供標(biāo)準(zhǔn)SQL的DDL和DML功能,加上延伸的函數(shù)、系統(tǒng)預(yù)存程序以及程式設(shè)計(jì)結(jié)構(gòu)(例如 IF 和 WHILE)讓程式設(shè)計(jì)更有彈性。
2.T-SQL的組成
DML:數(shù)據(jù)操縱語(yǔ)言
- 查詢(xún),插入,刪除和修改數(shù)據(jù)
DDL:數(shù)據(jù)定義語(yǔ)言
- 建立數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)對(duì)象和定義其列
DCL:數(shù)據(jù)控制語(yǔ)言
- 控制數(shù)據(jù)庫(kù)組件的存儲(chǔ)許可,儲(chǔ)存權(quán)限等
二.使用T-SQL語(yǔ)句操作數(shù)據(jù)表
1.插入數(shù)據(jù)
insert [INTO] <表名> [列名] values <值列表>
# 可選 必須 可選
- 如果省略[列名],<值列表>與表中字段的順序保持一致
- 多個(gè)列名和多個(gè)值列表用逗號(hào)分隔
例:
向employee表中插入一行數(shù)據(jù)
insert into employee (姓名, 身份證號(hào), 職務(wù), 出生日期, 基本工資)
VALUES ('郭靖', '111222333444555666',
'運(yùn)維工程師, '1995/1/1', 8000)
2.更新數(shù)據(jù)
UPDATE <表名> SET <列名 = 更新值> [WHERE <更新條件>]
# 可選,用來(lái)限制更新條件
- ?如果省略WHERE字句,表中所有數(shù)據(jù)行將被更新
例:
更改employee表中黃蓉的基本工資為11000
update employee SET 基本工資='11000'
WHERE 姓名='黃蓉'
3.刪除數(shù)據(jù)
(1)DELETE語(yǔ)句
DELETE FROM <表名> [WHERE <刪除條件>]
# 可選的, 用來(lái)限制刪除條件
- 如果省略WHERE字句,表中所有數(shù)據(jù)行將被刪除
例:
刪除employee表中楊過(guò)的記錄
DELETE FROM employee WHERE 姓名='楊過(guò)'
(2)Truncate Table語(yǔ)句
Truncate table <表名>
?例:
刪除employee表中的所有記錄行
Truncate table employee
(3)Delete和Truncate table區(qū)別
條件刪除 |
記錄事物日志 |
重置標(biāo)識(shí)符列 |
外鍵約束 |
|
Delete |
使用where子句按條件刪除 |
是,數(shù)據(jù)可以恢復(fù) |
否 |
可以用于含有外鍵約束的表 |
Truncate table |
只能清空整個(gè)表 |
否,數(shù)據(jù)無(wú)法恢復(fù) |
重置標(biāo)識(shí)符列為0 |
不能用于含有外鍵約束的表 |
- Truncate Table執(zhí)行速度更快,用于清空大數(shù)據(jù)量表
- 在執(zhí)行Truncate Table前要確保數(shù)據(jù)可刪除
三.使用使用T-SQL語(yǔ)句查詢(xún)數(shù)據(jù)
1.select 語(yǔ)法結(jié)構(gòu)
SELECT select_list 指定查詢(xún)內(nèi)容
[INTO new_table_name] 把查詢(xún)結(jié)果存放到一個(gè)新表中
FROM table_name 指定查詢(xún)?cè)?
[ WHERE search_conditions ] 指定查詢(xún)條件
[GROUP BY group_by_expression] 指定查詢(xún)結(jié)果的分組條件
[HAVING search_conditions] 指定分組搜索條件,與GROUP BY子句一起使用
[ORDER BY order_expression [ASC|DESC] ] 指定查詢(xún)結(jié)果的排序方式
2.條件表達(dá)式
- 不等于:<>或!=
- 指定值包含的范圍:between... and .….
- 是否為空:isnull
- 模糊查詢(xún):like ,常與通配符%和_使用。
- 在數(shù)據(jù)范圍里面:in()
比較運(yùn)算符 |
含義 |
= |
等于 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
<> |
不等于 |
!= |
不等于 |
BETWEEN |
指定值的包含范圍(包含邊界),使用 And 分隔開(kāi)始值和結(jié)束值 |
IS [Not] NULL |
指定是否搜索空值或非空值 |
LIKE |
模糊查詢(xún),與指定字符串進(jìn)行模式匹配 |
IN |
是否在數(shù)據(jù)范圍里面 |
3.邏輯表達(dá)式
用邏輯運(yùn)算符將條件連接起來(lái)
運(yùn)算結(jié)果是一個(gè)邏輯值
- TRUE 或 FALSE
邏輯運(yùn)算符 |
含義 |
AND |
組合兩個(gè)條件,并在兩個(gè)條件都為T(mén)rue時(shí)取值為T(mén)rue |
OR |
組合兩個(gè)條件,并在兩個(gè)條件之一為 True 時(shí)取值為T(mén)rue |
NOT |
和其他操作符一起使用,取反的操作 |
4.查詢(xún)列
查詢(xún)表中所有列
SELECT * FROM table_name
查詢(xún)employee 表中的所有員工信息、
SELECT * FROM employee
例:
查詢(xún)employee表中姓名、職務(wù)、基本工資列的內(nèi)容
SELECT 姓名,職務(wù),基本工資 FROM employee
?查詢(xún)表中特定行——?條件查詢(xún)
SELECT select_list FROM table_name WHERE search_conditions
例:
查詢(xún)所有運(yùn)維工程師的姓名
SELECT 姓名 FROM employee WHERE 職務(wù)=’運(yùn)維工程師’
查詢(xún)基本工資為8000~10000的員工所有信息
SELECT * FROM employee
WHERE 基本工資 BETWEEN 8000 AND 10000
?查詢(xún)基本工資<10000或>20000的員工所有信息
SELECT * FROM employee
WHERE 基本工資<10000 OR 基本工資>20000
?查詢(xún)基本工資為8000、9000和1000的員工所有信息
SELECT * FROM employee WHERE 基本工資 IN (8000,9000,10000)
?查詢(xún)身份證號(hào)以66開(kāi)頭的員工所有信息
SELECT * FROM employee WHERE 身份證號(hào) LIKE “66%”
?查詢(xún)姓楊的運(yùn)維工程師的信息
SELECT * FROM employee
WHERE 姓名 LIKE '楊%' AND 職務(wù)=’運(yùn)維工程師’
?查詢(xún)備注不為空的員工所有信息
SELECT * FROM employee WHERE 備注 is not NULL
查詢(xún)employee表中前5行的數(shù)據(jù)?
SELECT top 5 * FROM employee
?5.改變查詢(xún)結(jié)果集列名稱(chēng)
SELECT column_name AS column_alias FROM table_name
# 改變結(jié)果集的列名稱(chēng)
列:
查詢(xún)employee表中姓名和身份證號(hào)兩列數(shù)據(jù)
SELECT 姓名 AS name, 身份證號(hào) as idcard FROM employee
6.查詢(xún)結(jié)果排序
SELECT select_list
FROM table_name
ORDER BY column_name [ ASC | DESC ]
# 升序 降序
默認(rèn)是升序(ASC)排列?
例:
查詢(xún)employee表中所有員工信息,按照基本工資從高到低顯示查詢(xún)結(jié)果
SELECT * FROM employee ORDER BY 基本工資 DESC
查時(shí)去重
SELECT DISTINCT column_name FROM table_name
查詢(xún)employee表中員工的所有職務(wù)?
SELECT DISTINCT 職務(wù) FROM employee
7.使用SELECT生成新數(shù)據(jù) ?
SELECT select_list INTO new_table_name #把一個(gè)表中的數(shù)據(jù)經(jīng)過(guò)篩選插入到另一個(gè)表中
FROM table_name
例:
將employee表中所有員工的姓名、身份證號(hào)和職務(wù)生成一個(gè)新表new01
SELECT 姓名,身份證號(hào),職務(wù) INTO new01 FROM employee
使用UNION關(guān)鍵字
INSERT INTO table-name [column_name]
SELECT select_list1 UNION
SELECT select_list2 UNION
……
SELECT select_listn
UNION 將多個(gè)不同的數(shù)據(jù)或查詢(xún)結(jié)果合并成一個(gè)新的結(jié)果集
將employee表中所有員工的姓名、職務(wù)和出生日期,以及新輸入2名員工相關(guān)信息,一起保存到新表new03
INSERT INTO new03 (姓名,職務(wù),出生日期)
SELECT '歐陽(yáng)鋒','人事經(jīng)理','1988-08-08' UNION
SELECT '一燈','財(cái)務(wù)經(jīng)理','1977-07-07' UNION
SELECT 姓名,職務(wù),出生日期 FROM employee
實(shí)戰(zhàn)案例文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-698802.html
素材:SQL server 2008 素材文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-698802.html
- 3、查詢(xún)employee 表中的所有員工信息
- 4、查詢(xún)employee表中姓名、職務(wù)、基本工資列的內(nèi)容
- 5、查詢(xún)所有運(yùn)維工程師的姓名
- 6、查詢(xún)基本工資為8000~10000的員工所有信息
- 7、查詢(xún)基本工資<10000或>20000的員工所有信息
- 8、查詢(xún)基本工資為8000、9000和1000的員工所有信息
- 9、查詢(xún)身份證號(hào)以66開(kāi)頭的員工所有信息
- 10、查詢(xún)姓楊的運(yùn)維工程師的信息
- 11、查詢(xún)備注不為空的員工所有信息
- 12、查詢(xún)employee表中前5行的數(shù)據(jù)
- 13、查詢(xún)employee表中“姓名”和“身份證號(hào)”兩列數(shù)據(jù),查詢(xún)結(jié)果“姓名”列名稱(chēng)顯示為“name”,“身份證號(hào)”列名稱(chēng)顯示為“idcard”
- 14、查詢(xún)employee表中所有員工信息,按照基本工資從高到低顯示查詢(xún)結(jié)果
- 15、查詢(xún)employee表中有哪些職務(wù)(去除重復(fù)的職務(wù))
- 16、在employee表中列出滿足身份證號(hào)的左起第三位是0、除CTO以外的,所有員工的姓名、身份證號(hào)、職務(wù)和基本工資,其中姓名字段顯示為name,查詢(xún)結(jié)果按照基本工資的由高到低排列。
- 17、將employee表中所有員工的姓名、身份證號(hào)和職務(wù)生成一個(gè)新表new01
- 18、將employee表中所有基本工資大于等于15000的員工的姓名、職務(wù)和出生日期保存到新表new02。(提前先創(chuàng)建表new02)
- 19、將employee表中所有員工的姓名、職務(wù)和出生日期,以及新輸入2名員工相關(guān)信息,一起保存到新表new02。(提前先創(chuàng)建表new02)
- 新輸入的2名員工信息如下:
- ?? ?'歐陽(yáng)鋒','人事經(jīng)理','1988-08-08'
- ?? ?'一燈','財(cái)務(wù)經(jīng)理','1977-07-07'
到了這里,關(guān)于Windows server 2016——SQL server T-SQL查詢(xún)語(yǔ)句的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!