系列文章中示例数据来源于《 SQL Server实验指导(2005版)》一书。尊重版权,因此遗憾不能将相关示例数据一并提供给大家;但是依据本系列文章的思想与对操作步骤、代码的详细解释,大家用自己手头的数据,可以将相关操作与分析过程加以完整重现。
1 指定列或全部列查询——查询S表学生记录
(1) 启动Microsoft SQL Server 2008 R2软件;
(2) 在“对象资源管理器”窗格中,在“数据库”处右键,在弹出的菜单中选择“附加”选项;
(3) 选择需要加以附加的jxsk数据库物理文件,选择定位文件夹“G:\sql\chutianjia sql”并选择对应数据库jxsk的物理文件并选择“确定”按钮,再次选择“确定”即可;
(4) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT*FROM S GO
(5) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
2 指定列或全部列查询——查询学生姓名与出生年份
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN,YEAR(GETDATE())-AGE AS 出生年份 FROM S GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
3 按条件查询及模糊查询——查询成绩不及格学生学号
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT DISTINCT SNO FROM SC WHERE SCORE<60 GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
4 按条件查询及模糊查询——查询20-23岁间学生姓名、系名、年龄
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN,DEPT,AGE FROM S WHERE AGE BETWEEN 20 AND 23 GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
5 按条件查询及模糊查询——查询姓“李”学生姓名、学号、性别
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN,SNO,SEX FROM S WHERE SN LIKE'李%' GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
6 按条件查询及模糊查询——查询名字第二字为“明”的男生姓名、系名
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN AS 姓名,DEPT AS 系名 FROM S WHERE SN LIKE '_明%' AND SEX='男' GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
7 对查询结果排序——查询信息、计算机系学生姓名、系名,并系名升序、姓名降序
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN AS 姓名,DEPT AS 系名 FROM S WHERE DEPT IN('信息','计算机') ORDER BY DEPT, SN DESC GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
8 对查询结果排序——查询课程号C2的学生学号、课程号、成绩,按成绩降序
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk SELECT SNO AS 学号, CNO AS 课号,SCORE AS 成绩 FROM SC WHERE CNO='C2' AND SCORE IS NOT NULL ORDER BY SCORE DESC GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
9 使用聚集函数的查询——查询计算机系学生人数
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT COUNT(*) AS 计算机系人数 FROM S WHERE DEPT='计算机' GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
10 使用聚集函数的查询——查询选修微机原理学生人数、平均成绩、最高成绩
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT COUNT(*) AS 人数, AVG(SCORE)AS 平均分数, MAX (SCORE) AS 最高分数 FROM C,SC WHERE CN='微机原理'AND C.CNO=SC.CNO GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
11 分组统计查询——查询各课程号及选课人数
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT CNO AS 课程号, COUNT (SNO) AS 人数 FROM SC GROUP BY CNO GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图 。
12 分组统计查询——查询选修两门以上课程学生姓名和平均成绩
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT SN AS 姓名,AVG(SCORE) AS 平均成绩 from S,SC WHERE S.SNO=SC.SNO GROUP BY S.SN HAVING COUNT(*)>2 GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
13 连接查询——查询选课学生学号、姓名、选课名称及成绩
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT S.SNO,SN,CN,SCORE FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
14 连接查询——查询课程号、任课教师姓名及选课人数
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT C.CNO,TN,COUNT(SC.SNO) AS 学生人数 FROM T,TC,C,SC WHERE T.TNO=TC.TNO AND C.CNO=TC.CNO AND C.CNO=SC.CNO GROUP BY C.CNO,T.TN GO
单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
15 自身连接——查询比“刘伟”工资高的教师姓名、工资和刘伟的工资
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT X.TN AS 姓名,X.SAL AS 教师工资,Y.SAL AS 刘伟工资 FROM T AS X,T AS Y WHERE X.SAL>Y.SAL AND Y.TN='刘伟' GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
16 自身连接——查询同时选修“课程设计”和“微机原理”学生姓名、系名
(1) 点击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT DISTINCT (SN) AS 姓名,DEPT AS 系名 FROM C AS C1,C AS C2,SC AS SC1, SC AS SC2,S WHERE C1.CNO=SC1.CNO AND C2.CNO=SC2.CNO AND C1.CN='程序设计' AND C2.CN='微机原理' AND SC1.SNO=SC2.SNO AND SC1.SNO=S.SNO GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
17 外连接——查询学生学号、姓名、选课名称及成绩
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT S.SNO,SN,CN,SCORE FROM S LEFT OUTER JOIN SC ON S.SNO=SC.SNO LEFT OUTER JOIN C ON C.CNO=SC.CNO GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
18 返回一个值的子查询
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT TNO,TN,PROF FROM T WHERE PROF=(SELECT PROF FROM T WHERE TN='刘伟') GO
(3) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
19 返回一组值的子查询——使用ANY谓词查询讲授课号为C5的教师姓名
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT TN FROM T WHERE TNO=ANY(SELECT TNO FROM TC WHERE CNO='C5') GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
20 返回一组值的子查询——使用IN谓词查询讲授课号为C5的教师姓名
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT TN FROM T WHERE TNO IN (SELECT TNO FROM TC WHERE CNO='C5') GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
21 返回一组值的子查询——使用ALL谓词查询其他系中比计算机系所有教师工资高的教师姓名、工资和所在系
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT TN,SAL,DEPT FROM T WHERE SAL>ALL(SELECT SAL FROM T WHERE DEPT='计算机')AND (DEPT <>'计算机') GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
22 返回一组值的子查询——使用EXISTS谓词查询讲授课号为C5的教师姓名、系名
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT TN,DEPT FROM T WHERE NOT EXISTS(SELECT*FROM TC WHERE TNO=T.TNO AND CNO='C5') GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
23 返回一组值的子查询——使用NOT EXISTS谓词查询至少选修了学生S2选修的全部课程的学生学号
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT DISTINCT SNO FROM SC SCX WHERE NOT EXISTS(SELECT*FROM SC SCY WHERE SCY.SNO='S2'AND NOT EXISTS (SELECT*FROM SC SCZ WHERE SCZ.SNO=SCX.SNO AND SCZ.CNO=SCY.CNO)) GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图;
24 查询年龄不大于19岁或属于计算机系的学生
(1) 单击屏幕上方 “工具栏”菜单中的“新建查询”按钮,打开“查询编辑器”窗口,并在“查询编辑器”窗口中输入以下T-SQL语句:
USE jxsk GO SELECT*FROM S WHERE DEPT='计算机' UNION SELECT*FROM S WHERE AGE<=19 GO
(2) 单击 “工具栏”中的“执行(x)”按钮,即可执行上述T-SQL语句,如下图。
欢迎关注公众号:疯狂学习GIS