標籤:scores tin 關鍵字 inner 修改表 自動 update from date
擴充例子
插入一條記錄
INSERT INTO 表名 [(欄位1,…,欄位n)] VALUES (值1,…,值n)
插入查詢的結果
INSERT INTO 表名 (欄位1,…,欄位n) VALUES 子查詢
例如:INSERT INTO Scores VALUES ("990301", "大學電腦基礎", 98)
DELETE FROM 表 [WHERE 條件]
注意: WHERE子句預設,則刪除表中所有的記錄(表還在)
例如::DELETE FROM Scores WHERE 成績<70
UPDATE 表 SET 欄位1=運算式1, … ,欄位n=運算式n [WHERE 條件]
注意: WHERE子句預設,則修改表中所有的記錄
例 將表Students中學生王濤的姓名改為王寶球
UPDATE Students SET 姓名=“王寶球” WHERE 姓名="王濤"
例 將表Students中助學金低於200的學生加30元
UPDATE Students SET 助學金=助學金+30 WHERE 助學金<200
UPDATE語句一次只能對一個表進行修改
選擇欄位:
例7.10 查詢所有的專業,查詢結果中不出現重複的記錄
SELECT DISTINCT 專業 FROM Students;
例7.11 使用合計函數,查詢學生人數、最低助學金、最高助學金和平均助學金
SELECT Count(*) AS 人數, Min(助學金) AS 最低助學金, Max(助學金) AS 最高助學金, Avg(助學金) AS 平均助學金
FROM Students
例7.12 查詢學生的姓名和年齡
SELECT 姓名, Year(Date())-Year(出生年月) AS 年齡 FROM Students
選擇記錄:
例7.13 顯示所有非電腦專業學生的學號、姓名和年齡
SELECT 學號, 姓名, Year(Date())-Year(出生年月) AS 年齡 FROM Students WHERE 專業<>"電腦"
例7.14 查詢1981年(包括1981年)以前出生的女生姓名和出生年月。
SELECT 姓名,出生年月 FROM Students WHERE 出生年月 < #1/1/1982# AND 性別="女"
排序:
例7.15 查詢所有黨員學生的學號和姓名,並按助學金從小到大排序。
SELECT 學號, 姓名 FROM Students WHERE 黨員=True ORDER BY 助學金
可用多個關鍵字排序。例如,ORDER BY 專業 ASC, 助學金 DESC
ASC:表示升序,DESC:表示降序。
分組查詢:
例7.16 查詢每個專業學生人數。(簡單分組)
SELECT 專業, count(*) AS 人數 FROM students GROUP BY 專業;
例7.17 查詢各專業男女生的平均助學金(複雜分組)
SELECT 專業,性別, Avg(助學金) AS 平均助學金 FROM Students GROUP BY 專業, 性別
將專業和性別都相同的記錄分在一組。
例7.18 對Scores表查詢有2門課程成績在75以上的學生的學號和課程數。分組後過濾
SELECT 學號, Count(*) AS 課程數 FROM Scores WHERE 成績>=75 GROUP BY 學號
HAVING Count(*)>=2
串連查詢:
例7.19 查詢所有學生的學號、姓名、課程和成績
SELECT Students.學號,Students.姓名,Scores.課程, Scores.成績 FROM Students, Scores
WHERE Students.學號 = Scores.學號
自動產生語句:
SELECT Students.學號, Students.姓名, Scores.課程, Scores.成績 FROM Students INNER JOIN Scores ON Students.學號 = Scores.學號
例7.20 查詢選修了“高等數學”課程的學生的學號、姓名和成績。
SELECT Students.學號, Students.姓名, Scores.成績 FROM Students, Scores
WHERE Students.學號=Scores.學號 AND Scores.課程="高等數學"
上述語句可以改寫為:
SELECT Students.學號, Students.姓名, Scores.成績 FROM Students INNER JOIN Scores
ON Students.學號 = Scores.學號 WHERE Scores.課程="高等數學"
巢狀查詢:在SQL中,將一個SELECT語句查詢塊嵌套在另一個SELECT語句的WHERE子句或HAVING子句中稱為巢狀查詢
例7.21 查詢沒有學過大學電腦基礎的學生的學號、姓名和專業
SELECT Students.學號, Students.姓名, Students.專業 FROM Students
WHERE Students.學號 Not in
(SELECT Scores.學號 FROM Scores WHERE Scores.課程="大學電腦基礎")
例7.22 查詢與“鄧倩梅”在同一個專業的學生的學號和姓名
SELECT Students.學號, Students.姓名 FROM Students WHERE 專業 in
(SELECT Students.專業 FROM Students WHERE Students.姓名="鄧倩梅")
MySQL 之 擴充例子