亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

SQL 嵌套查詢的具體使用

瀏覽:135日期:2023-03-06 14:25:50
目錄
  • 插入數(shù)據(jù)
  • select子查詢(外語句先執(zhí)行,內(nèi)語句后執(zhí)行)
  • 總結(jié)

嵌套查詢又稱子查詢,有select子查詢,where子查詢,from子查詢,exists子查詢。

插入數(shù)據(jù)

#創(chuàng)建表及插入記錄CREATE TABLE class (  cid int(11) NOT NULL AUTO_INCREMENT,  caption varchar(32) NOT NULL,  PRIMARY KEY (cid)) ENGINE=InnoDB CHARSET=utf8; INSERT INTO class VALUES(1, "三年二班"), (2, "三年三班"), (3, "一年二班"), (4, "二年九班"); CREATE TABLE course(  cid int(11) NOT NULL AUTO_INCREMENT,  cname varchar(32) NOT NULL,  teacher_id int(11) NOT NULL,  PRIMARY KEY (cid),  KEY fk_course_teacher (teacher_id),  CONSTRAINT fk_course_teacher FOREIGN KEY (teacher_id) REFERENCES teacher (tid)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO course VALUES(1, "生物", 1), (2, "物理", 2), (3, "體育", 3), (4, "美術(shù)", 2); CREATE TABLE score (  sid int(11) NOT NULL AUTO_INCREMENT,  student_id int(11) NOT NULL,  course_id int(11) NOT NULL,  num int(11) NOT NULL,  PRIMARY KEY (sid),  KEY fk_score_student (student_id),  KEY fk_score_course (course_id),  CONSTRAINT fk_score_course FOREIGN KEY (course_id) REFERENCES course (cid),  CONSTRAINT fk_score_student FOREIGN KEY (student_id) REFERENCES student(sid)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO score VALUES(1, 1, 1, 10),(2, 1, 2, 9),(5, 1, 4, 66),(6, 2, 1, 8),(8, 2, 3, 68),(9, 2, 4, 99),(10, 3, 1, 77),(11, 3, 2, 66),(12, 3, 3, 87),(13, 3, 4, 99),(14, 4, 1, 79),(15, 4, 2, 11),(16, 4, 3, 67),(17, 4, 4, 100),(18, 5, 1, 79),(19, 5, 2, 11),(20, 5, 3, 67),(21, 5, 4, 100),(22, 6, 1, 9),(23, 6, 2, 100),(24, 6, 3, 67),(25, 6, 4, 100),(26, 7, 1, 9),(27, 7, 2, 100),(28, 7, 3, 67),(29, 7, 4, 88),(30, 8, 1, 9),(31, 8, 2, 100),(32, 8, 3, 67),(33, 8, 4, 88),(34, 9, 1, 91),(35, 9, 2, 88),(36, 9, 3, 67),(37, 9, 4, 22),(38, 10, 1, 90),(39, 10, 2, 77),(40, 10, 3, 43),(41, 10, 4, 87),(42, 11, 1, 90),(43, 11, 2, 77),(44, 11, 3, 43),(45, 11, 4, 87),(46, 12, 1, 90),(47, 12, 2, 77),(48, 12, 3, 43),(49, 12, 4, 87),(52, 13, 3, 87);  CREATE TABLE student(  sid int(11) NOT NULL AUTO_INCREMENT,  gender char(1) NOT NULL,  class_id int(11) NOT NULL,  sname varchar(32) NOT NULL,  PRIMARY KEY (sid),  KEY fk_class (class_id),  CONSTRAINT fk_class FOREIGN KEY (class_id) REFERENCES class (cid)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO student VALUES(1, "男", 1, "理解"), (2, "女", 1, "鋼蛋"), (3, "男", 1, "張三"), (4, "男", 1, "張一"), (5, "女", 1, "張二"), (6, "男", 1, "張四"), (7, "女", 2, "鐵錘"), (8, "男", 2, "李三"), (9, "男", 2, "李一"), (10, "女", 2, "李二"), (11, "男", 2, "李四"), (12, "女", 3, "如花"), (13, "男", 3, "劉三"), (14, "男", 3, "劉一"), (15, "女", 3, "劉二"), (16, "男", 3, "劉四") CREATE TABLE teacher(  tid int(11) NOT NULL AUTO_INCREMENT,  tname varchar(32) NOT NULL,  PRIMARY KEY (tid)) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO teacher VALUES(1, "張磊老師"), (2, "李平老師"), (3, "劉海燕老師"), (4, "朱云海老師"), (5, "李杰老師");

