1. 程式人生 > >【資料庫視訊】第六章 資料查詢和管理

【資料庫視訊】第六章 資料查詢和管理

一、簡單的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] ]

  • ]

 

compute…by… 就有order…by…

十五、在where語句中使用運算子

例:Select * from 成績資訊 where 考試編號='0802' AND 課程編號=1

例:Select * from 成績資訊 where 考試編號='0802' AND (分數 between 90 and 95)