SQL數據庫注意事項,持續更新

1.沒選數據庫。。。

在這裏插入圖片描述
這個問題我遇到好幾次了,每次打開軟件都忘記選擇自己要操作的數據庫,導致半天愣在那裏,到處找指令怎麼用。。。
指令操作要對應選擇要操作的數據庫!!!

2.數據重複。。。

剛遇到一個題目,子查詢的時候有太多重複的cno,導致語句沒有反應——根據我之前自制語言的經驗,我估計,子查詢獲得的集合中的數據必須都是獨一無二的,不然拋出異常,導致外面的語句失效!!!

--刪除沒有人選的課程的記錄。
DELETE FROM course WHERE cno not in(SELECT cno FROM sc)   --incorrect
DELETE FROM course WHERE cno not in(SELECT DISTINCT cno FROM sc)  --correct

3.當沒有用 EXISTS 引入子查詢時,在選擇列表中只能指定一個表達式。。。

子查詢中的選擇項只能是一個!!!

--顯示VB課程的第2名到第4名的學生的學號、姓名、成績。
SELECT top 3
		sc.sno,sname,grade FROM student 
		JOIN sc on student.sno = sc.sno
		JOIN course on course.cno = sc.cno
		WHERE cname = 'VB基礎' and grade not in (
			
			SELECT top 1 
				sc.sno,sname,grade FROM student   --incorrect
				grade FROM student    				--correct
				JOIN sc on student.sno = sc.sno
				JOIN course on course.cno = sc.cno
				WHERE cname = 'VB基礎'
				ORDER BY grade DESC
		
		) 
		ORDER BY grade DESC
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章