簡單的SQL子查詢語句如何寫

發表于:2013-07-19來源:Csdn作者:孤云點擊數: 標簽:MySQL
子查詢分類: 1、 相關子查詢 執行依賴于外部查詢的數據 外部查詢返回一行,子查詢就執行一次。

  子查詢分類:

  1、 相關子查詢

  執行依賴于外部查詢的數據

  外部查詢返回一行,子查詢就執行一次。

  2、非相關子查詢

  獨立于外部查詢的子查詢

  子查詢總共執行一次,執行完畢后將值傳遞給外部查詢

  相關子查詢通常要消耗更長的時間,當數據量增加時,執行時間會急劇增加

  [sql] view plaincopyprint?

  CREATE TABLE lovoStudent(

  id INT PRIMARY KEY AUTO_INCREMENT,

  studentName VARCHAR(20),

  SUBJECT VARCHAR(20),

  grade INT

  )DEFAULT CHARSET =utf8;

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('張三','java基礎',97);

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('張三','數據庫',80);

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('張三','java web',96);

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('李四','數據庫',95);

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('李四','java基礎',94);

  INSERT INTO lovoStudent(studentName,SUBJECT,grade) VALUES ('王五','java基礎',85);

  -- 查詢java基礎最高分及其最高分的得主

  SELECT * FROM lovoStudent t WHERE grade=(SELECT MAX(grade) FROM lovoStudent t1 WHERE SUBJECT='java基礎' AND t1.SUBJECT=t.SUBJECT)

  -- 查詢各科目最高分及其得主

  SELECT * FROM lovoStudent t WHERE grade=(SELECT MAX(grade) FROM lovoStudent t1 WHERE t.SUBJECT =t1.SUBJECT )

  SELECT * FROM lovoStudent t WHERE grade IN(SELECT MAX(grade) FROM lovoStudent t1 WHERE t.SUBJECT =t1.SUBJECT GROUP BY SUBJECT)

  CREATE TABLE t_lovoClass(

  id INT PRIMARY KEY AUTO_INCREMENT,

  className VARCHAR(20)

  )DEFAULT CHARSET =utf8;

  INSERT INTO t_lovoClass(className) VALUES('AT01');

  INSERT INTO t_lovoClass(className) VALUES('AT02');

  INSERT INTO t_lovoClass(className) VALUES('AT03');

  INSERT INTO t_lovoClass(className) VALUES('AT04')

  ALTER TABLE lovoStudent ADD classId INT;

  UPDATE lovoStudent SET classId=1 WHERE id<3;

  UPDATE lovoStudent SET classId=2 WHERE id>5;

  UPDATE lovoStudent SET classId=3 WHERE id>=3 AND id<=5;

  -- 查詢學生表所有內容并加上對應班級信息

  SELECT e.*,(SELECT className FROM t_lovoClass c WHERE e.classId=c.id) className FROM lovoStudent e;

  -- 查詢所有沒有學生的班級

  SELECT className FROM t_lovoClass WHERE id NOT IN(SELECT classId FROM lovoStudent)

原文轉自:http://blog.csdn.net/u010142437/article/details/8903104

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97