1. 实验内容

  建的数据库如下:

 1 CREATE TABLE Depts
 2 (
 3     Dno CHAR(20) PRIMARY KEY,
 4     Dname CHAR(20) NOT NULL
 5 )
 6 INSERT INTO Depts VALUES('D01','自动化')
 7 INSERT INTO Depts VALUES('D02','计算机')
 8 INSERT INTO Depts VALUES('D03','数学')
 9 INSERT INTO Depts VALUES('D04','通信')
10 INSERT INTO Depts VALUES('D05','电子')
11
12 CREATE TABLE Students
13 (
14     Sno  CHAR(20) PRIMARY KEY,
15     Sname CHAR(20) NOT NULL,
16     Ssex CHAR(2),
17     Sage INT,
18     Dno CHAR(20),
19     CONSTRAINT FK_Dno FOREIGN KEY(Dno) REFERENCES Depts
20 )
21 INSERT INTO Students VALUES('S01','王建平','男',21,'D01')
22 INSERT INTO Students VALUES('S02','刘华','女',19,'D01')
23 INSERT INTO Students VALUES('S03','范林军','女',18,'D02')
24 INSERT INTO Students VALUES('S04','李伟','男',19,'D03')
25 INSERT INTO Students VALUES('S05','黄河','男',18,'D03')
26 INSERT INTO Students VALUES('S06','长江','男',20,'D03')
27
28 CREATE TABLE Courses
29 (
30     Cno CHAR(20) PRIMARY KEY,
31     Cname CHAR(20),
32     Pre_Cno CHAR(6),
33     Credits INT
34 )
35 INSERT INTO Courses VALUES('C01','英语',NULL,4)
36 INSERT INTO Courses VALUES('C02','数据结构','C05',2)
37 INSERT INTO Courses VALUES('C03','数据库','C02',2)
38 INSERT INTO Courses VALUES('C04','DB_设计','C03',3)
39 INSERT INTO Courses VALUES('C05','C++',NULL,3)
40 INSERT INTO Courses VALUES('C06','网络原理','C07',3)
41 INSERT INTO Courses VALUES('C07','操作系统','C05',3)
42
43 CREATE TABLE Reports
44 (
45     Sno CHAR(20),
46     Cno CHAR(20),
47     Grade INT,
48     PRIMARY KEY(Sno,Cno),
49     CONSTRAINT Student_Report FOREIGN KEY(Sno) REFERENCES Students,
50     CONSTRAINT Report_Course FOREIGN KEY(Cno) REFERENCES Courses
51 )
52 INSERT INTO Reports VALUES('S01','C01',92)
53 INSERT INTO Reports VALUES('S01','C03',84)
54 INSERT INTO Reports VALUES('S02','C01',90)
55 INSERT INTO Reports VALUES('S02','C02',94)
56 INSERT INTO Reports VALUES('S02','C03',82)
57 INSERT INTO Reports VALUES('S03','C01',72)
58 INSERT INTO Reports VALUES('S03','C02',90)
59 INSERT INTO Reports VALUES('S04','C03',75)

1.  求数学系学生的学号和姓名

SELECT Sno,Sname
FROM Students
WHERE Dno IN
(SELECT DnoFROM DeptsWHERE Dname='数学'
)

2.  求选修了课程的学生学号

SELECT DISTINCT Sno
FROM Reports

3.  求选修课程号为‘C01’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列。

SELECT Sno,Grade
FROM Reports
WHERE Cno='C01'
ORDER BY Grade DESC,Sno 

4 .   求选修课程号为‘C01’且成绩在80~90之间的学生学号和成绩,并成绩乘以0.8输出。

SELECT Sno,Grade*0.8 NewGrade
FROM Reports
WHERE Cno='C01' AND Grade BETWEEN 80 AND 90

5 .   求数学系或计算机系姓张的学生的信息。(若为'张__',则查询的姓名为不多于3个汉字,两个下划线代表一个汉字)

SELECT *
FROM Students
WHERE Sname LIKE'张%' AND Dno IN
(SELECT DnoFROM DeptsWHERE Dname='数学' OR Dname='计算机'
)

6 .   查询每个学生的情况以及他所选修的课程

SELECT Students.* ,Reports.*
FROM Students,Reports
WHERE Students.Sno= Reports.Sno

7.  求学生的学号、姓名、选修的课程及成绩

SELECT Students.Sno,Sname,Cname,Grade
FROM Students,Reports,Courses,Depts
WHERE Students.Sno= Reports.Sno AND Reports.Cno=Courses.CnoAND Students.Dno=Depts.Dno

8.  查询每一门课程的间接先行课(即先行课的先行课)

SELECT A.Cno,A.Cname,B.Pre_Cno
FROM Courses A,Courses B
WHERE A.Pre_Cno=B.Cno

9 .  求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)

SELECT *
FROM Students
WHERE Dno!=
(SELECT DnoFROM DeptsWHERE Dname='计算机'
) AND Sage<some(SELECT MAX(Sage)FROM StudentsWHERE Dno=(SELECT DnoFROM DeptsWHERE Dname='计算机'))

【*】10.  查询选修了全部课程的学生姓名

SELECT Sname
FROM Students
WHERE NOT EXISTS
(SELECT *FROM CoursesWHERE NOT EXISTS(SELECT *FROM ReportsWHERE Sno=Students.Sno AND Cno=Courses.Cno)
)

