久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

SQL Server數(shù)據(jù)庫(kù)連接查詢和子查詢實(shí)戰(zhàn)案例

瀏覽:164日期:2023-05-02 10:03:27
目錄
  • 前言
  • 1.查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)
  • 2.查詢選修了課程名稱為“數(shù)據(jù)庫(kù)原理與應(yīng)用”的學(xué)生的學(xué)號(hào)和姓名
  • 3.使用別名實(shí)現(xiàn)查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)
  • 4.查詢所有年齡比張文寶大的學(xué)生的姓名、性別和年齡
  • 5.用格式二實(shí)現(xiàn)查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)
  • 6.查詢所有學(xué)生的學(xué)號(hào)、姓名及對(duì)應(yīng)選課的信息,如果該學(xué)生沒有選課,也需要顯示該生的學(xué)號(hào)和姓名
  • 7.查詢選課學(xué)生的基本信息(若實(shí)際上有外鍵約束,這種情況是不存在的)
  • 8.采用右外連接查詢學(xué)生的學(xué)號(hào)、選修的課程號(hào)、課程名及學(xué)分,同時(shí)也列出無(wú)學(xué)生選修的課程信息
  • 9.student和sc表實(shí)現(xiàn)全外連接
  • 10.從student表中查詢年齡為‘19’和‘20’的學(xué)生的系部,不包括重復(fù)行
  • 11.從student表中查詢年齡為‘19’和‘20’的學(xué)生的系部,包括重復(fù)行
  • 12.查詢所有選修課程的學(xué)生的學(xué)號(hào)和姓名
  • 13.查詢年齡高于平均年齡的學(xué)生的學(xué)號(hào)、姓名和年齡
  • 14.查詢比CS系的任一學(xué)生年齡都大的學(xué)生姓名和年齡
  • 15.查詢已有學(xué)生選修的課程信息
  • 16.查詢尚沒有學(xué)生選修的課程信息
  • 17.查詢CS系學(xué)生的信息,生成一個(gè)新表temp
  • 18.將所有的學(xué)號(hào)和課程號(hào)信息生成一個(gè)新表SCL
  • 19.將選修了“前臺(tái)頁(yè)面設(shè)計(jì)”課程的學(xué)生成績(jī)?cè)黾?分
  • 20.刪除選修了“前臺(tái)頁(yè)面設(shè)計(jì)”課程的選課信息
  • 總結(jié)

提示: 利用單表簡(jiǎn)單查詢和多表高級(jí)查詢技能,并且根據(jù)查詢要求靈活使用內(nèi)連接查詢、外連接查詢或子查詢等。同時(shí)還利用內(nèi)連接查詢的兩種格式、三種外連接查詢語(yǔ)法格式和子查詢的語(yǔ)法格式。

前言

內(nèi)連接查詢(不同表之間查詢)

1.查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)

方法一

USE XSCJGOSELECT student.sno,sname,cno,grade from student,scwhere student.sno=sc.sno

方法二

USE XSCJGOSELECT student.sno,sname,cno,grade from student join sc on student.sno=sc.sno

2.查詢選修了課程名稱為“數(shù)據(jù)庫(kù)原理與應(yīng)用”的學(xué)生的學(xué)號(hào)和姓名

方法一

USE XSCJselect student.sno,sname from student,sc,coursewhere student.sno=sc.sno and sc.cno=course.cno and cname="數(shù)據(jù)庫(kù)原理與應(yīng)用"

方法二

select student.sno,sname from student join sc on student.sno=sc.sno join course on sc.cno=course.cnowhere cname="數(shù)據(jù)庫(kù)原理與應(yīng)用"

3.使用別名實(shí)現(xiàn)查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)

select x.sno,sname,cno,gradefrom student x,sc ywhere x.sno=y.sno

自身連接查詢

4.查詢所有年齡比張文寶大的學(xué)生的姓名、性別和年齡

select A.sname,A.ssex,A.sagefrom student A,student Bwhere B.sname="張文寶" and A.sage>B.sage

使用第二種格式實(shí)現(xiàn)內(nèi)連接查詢(JOIN ON)

5.用格式二實(shí)現(xiàn)查詢所有學(xué)生的學(xué)號(hào)、姓名、選修課程號(hào)和成績(jī)

SELECT student.sno,sname,cno,gradefrom student join scon student.sno=sc.sno

外連接(左外連接)

