您好,登錄后才能下訂單哦!
插入數(shù)據(jù)
INSERT 語法結(jié)構(gòu)
INSERT [INTO] <表名> [列名] VALUES <值列表>
參數(shù)解釋
[INTO]和[列名]是可選的
<表名>是必需的
如果省略[列名],<值列表>與表中字段的順序保持一致
多個(gè)列名和多個(gè)值列表用逗號分隔
向student表中插入一行數(shù)據(jù)
insert into student (姓名,×××號,所在班級,成績)
values('王蘭', '126125199008222446', 2,90)
更新數(shù)據(jù)
UPDATE 語法結(jié)構(gòu)
UPDATE <表名> SET <列名 = 更新值> [WHERE <更新條件>]
參數(shù)解釋
WHERE子句是可選的,用來限制條件
如果省略WHERE字句,表中所有數(shù)據(jù)行將被更新
更改student表中王蘭的成績?yōu)?5,備注為“勤奮好學(xué)”
update student set 成績='95',備注='勤奮好學(xué)‘ where 姓名='王蘭'
刪除數(shù)據(jù)
DELETE 語法結(jié)構(gòu)
DELETE FROM <表名> [WHERE <刪除條件>]
參數(shù)解釋
WHERE子句是可選的,用來限制刪除條件
如果省略WHERE字句,表中所有數(shù)據(jù)行將被刪除
Truncate Table語法結(jié)構(gòu)
Truncate table <表名>
刪除表中的所有行
條件刪除 | 記錄事物日志 | 重置標(biāo)識符列 | 外鍵約束 | |
Delete | 使用where子句按條件刪除 | 是,數(shù)據(jù)可以恢復(fù) | 否 | 可以用于含有外鍵約束的表 |
Truncate table | 只能清空整個(gè)表 | 否,數(shù)據(jù)無法恢復(fù) | 重置標(biāo)識符列為0 |
Truncate Table執(zhí)行速度更快,用于清空大數(shù)據(jù)量表
在執(zhí)行Truncate Table前要確保數(shù)據(jù)可刪除
SQL和T-SQL
SQL(結(jié)構(gòu)化查詢語言)
關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言
SQL Server、 Oracle、DB2
非過程化語言
不需要指定對數(shù)據(jù)的存放方法
統(tǒng)一的語言
創(chuàng)建、修改以及刪除數(shù)據(jù)對象(數(shù)據(jù)庫、表等)
T-SQL
SQL的加強(qiáng)版, 提供了類似于程序語言的基本功能
變量說明、流程控制、功能函數(shù)
T-SQL的組成
DML:數(shù)據(jù)操縱語言
查詢、插入、刪除和修改數(shù)據(jù)
SELECT、INSERT、UPDATE、DELETE
DDL:數(shù)據(jù)定義語言
建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義其列
CREATE、ALTER、DROP
DCL:數(shù)據(jù)控制語言
控制數(shù)據(jù)庫組件的存取許可、存取權(quán)限等
GRANT、REVOKE
SELECT語法結(jié)構(gòu)
SELECT select_list
[INTO new_table_name]
FROM table_name
[ WHERE search_conditions ]
[GROUP BY group_by_expression] [HAVING search_conditions]
[ORDER BY order_expression [ASC|DESC] ]
參數(shù)解釋
SELECT子句:指定查詢內(nèi)容
INTO子句:把查詢結(jié)果存放到一個(gè)新表中
FROM子句:指定查詢源
WHERE子句:查詢條件
GROUP BY子句:指定查詢結(jié)果的分組條件
HAVING子句:指定分組搜索條件,與GROUP BY子句一起使用
ORDER BY子句:指定查詢結(jié)果的排序方式
表達(dá)式
條件表達(dá)式
常量:表示單個(gè)指定數(shù)據(jù)值的符號
字母、數(shù)字或符號
列名:表中列的名稱
一元運(yùn)算符:僅有一個(gè)操作數(shù)的運(yùn)算符
“+”表示正數(shù),“-”表示負(fù)數(shù)
二元運(yùn)算符:將兩個(gè)操作數(shù)組合執(zhí)行操作的運(yùn)算符
算術(shù)運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符
運(yùn)算符含義
=等于
>大于
<小于
>=大于或等于
<=小于或等于
<>不等于
!=不等于
BETWEEN指定值的包含范圍(包含邊界)。使用 And 分隔開始值和結(jié)束值
IS [Not] NULL指定是否搜索空值或非空值
LIKE模糊查詢,與指定字符串進(jìn)行模式匹配
IN是否在數(shù)據(jù)范圍里面
條件表達(dá)式舉例
PRICE > 20,表示滿足大于20的PRICE值
PRICE <> 20,表示滿足不等于20的PRICE值
PRICE Between 10 And 20,表示滿足大于等于10并且小于等于20的PRICE值
NAME Like '李%',表示滿足NAME姓名字段里姓李的所有姓名
邏輯表達(dá)式
用邏輯運(yùn)算符將條件連接起來,運(yùn)算結(jié)果是一個(gè)邏輯值
TRUE或FALSE
邏輯運(yùn)算符
運(yùn)算符含義
AND組合兩個(gè)條件,并在兩個(gè)條件都為True時(shí)取值為True
OR組合兩個(gè)條件,并在兩個(gè)條件之一為 True 時(shí)取值為True
NOT和其他操作符一起使用,取反的操作
邏輯表達(dá)式舉例
付款方式為信用卡,并且只能是牡丹卡、金穗卡或龍卡
付款方式 = ‘信用卡’ AND 信用卡 in (‘牡丹卡’, ‘金穗卡’, ‘龍卡’)
查詢舉例——查詢列
查詢表中所有列
SELECT * FROM table_name
查詢student 表中的所有學(xué)生信息
SELECT * FROM student
查詢表中特定列
SELECT column_name_1,column_name_2,... FROM table_name
查詢student表中姓名、所在班級、成績列的內(nèi)容
SELECT 姓名,所在班級,成績 FROM student
查詢舉例——查詢特定行
語法結(jié)構(gòu)
SELECT select_list FROM table_name WHERE search_conditions
查詢student表中2班的名叫劉婷的學(xué)生
SELECT * FROM student WHERE 姓名='劉婷' AND 所在班級=2
查詢student表中成績在90到100的所有學(xué)生
SELECT * FROM student WHERE 成績 BETWEEN 90 AND 100
查詢student表中姓劉的所有學(xué)生
SELECT * FROM student WHERE 姓名 LIKE '劉%'
查詢student表中備注不為空的所有學(xué)生
SELECT * FROM student WHERE 備注 is NOT NULL
查詢舉例——查詢返回限制的行數(shù)
語法結(jié)構(gòu)
SELECT TOP n select_list FROM table_name
參數(shù)解釋
TOP關(guān)鍵字用來限制查詢返回的行數(shù),n為需要返回的行數(shù)
查詢student表中前5行的數(shù)據(jù)
SELECT top 5 * FROM student
查詢舉例——改變查詢結(jié)果集列名稱
語法結(jié)構(gòu)
SELECT column_name AS column_alias FROM table_name
參數(shù)解釋
AS子句用來改變結(jié)果集列的名稱
查詢student表中姓名和×××號兩列數(shù)據(jù)
SELECT 姓名 AS name,×××號 as idcard FROM student
查詢舉例——查詢結(jié)果排序
語法結(jié)構(gòu)
SELECT select_list FROM table_name ORDER BY column_name [ASC|DESC]
參數(shù)解釋
ASC:升序
DESC:降序
查詢student表中學(xué)生信息,按照成績從高到低顯示結(jié)果
SELECT * FROM student order by 成績 DESC
查詢舉例——聚合函數(shù)
用于對一組值執(zhí)行計(jì)算,并返回單個(gè)值
如求總和、平均值、最大或最小值等
SUM:求總和
查詢student表中所有學(xué)生的總成績
SELECT SUM(成績) 總成績 FROM student
AVG:求平均數(shù)
查詢student表中所有學(xué)生的平均成績
SELECT AVG(成績) 平均成績 FROM student MAX和MIN:返回最大最小值
查詢student表中所有學(xué)生中的最高分和最低分
SELECT MAX(成績) 最高分,MIN(成績) 最低分 FROM student
COUNT:返回非空值的計(jì)數(shù)
查詢student表中所有行數(shù)
SELECT COUNT(*) 總行數(shù) FROM student
查詢舉例——分組查詢
語法結(jié)構(gòu)
SELECT select_list FROM table_name GROUP BY column_name
HAVING search_conditions
參數(shù)解釋
GROUP BY子句對查詢結(jié)果進(jìn)行分組
HAVING子句指定分組搜索條件
查詢student表中每個(gè)班級的總成績
SELECT 所在班級,SUM(成績) AS 總成績 FROM student GROUP BY 所在班級
查詢student表中總成績大于200的班級
SELECT 所在班級,SUM(成績) AS 總成績 FROM student GROUP BY 所在班級 HAVING SUM(成績)>200
WHERE子句和 HAVING子句的區(qū)別
WHERE子句在分組之前過濾數(shù)據(jù),條件中不能包含聚合函數(shù)
HAVING子句在分組之后過濾數(shù)據(jù),條件中經(jīng)常包含聚合函數(shù)
查詢舉例——插入數(shù)據(jù)
語法結(jié)構(gòu)
SELECT select_list INTO new_table_name FROM table_name
參數(shù)解釋
INTO子句把一個(gè)表中的數(shù)據(jù)經(jīng)過篩選插入到另一個(gè)表中
將student表的數(shù)據(jù)插入到新表student_bak中
SELECT * INTO student_bak FROM student
將student表中2班的學(xué)生信息保存到表student_2中
SELECT * INTO student_2 FROM student WHERE 所在班級=2
表的連接類型
內(nèi)連接(INNER JOIN)
只返回兩個(gè)數(shù)據(jù)集合之間匹配關(guān)系的行
外連接
左外連接(LEFT JOIN )
結(jié)果集包括左表的所有行
右外連接(RIGHT JOIN )
結(jié)果集包括右表的所有行
完整外連接(FULL JOIN)
返回左表和右表中的所有行
交叉連接
返回左表與右表挨個(gè)連接的所有行
內(nèi)連接
方式一:在Where子句中指定連接條件
SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,B.job 職業(yè)B FROM A,B WHERE A.name=B.name
方式二:在FROM子句中使用INNER JOIN…ON子句
SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,B.job 職業(yè)B FROM A inner join B on A.name=B.name
左外連接和右外連接
左外連接查詢
SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A left join B on A.name=B.name
右外連接查詢
SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A right join B on A.name=B.name
完整外連接查詢
SELECT A.name 姓名A,A.school 學(xué)校A,B.name 姓名B,job 職業(yè)B FROM A full join B on A.name=B.name
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。