【*】11.  求至少选修了学号为“S03”的学生所选修全部课程的学生学号和姓名

SELECT Sno,Sname
FROM Students
WHERE Sno IN
(SELECT DISTINCT SnoFROM Reports AWHERE NOT EXISTS(SELECT *FROM Reports BWHERE B.Sno='S03' AND NOT EXISTS(SELECT *FROM Reports CWHERE C.Sno=A.Sno AND C.Cno=B.Cno))
)

转载于:https://www.cnblogs.com/gyk666/p/6849165.html

数据库基础(2):简单查询和连接查询相关推荐

  1. MYSQL数据库字段关联_MySQL数据库基础——操作关系表、连接查询

    MySQL数据库基础入门--day11 一.操作关联表 1.关联关系: 关联关系有:多对一.多对多和一对多. 一对一关联关系可以应用在以下几方面: (1)分割具有很多列的表 (2)由于安全原因而隔离表 ...

  2. MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互

    目录 一.连接查询 1.内连接 2.外连接 二.表结构的修改--alter 1.修改表名 2.修改字段名 3.修改字段类型--modify 4.添加字段 (1)添加日期字段:datetime (2)e ...

  3. 求数学系或计算机系姓张的学生的信息,实验二数据库的简单查询和连接查询.docx...

    贵州大学实验报告 学院:计算机科学与信息学院 专业:信息安全 班级: 姓名 学号 实验组 实验时间 指导教师 成绩 实验项目名称 数据库的简单查询和连接查询 实验目的 使学生掌握SQL Server ...

  4. mysql 连接 分组_MySQL 基础 (四) 分组查询及连接查询

    MySQL 基础 (四) 分组查询及连接查询 MySQL 基础(四) 进阶 5 分组查询 语法: SELECT 分组函数, 列(要求出现在 group by 的后面) FROM 表 [where 筛选 ...

  5. mysql 嵌套查询性能_MySQL数据库之嵌套查询与连接查询的性能详解

    本文主要向大家介绍了MySQL数据库之嵌套查询与连接查询的性能详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化. ...

  6. SQL sever数据库的单表查询和连接查询

    数据库的单表查询和连接查询 一.目的: 掌握无条件查询的使用方法. 掌握条件查询的使用方法. 掌握库函数及汇总查询的使用方法. 掌握分组查询的使用方法. 掌握查询的排序方法. 掌握连接查询的使用方法. ...

  7. mysql的查询、子查询及连接查询(商城查询常用)

    mysql的查询.子查询及连接查询 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 1.whe ...

  8. mysql数据库基础的简单操作指南

    最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...

  9. 【MySQL】多表联合查询、连接查询、子查询

    文章目录 [1]连接查询 内连接查询 外连接查询 左连接 右连接 [2]联合查询 [3]子查询 带in关键字的子查询 带比较运算符的子查询 带exists的子查询 带any关键字的子查询 带all关键 ...

  10. 笔记:3.4 《数据库系统概论》之数据查询---SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)

    对 3.2 数据查询-SELECT(单表查询.连接查询.嵌套查询.集合查询.多表查询)的转载与学习笔记: 0.前言 本篇文章是对<数据库系统概论>王珊老师主编的数据库查询SELECT部分做 ...

最新文章

  1. Android进阶笔记:Messenger源码详解
  2. 删除表中存在多条相同记录的方法
  3. 现在的路由器是第几代了?每一代的特点是?
  4. html 使用符号设置固定链接,让woocommerce使用数字id的固定链接插件
  5. SAP系统和微信集成的系列教程之四:如何将SAP C4C主数据变化推送给微信公众号的关注者
  6. ADO.NET 2.0 中的新增 DataSet 功能
  7. CSS Hack 汇总速查一览
  8. java中为按钮添加图片_我们可以在Java接口中为成员定义私有和受保护的修饰符吗?...
  9. matplotlib数据可视化实战——折线图+散点图
  10. jpg/png格式图片转eps格式
  11. 金蝶BOS系统dep无法扩展,如何增加白名单使其能够继续扩展
  12. android timepicker 固定样式,android-如何设置格式为24h的TimePicker显示
  13. 移动警务整体解决方案_辅助或替代人类的技术无法解决警务问题
  14. iphone查看python文件_通过python获取苹果手机备份文件中的照片,视频等信息采集...
  15. MATLAB学习笔记(注释超详细)
  16. Java线程池并发执行多个任务
  17. 如何让论文中的图进行自动编号
  18. Ubuntu16.04下好用的pdf阅读器
  19. oracle数据迁移到mysql
  20. C++ 重载左移运算符

热门文章

  1. 下载centos(阿里云)
  2. MySql存储过程语法及事例
  3. 五、Oracle学习笔记:DQL数据查询语句
  4. 自动化运维工具 Ansible ,SaltStack,Salt,Puppet
  5. java sqlite 密码保护_密码保护SQLite数据库 . 可能吗?
  6. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第4节 maven生命周期和概念模型图_09maven概念模型图...
  7. Item 16: Avoid Creating Unnecessary Objects(Effective C#)
  8. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_13_常用的函数式接口_Predicate接口中的默认方法and...
  9. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_1_线程状态概述...
  10. amazeui学习笔记--js插件(UI增强4)--下拉组件Dropdown