前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料)


一、开发环境

DBMS:Microsoft SQL Server 2019 (64-bit)
可视化管理工具:Microsoft SQL Server
Management Studio- 18.10

二、代码及注释

--创建并使用该数据库
CREATE DATABASE test_one;
USE test_one;
--创建学生表 s
CREATE TABLE s(
snum VARCHAR(3) PRIMARY KEY, --将学生学号设置为主键
sname VARCHAR(5) NOT NULL, --非空约束(下同)
age INT NOT NULL,
sex VARCHAR(3) NOT NULL
);
--向学生表 s 添加测试字段
INSERT INTO s
-- VALUES('001','张三',20,'男');
-- VALUES('002','李四',19,'男');
-- VALUES('003','杨兰',19,'女');
-- VALUES ('004','韩梅',18,'女');
-- VALUES ('005','王丹',21,'女');
-- VALUES ('006','李强',21,'男');
VALUES ('007','江杰',19,'男');
--创建课程表
CREATE TABLE c(
cnum VARCHAR(4) PRIMARY KEY, -- 将课程课号设置为主键
cname VARCHAR(15) NOT NULL, -- 非空约束(下同)
credits INT NOT NULL,
teacher VARCHAR(5) NOT NULL
);
--向课程表 c 添加测试字段
INSERT INTO c
-- VALUES('C1','多媒体',3,'陈扬');
-- VALUES('C2','数据库',4,'王帆');
VALUES('C3','Java',3,'徐可');
--创建选课表 sc
CREATE TABLE sc(
snum VARCHAR(3),
cnum VARCHAR(4),
score INT,
--设置选课表的外键,使得该表中的 snum 和 cnum 受约束
CONSTRAINT snum_fkey FOREIGN KEY (snum) REFERENCES s(snum),
CONSTRAINT cnum_fkey FOREIGN KEY (cnum) REFERENCES c(cnum),
CONSTRAINT unique_sc UNIQUE (snum,cnum) --唯一性约束组
);
--向选课表 sc 添加测试字段
INSERT INTO sc
-- VALUES('002','C1',92);
-- VALUES('002','C2',97);
-- VALUES('003','C1',99);
-- VALUES('003','C2',88);
-- VALUES('004','C2',90);
-- VALUES('005','C2',90);
-- VALUES('006','C2',86);
-- VALUES('007','C1',86);
VALUES('003','C3',82);
--检索年龄介于 18~20 之间的女学生的学号和姓名
SELECT snum, sname FROM s
WHERE age BETWEEN 18 AND 20 AND sex = '女';
--检索选修了课程号为'C2',分数在 90 或 90 以上的学生姓名
SELECT s.sname FROM s
JOIN sc --JOIN-ON 语句为内连接,该语法是 sql99 语法
ON s.snum = sc.snum --连接条件接在 ON 后面
WHERE sc.cnum = 'C2' AND score >= 90;
--检索李强同学所修课程的课程名称
SELECT c.cname FROM s
JOIN sc --同上说明,为内连接 sql99 语法
ON s.snum = sc.snum --依据两表中的 snum 关联 s 和 sc 两表
JOIN c --再内连接 c 表
ON sc.cnum = c.cnum --依据两表中的 cnum 关联 sc 和 c 两表
WHERE s.sname = '李强';
--检索选修了数据库而没有选修多媒体的学生学号
SELECT s.snum FROM s
WHERE s.snum IN ( --子查询获取选修了数据库的学生学号
SELECT sc.snum FROM sc
WHERE sc.cnum = (--子查询获取数据库对应的课程课号
SELECT c.cnum FROM c
WHERE c.cname = '数据库'
)
)AND s.snum NOT IN (--子查询获取选修了多媒体的学生学号
SELECT sc.snum FROM sc
WHERE sc.cnum = (--子查询获取多媒体对应的课程课号
SELECT c.cnum FROM c
WHERE c.cname = '多媒体'
)
);
--检索没有选修数据库的学生名单
SELECT * FROM s
WHERE s.snum NOT IN (--子查询获取选修了数据库的学生学号
SELECT sc.snum FROM sc
WHERE sc.cnum IN (--子查询获取数据库对应的课程课号
SELECT c.cnum FROM c
WHERE c.cname = '数据库'
)
);
--检索至少选修了两门课程的学生名单
SELECT * FROM s
WHERE s.snum IN (--子查询获取至少选修了两门课程的学生学号
SELECT s1.snum
FROM sc AS s1,sc AS s2 --物理上一表,逻辑上两虚拟表
WHERE s1.snum = s2.snum --学号相同
AND s1.cnum <> s2.cnum --并且课号不同
);
--检索选修的课程包含李强同学所修课程的学生名单
SELECT * FROM s AS s1
WHERE s1.snum IN (
--子查询获取选修的课程包含李强同学所修课程的学生学号
SELECT sc1.snum FROM sc AS sc1
WHERE sc1.cnum IN (
--子查询获取李强同学所修课程的课程课号
SELECT sc2.cnum FROM sc AS sc2
WHERE sc2.snum = (--子查询获取李强同学的学号
SELECT s2.snum FROM s AS s2
WHERE s2.sname = '李强'
)
)
)AND s1.sname <> '李强'; -- 排除李强自己
--检索既选修了课程号为 C1 的课程又选修了课程号为 C2 的课程的学生学号
SELECT c1.snum
--子查询获取两张虚拟表,其一选了 C1、其二选了 C2 的学生学号
FROM ( SELECT snum FROM sc WHERE sc.cnum = 'C1') AS c1,
(SELECT snum FROM sc WHERE sc.cnum = 'C2') AS c2
WHERE c1.snum = c2.snum; -- WHERE 条件查询,获得两张虚拟表的交集