select子查詢(外語句先執(zhí)行,內(nèi)語句后執(zhí)行)

例1. 查詢課程名并顯示課程老師的名稱

?select * from course c where c.teacher_id="1"; select * from teacher t where t.tid="1"; ??-- 最后拼接select * ,(select tname from teacher t where t.tid=c.teacher_id)name from course c;

where 子查詢(先執(zhí)行子查詢,再執(zhí)行外查詢)

例2.查詢學(xué)習(xí)了體育的學(xué)生

-- 選擇了體育學(xué)生的idselect sc.student_id from course co left join score sc on co.cid=sc.course_id where cname="體育"-- 通過學(xué)生表用學(xué)生id匹配學(xué)生姓名select st.sname from student st where st.sid in(select sc.student_id from course co left join score sc on co.cid=sc.course_id where cname="體育")

部分結(jié)果:

from 子查詢(先執(zhí)行子查詢,再執(zhí)行外查詢)

例3.列出三年二班學(xué)了體育的學(xué)生

select a.* from (select st.sname,cl.caption from score sc left join course co on sc.course_id=co.cidleft join student st on st.sid=sc.student_idleft join class cl on cl.cid=st.class_idwhere co.cname="體育")a where a.caption="三年二班";

exists 子查詢

(先執(zhí)行外語句,再執(zhí)行子查詢,根據(jù)子查詢返回結(jié)果判斷是否保留外查詢結(jié)果)

例4.查詢學(xué)了課程di為1的學(xué)生的姓名

select * from student st where exists(select *from score sc where course_id="1" and sc.student_id=st.sid);

總結(jié)

sql查詢本質(zhì)就是對各種表進(jìn)行裁剪和拼接,最后得到我們想要的數(shù)據(jù)。

所有的能通過子查詢完成的查詢都能用連接查詢完成,如例1:查詢課程名并顯示課程老師的名稱

select *from course coleft join teacher te on te.tid=co.teacher_id;

所以要靈活運(yùn)用查詢方式,才能更高效的查詢。

到此這篇關(guān)于SQL 嵌套查詢的具體使用的文章就介紹到這了,更多相關(guān)SQL 嵌套查詢內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
相關(guān)文章:
主站蜘蛛池模板: 欧美一级永久免费毛片在线 | 欧美日韩国产在线成人网 | 91在线 在线播放 | 在线无限看免费网站 | 日韩欧美一区黑人vs日本人 | aaa免费视频 | 欧美亚洲国产另类在线观看 | 在线精品亚洲 | 精品午夜视频 | 一级黄色在线观看 | 黄色大片网址 | 日韩毛片大全免费高清 | 国产欧美亚洲精品a | 成人性视频在线 | 国产精品久久久久久小说 | 久久精品国产亚洲香蕉 | 在线一区国产 | 成人黄色网址 | 日韩亚洲欧美综合一区二区三区 | 一区二区欧美视频 | 国产欧美日韩免费一区二区 | 国产日产精品_国产精品毛片 | 亚洲欧美色综合一区二区在线 | 特黄特色的视频免费播放 | 日本三级韩国三级三级a级按摩 | 亚洲国产最新在线一区二区 | 一级毛片aaaaaa视频免费看 | 九九99久久精品在免费线bt | 国产日产精品_国产精品毛片 | 在线免费观看亚洲视频 | 欧美日韩国产亚洲一区二区三区 | 精品网站| 一区二区国产在线观看 | 麻豆国产成人精品午夜视频 | 亚洲欧美日韩另类在线一 | 免费观看黄色a一级视频播放 | 海外毛片 | 国产精品1区2区 | 福利在线免费视频 | 久久精品国内一区二区三区 | 国产91精品系列在线观看 |