SQL基礎語句入門( 三 )

order by子句可以讓查詢結果中的元組按排列順序顯示 。
例如,升序輸出student關系中的學生id
SELECT Sid FROM student ORDER BY Sid;該子句還有兩個關鍵字,asc表示升序,desc表示降序
接下來進行降序輸出
SELECT Sid FROM student ORDER BY Sid DESC;between謂詞X between a and b表示X屬性列中取大于等于a小于等于b的值
SELECT * FROM student WHERE Sid BETWEEN 1 AND 3;該語句相當于下方語句
SELECT * FROM student WHERE Sid >= 1 AND Sid <= 3;集合運算SQL的union、intersectexcept對應數學上集合的交集、并集、差集運算
例如student表中學號小于2與學號大于3的學生信息元組組成的集合的并集
(SELECT * FROM student where Sid <2) union (select * from student where Sid>3);注意:MySQL不支持except
聚集函數聚集函數是以值集為輸入并返回單個值的函數 。SQL標準提供了五個固有的聚集函數:

  • 平均值 avg()
  • 最小值 min()
  • 最大值 max()
  • 求和 sum()
  • 計數 count()
基本聚集操作比較簡單,例如要求student關系中所有學生id的平均值
SELECT AVG(Sid) FROM student;還有一種操作是分組聚集,它可以將聚集函數作用在一組元組集上
例如求student中每組同名學生的id之和
SELECT Sname,SUM(sid) FROM student GROUP BY Sname;在有些時候 , 某屬性的取值可能為空,但需要對該屬性列進行聚集,但SQL聚集函數并不認為結果為null , 而是認為應該跳過該值 。
另外,在SQL:1999中引入了布爾類型,它可以取true、false、unknown,聚集函數some()every()可應用于布爾值的集合,并分別計算這些值的析取(or)和合取(and)
having子句有些時候我們對分組有限定條件要求 , 例如求student中每組同名學生的id之和,但是要求和在5以上的,這種操作需要利用having子句
SELECT Sname,SUM(sid) FROM student GROUP BY Sname HAVING SUM(sid)>5;注意 , 任何出現在having子句中但是沒被聚集的屬性都需要出現在group by子句中
數據庫修改刪除刪除與查詢類似,例如刪除student中id為1的學生信息
DELETE FROM student WHERE Sid = 1;插入例如我們向student插入一個名為Alex且id為5的一條數據,最簡單的一條insert語句如下:
INSERT INTO student VALUES('Alex',5);這種情況values后的括號中的值的順序與關系中屬性的順序一致 。
還有一種情況是指定屬性和順序 , 如下:
INSERT INTO student(Sid,Sname) VALUES(5,'Alex');該語句指定了兩個屬性,第一個值對應的屬性為id , 第二個值對應的屬性為學生名 。
更新某些情況下,我們不想改變元組的所有值,但是要改變元組的局部值 , 這就需要用到update語句
如我們將之前插入的名為Alexid為5的學生姓名改為CairBin
UPDATE student SET Sname='CairBin' WHERE Sid = 5;SQL提供case結構 , 它在單條update語句中執行多條更新 。
例如我們將course關系中所有為chemistry的學科改成math,math改成chemistry
UPDATE course SET Cname=CASE Cname WHEN 'math' THEN 'chemistry' WHEN 'chemistry' THEN 'math'END;當然該語句還支持else,當所有when的條件都不符合時就會取else后的值
UPDATE course SET Cname=CASE Cname WHEN 'math' THEN 'chemistry' WHEN 'chemistry' THEN 'math'ELSE 'English'END;結束本文章并沒有給出專門介紹SQL嵌套子查詢相關的部分,這是因為我認為嵌套子查詢基本上是原有語句的組合并且在舉例的時候也用到過(尤其是更名運算那部分,所以我打算將這部分放到后面的文章去寫 。
【SQL基礎語句入門】

推薦閱讀