本文介绍基于Microsoft SQL Server软件,实现数据库表中多种数据查询方法的具体操作。

目录

  系列文章中示例数据来源于《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

(2) 单击 “工具栏”中的“执行(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语句,如下图。

  至此,大功告成。

SQL Server实战四:查询数据库的数据的更多相关文章

  1. sql server操作2:查询数据库语句大全【转】

    注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...

  2. 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步

    Sql Data Compare 是比较两个数据库的数据是否相同.生成同步sql的工具. 这一款工具由Red Gate公司出品,我们熟悉的.NET Reflector就是这个公司推出的,它的SQLTo ...

  3. 在 sql server 中,查询 数据库的大小 和 数据库中各表的大小

    其实本来只想找一个方法能查询一下 数据库 的大小,没想到这个方法还能查询数据库中 各个数据表 的大小,嗯,挺好玩的,记录一下. MSDN资料:https://msdn.microsoft.com/zh ...

  4. SQL server 使用触发器跨数据库备份数据

    create database TriggerTest create table transInfo2 --交易信息表 ( cardID ) not null, --卡号 transType ) no ...

  5. 【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表

    原文:[SQL Server高可用性]数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表 经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使 ...

  6. 基于Sql Server 2008的分布式数据库的实践(四)

    原文 基于Sql Server 2008的分布式数据库的实践(四) 数据库设计 1.E-R图 2.数据库创建 Win 7 1 create database V3 Win 2003 1 create  ...

  7. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  8. 学习如何看懂SQL Server执行计划(一)——数据查询篇

    一.数据查询部分 1. 看到执行计划有两种方式,对sql语句按Ctrl+L,或按Ctrl+M打开显示执行计划窗口每次执行sql都会显示出相应的执行计划 2. 执行计划的图表是从右向左看的 3. SQL ...

  9. SQL Server上唯一的数据库集群:负载均衡、读写分离、容灾(数据零丢失、服务高可用)

    SQL Server上唯一的数据库集群:负载均衡.读写分离.容灾(数据零丢失.服务高可用).审计.优化,全面解决数据库用户问题.一键安装,易用稳定,性价比高,下载链接:http://www.zheti ...

  10. MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解

    判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大 ...

随机推荐

  1. KingbaseES创建外键与Mysql的差异

    Mysql mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.23 | +-----------+ ...

  2. SQLServer递归触发器在KES中的一次改造分析

    文章概要: 某项目将数据从 SQLSERVER 迁移到 KES.其中SQLSERVER中触发器用到了 TRIGGER_NESTLEVEL() 函数,KES并不能直接支持该函数. 起初在分析该问题时想复 ...

  3. Scala 特质(Trait)

    1 package chapter06 2 3 object Test13_Trait { 4 def main(args: Array[String]): Unit = { 5 val studen ...

  4. Sealos 开源初创公司 Trending 全球 TOP50,中国第二!

    今年,Runa Capital (鲁纳资本) 评选出了 2023 年增长最快的 50 家开源创业公司,Sealos 压轴登场,总共有两家中国公司上榜,Sealos 排名第二. Runa Capital ...

  5. 13 JavaScript关于prototype(超重点)

    13 JavaScript关于prototype(超重点) prototype是js里面给类增加功能扩展的一种模式. 写个面向对象来看看. function People(name, age){ th ...

  6. USACO 4.1

    目录 洛谷 2737 麦香牛块 分析 代码 洛谷 2738 篱笆回路 分析 代码 麦香牛块洛谷传送门,麦香牛块USACO传送门,篱笆回路洛谷传送门,篱笆回路USACO传送门 洛谷 2737 麦香牛块 ...

  7. 基于vue3的Crontab组件

    网上找的没有满意的,决定从若依前后端分离其前端vue2中的crontab进行转换,先上效果 若依: 改后: v2转v3没什么难度,其中有大量的将 this.*** 替换为 ***.value,笔者写了 ...

  8. 6. Eigenvalues and Eigenvectors

    Keys: What are Eigenvalues and Eigenvectors? How to find Eigenvalues and Eigenvectors? Applications ...

  9. Solr安全控制,开启基本身份验证

    前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 背景:solr默认安装没带权限控制,每次进入页面直接操作都有点裸奔的感觉. 一.SolrCloud集群模式 说明:要使用基本身份验证您必 ...

  10. c# 优化代码的一些规则——什么情况下应该使用new[七]

    前言 new 在重构这本书中写道new就是坏代码的味道,说明使用new的情况并不多. 在这里我指的new 是方法修饰符,而不是指实例. 正文 看下new的作用: new 修饰符可以重新定义从基类继承下 ...