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