標籤:記錄 nsa left join 復原 姓名 group by 開啟 編號 medium
一、串連查詢-- 查詢課程名稱 和年級的名稱
-- 非等值串連查詢
SELECT subjectname,gradeName FROM `subject`,grade
-- 等值串連查詢
SELECT subjectname,gradeName
FROM `subject`,grade
WHERE subject.gradeId=grade.`GradeID` -- 外串連 左外串連 以左表為準,右表中沒有資料 返回null
-- 查詢課程名稱,課時數還有年級名稱
SELECT subjectname,gradeName,classHour
FROM `subject` s LEFT JOIN grade g
ON s.gradeId=g.`GradeID` -- 外串連 右外串連 以右表為準,左表中沒有資料 返回null
SELECT subjectname,gradeName,classHour
FROM `subject` s RIGHT JOIN grade g
ON s.gradeId=g.`GradeID` -- 自身串連查詢
CREATE TABLE IF NOT EXISTS teacher(
id INT(10), -- 老師自身的編號
`name` VARCHAR(20),
pid INT(10) -- 老師對應的導師編號
) -- 新增教師資訊
INSERT INTO teacher
VALUES
(1,‘老師1‘,5),
(2,‘老師2‘,5),
(3,‘老師3‘,5),
(4,‘老師4‘,3),
(5,‘老師5‘,3) -- 查詢老師 和對應導師的姓名
SELECT t1.`name` AS ‘老師姓名‘, t2.`name` AS ‘導師姓名‘
FROM teacher t1,teacher t2
WHERE t2.id=t1.pid 二、Order by-- 查詢 課程名稱是 資料庫結構-1 的所有考試成績和學生的姓名 並且按照成績降序進行查看
-- order by 排序 預設是升序 asc desc 降序
SELECT subjectName,StudentResult,studentName
FROM `subject`,result,student
WHERE
student.`StudentNo`=result.`StudentNo`
AND
result.`SubjectNo`=subject.`SubjectNo`
AND
subjectName=‘資料庫結構-1‘
ORDER BY StudentResult DESC三、limit-- 查詢 課程名稱是 資料庫結構-1 的所有考試成績和學生的姓名 並且按照成績降序進行查看
-- order by 排序 預設是升序 asc desc 降序
-- 分頁 使用 limit begin,pageSize
-- begin 從那一條資料開始 (當前頁碼-1)*pageSize
-- pageSize 每頁顯示的數量
SELECT subjectName,StudentResult,studentName
FROM `subject`,result,student
WHERE
student.`StudentNo`=result.`StudentNo`
AND
result.`SubjectNo`=subject.`SubjectNo`
AND
subjectName=‘資料庫結構-1‘
ORDER BY StudentResult DESC
LIMIT 10,5 四、子查詢-- 子查詢 把自身的查詢結果 當作 另一條查詢語句的條件來使用
-- 查詢 課程名稱是 資料庫結構-1 並且分數不小於80分的學生姓名和學號
SELECT studentName,studentNo
FROM student
WHERE studentNo IN
(SELECT studentNo
FROM result
WHERE
subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectName=‘資料庫結構-1‘)
AND StudentResult>=80
)五、統計函數-- 統計函數
-- count() sum() avg() min() max()
SELECT
COUNT(*) AS 總記錄數,
MAX(studentResult) AS 最高分,
MIN(studentResult) AS 最低分,
AVG(studentResult) AS 平均分,
SUM(studentResult) AS 總成績
FROM result六、執行順序-- 執行順序
FROM 表
WHERE 條件
GROUP BY 分組(列)
HAVING 分組的條件
SELECT 查詢的內容
ORDER BY---------代碼示範SELECT sex AS 性別,COUNT(sex) AS 人數
FROM tb
WHERE sex IS NOT NULL
GROUP BY sex
ORDER BY COUNT(sex) DESC SELECT sex AS 性別,COUNT(sex) AS 人數
FROM tb
WHERE sex IN(‘男‘,‘女‘)
GROUP BY sex
ORDER BY COUNT(sex) DESC七、事務隔離-- 查詢 mysql預設的交易隔離等級
SELECT @@tx_isolation
-- 改變交易隔離等級
SET tx_isolation=‘Read-committed‘
-- 開啟事務
START TRANSACTION-- 復原 rollback-- 提交 commit
Mysql(二)