6.查詢所有學(xué)生的學(xué)號(hào)、姓名及對(duì)應(yīng)選課的信息,如果該學(xué)生沒有選課,也需要顯示該生的學(xué)號(hào)和姓名

SELECT student.sno,sname,cno,gradefrom student left outer join scon student.sno=sc.sno

右外連接

7.查詢選課學(xué)生的基本信息(若實(shí)際上有外鍵約束,這種情況是不存在的)

select sc.sno,sname,cno,gradefrom sc right outer join studenton student.sno=sc.sno

8.采用右外連接查詢學(xué)生的學(xué)號(hào)、選修的課程號(hào)、課程名及學(xué)分,同時(shí)也列出無(wú)學(xué)生選修的課程信息

select sc.sno,course.cno,cname,creditfrom sc right outer join courseon course.cno=sc.cno

全外連接

9.student和sc表實(shí)現(xiàn)全外連接

select *from sc full outer join student on student.sno=sc.sno

UNION聯(lián)合查詢

10.從student表中查詢年齡為‘19’和‘20’的學(xué)生的系部,不包括重復(fù)行

select sdept from student where sage="19"unionselect sdept from student where sage="20"

11.從student表中查詢年齡為‘19’和‘20’的學(xué)生的系部,包括重復(fù)行

select sdept from student where sage="19"union allselect sdept from student where sage="20"

使用IN或NOT IN 的子查詢

12.查詢所有選修課程的學(xué)生的學(xué)號(hào)和姓名

select sno,snamefrom studentwhere sno in(select sno from sc)

改為連接查詢實(shí)現(xiàn)

select distinct student.sno,snamefrom student join scon student.sno=sc.sno

使用比較運(yùn)算符的子查詢

13.查詢年齡高于平均年齡的學(xué)生的學(xué)號(hào)、姓名和年齡

select sno,sname,sagefrom student where sage>(select AVG(sage) from student)

使用ANY或ALL的子查詢

14.查詢比CS系的任一學(xué)生年齡都大的學(xué)生姓名和年齡

select sname,sagefrom studentwhere sage>any	(select sage from student where sdept="CS")	AND sdept!="CS"select * from student

使用EXISTS的子查詢

15.查詢已有學(xué)生選修的課程信息

select *from coursewhere exists(select * from sc where course.cno=sc.cno)

16.查詢尚沒有學(xué)生選修的課程信息

select *from coursewhere not exists(select * from sc where course.cno=sc.cno)

查看course表

抽取數(shù)據(jù)到另一個(gè)表

17.查詢CS系學(xué)生的信息,生成一個(gè)新表temp

select *into tempfrom student where sdept="CS"select * from temp

INSERT語(yǔ)句中的子查詢

18.將所有的學(xué)號(hào)和課程號(hào)信息生成一個(gè)新表SCL

INSERT INTO SCL(sno,cno)select sno,cnofrom student,course

UPDATE 語(yǔ)句中的子查詢

19.將選修了“前臺(tái)頁(yè)面設(shè)計(jì)”課程的學(xué)生成績(jī)?cè)黾?分

UPDATE scset grade=grade+5where cno=(select cno from course where sc.cno=course.cno and cname="前臺(tái)頁(yè)面設(shè)計(jì)")

刪除語(yǔ)句中的子查詢

20.刪除選修了“前臺(tái)頁(yè)面設(shè)計(jì)”課程的選課信息

delete from sc where cno= (select cno from course where sc.cno=course.cno and cname="前臺(tái)頁(yè)面設(shè)計(jì)")

總結(jié)

到此這篇關(guān)于SQL Server數(shù)據(jù)庫(kù)連接查詢和子查詢的文章就介紹到這了,更多相關(guān)SQLServer連接查詢和子查詢內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: 醴陵市| 米易县| 吉林市| 成安县| 巍山| 文安县| 稻城县| 永济市| 门源| 西贡区| 卢湾区| 凌源市| 五台县| 瓦房店市| 定州市| 精河县| 临沧市| 红安县| 普兰店市| 双柏县| 成安县| 西乌珠穆沁旗| 辉县市| 文水县| 临沂市| 西和县| 海伦市| 郑州市| 襄城县| 色达县| 苍溪县| 秦安县| 涿州市| 柏乡县| 连山| 宜良县| 石渠县| 平阴县| 淄博市| 新竹县| 垫江县|