三、小结

①对于条件较多且单层查询语句难以解决的时候,可以采用子查询,子查询可以从内向外写,每写–层可以测试看看该层所得结果是否是预期的,子查询实际上是通过未知表进行查询后的条件判断。
②当两张或多张表进行关联(非自连接)时,sq192 语法的方式是( from-where)直接将
连接条件写在 where 中,与筛选条件在一起,可读性较差,sq199 语法的方式是( joinon)将连接条件写在 on 中,筛选条件独自在where 中,可读性较好。

江南大学物联网工程学院数据库课程实验一作业1实验报告相关推荐

  1. 江南大学物联网工程学院数据库课程实验二作业2实验报告

    一.开发环境 DBMS: Microsoft SQL Server 2019 (64- bit) 可视化管理工具: Microsoft SQL Server Management Studio- 18 ...

  2. 江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告

    一.开发环境 语言环境:Microsoft.NET Framework 4.6 SDK IDE:Microsoft Visual Studio Community 2015 二.代码及配置 1.For ...

  3. 传感与检测技术,光电二极管和光敏电阻的特性研究实验报告,江南大学物联网工程学院自动化

    江南大学物联网工程学院传感与检测技术<光电二极管和光敏电阻的特性研究实验报告>分享,包括实验目的.实验仪器设备.实验原理及数据分析和思考与总结.仅供参考借鉴.

  4. 走访江南大学物联网工程学院

    2012年3月19日,电信学院书记张增年.副院长王遵义带队,与物联网新专业建设小组成员吕昂老师.施炯老师共同走访了江南大学物联网工程学院,学习国内第一批物联网工程专业兄弟院校的人才培养模式.专业实验室 ...

  5. 电机与拖动单相变压器实验,江南大学物联网工程学院,实验报告

  6. 电力电子单相交流调压电路实验,江南大学物联网工程学院,实验报告

    单向交流调压接电阻电感性负载波形图:

  7. 江南计算机研究所招聘物联网学院,江南大学:物联网工程学院培育物联网精英人才...

    今年,5G网络将正式上线,而5G技术能实现"万物互联",带领人类进入物联网时代!随着物联网大时代的到来,未来整个社会对物联网人才的需求将持续增加,物联网人才的培养也备受全国各大高校 ...

  8. 吉大计算机物联网工程学院,许德智

    一.个人简介 许德智博士,1985年出生,江苏南通人人.2013年12月南京航空航天大学控制理论与控制工程专业博士研究生毕业,获得工学博士学位.2016年破格晋升副教授.现任江南大学物联网学院副教授. ...

  9. 华南理工大学计算机硕士课程,华南理工大学计算机科学与工程学院研究生课程(数据库管理及应用)db04.pdf...

    华南理工大学计算机科学与工程学院研究生课程(数据库管理及应用)db04 数据库调优数据库调优 为什么需要数据库调优为什么需要数据库调优 • 数据库的部署和运行,可能会显露出一些初始 数据库物理设计所忽 ...

  10. 2021年信息学部物联网工程学院学生科协算法科普

    2021年信息学部物联网工程学院学生科协算法科普 一.什么是算法 二.算法重要吗 三.算法有好坏吗 四.常用算法介绍 1.查找算法 概述 顺序查找 二分查找 2.排序算法 概述 冒泡排序 选择排序 快 ...

最新文章

  1. MySQL:互联网公司常用分库分表方案汇总!
  2. google nexus5x 刷机抓包逆向环境配置(一)
  3. 25 类:接口 抽象父类 多态 鸭子类型 格式化方法与析构方法 反射 异常处理 自定义异常 断言...
  4. PCA(主成分分析)思想及实现
  5. shell变量、函数和数组以及字符串的截取
  6. EWF在win7_x86_x64系统中配置
  7. OSI七层网络与TCP/IP五层网络架构及二层/三层网络
  8. Python爬虫之七:爬虫实战-爬取豆瓣电影 top 250
  9. vs2019安装时,一直卡在正在提取文件
  10. PS 如何制作 圆角矩形 图片
  11. 我所知道的专业搜索引擎
  12. 3653: 谈笑风生
  13. iOS 应用内跳转到百度地图、苹果地图、谷歌地图、高德地图等
  14. unity烘焙室外黑斑
  15. css设置图片不显示的原因总结
  16. PREP 语法笔记 10
  17. 如何使用origin跨工作簿进行公式计算
  18. 全球公认的作息时间表
  19. CRC原理详解(附crc16校验代码)
  20. 《网络安全:保卫你的数据安全》

热门文章

  1. 洪恩教育披露2020年报:学习服务收入大增,营销费、负债规模攀升
  2. (什么是 RPC?) AND(什么是域名?)AND (DMA是什么?)AND(IRQ是什么?) 选择自 ycool1984 的 Blog
  3. Linux创建一个有空间大小限制的目录提供给ftp用户
  4. python中利用ARIMA模型对时间序列问题进行预测(以洗发水销售预测为例)
  5. DevOps 在公司项目中的实践落地
  6. Structure-Revealing Low-Light Image Enhancement Via Robust Retinex Model TIP 2018阅读记录
  7. MYS-6ULX-IOT 开发板测评——支持 RTL8188 WiFi 模块
  8. 联想T420S 黑苹果GPT+UEFI单系统安装
  9. MySQL性能调优-使用ROLLUP代替UNION ALL
  10. Bootstrap之折叠(Collapse)