【資料庫視訊】第六章 資料查詢和管理
阿新 • • 發佈:2018-11-28
一、簡單的SELECT語句
語法格式:
-
SELECT [ALL|DISTINCT] select_list
-
[INTO new_table]
-
FROM table_source
-
[WHERE search_conditions]
-
[GROUP BY group_by_expression]
-
[HAVING search_conditions]
-
[ORDER BY order_expression[ASC|DESC]]
DISTINCT:避免重複
二、設定查詢條件
操作
三、排序
①SELECT * FROM 成績資訊 where 考試編號='0801' AND 課程編號='1'
ORDER BY 分數,學生編號 [ASC|DESC] 分數是預設狀態,升序排序
②SELECT * FROM 成績資訊 where 考試編號='0801' AND 課程編號='1'
ORDER BY 分數 DESC,學生編號 學生編號是預設狀態,升序排序
四、分組
①SELECT 課程編號,AVG(分數) FROM 成績資訊 WHERE 考試編號='0801' GROUP BY rollup (課程編號)
②SELECT 課程編號,AVG(分數) FROM 成績資訊 WHERE 考試編號='0801' GROUP BY cube (課程編號)
五、使用函式
取最大值:SELECT MAX(分數) FROM 成績資訊 WHERE 考試編號='0801' AND 課程編號='2'
取最小值:SELECT MIN(分數) FROM 成績資訊 WHERE 考試編號='0801' AND 課程編號='2'
取平均值:SELECT AVG(分數) FROM 成績資訊 WHERE 考試編號='0801' AND 課程編號='2'
求和:SELECT SUM(分數) FROM 成績資訊 WHERE 考試編號='0801' AND 課程編號='2'
降序排序:SELECT TOP 3 分數 FROM 成績資訊 WHERE 考試編號='0801' AND 課程編號='2'
ORDER BY 分數 DESC
六、使用HAVING子句
注意:只有查詢中包含GROUP BY子句時才能使用
SELECT 考試編號,課程編號,AVG(分數) FROM 成績資訊 GROUP BY 考試編號,課程編號
HAVING AVG(分數)>=90
ORDER BY 考試編號
七、插入資料
INSERT語法
-
INSERT [INTO] table_or_view [(column_list)] VALUES data_values
data_values用於指定向資料表中插入的資料值
八、INSERT…SELECT語句
-
INSERT table_name[column_list]
-
SELECT column_list
-
FROM table_list
-
WHERE search_condirions
九、SELECT…INTO語句
-
SELECT <select_list>
-
INTO new_table
-
FROM 表
-
WHERE
與INSERT…SELECT的區別:會新建一個數據表,把結果集儲存到該表中
-
select *
-
into #student 臨時表
-
from student_Info
-
where student_Sex='男'
十、UPDATE語句
-
UPDATE 函式(例:TOP) {table_name|view_name}
-
SET
-
{column_name={expression|DEFAULT|NULL}|@variable=expression}[,…n]
-
WHERE{search_conditions}
十一、在UPDATE語句使用FROM子句
例: select * from studentInfo
update studentInfo set s_sex=b.性別,s_address =b.家庭住址,s_id=b.學號
from studentInfo a join 學生資訊 b on a.s_name=b.姓名
where b.student_Sex='女'
十二、DELETE語句
-
Delete from<table name>
-
[Where <search condition>]
十三、TOP關鍵字和TOP表示式
-
[
-
TOP (expression) [PERCENT]
-
[WITH TIES]
-
]
兩種方式:具體數值;百分比
例:
declare @i int
set @I=2
select top (6) with ties * from result_Info ORDER BY result
例:
declare @i int
set @I=2
select top (6) with ties * from result_Info ORDER BY result
update student_Info set 民族='滿族'
select * from student_Info
十四、COMPUTE子句
-
[
-
COMPUTE
-
{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM }
-
(expression) } [,…n]
-
[ BY expression [,…n] ]
-
]