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

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


一、开发环境

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 中,可读性较好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BCH码和m序列参数估计(梅西迭代算法求多项式的MATLAB实现)

关注公众号【逆向通信猿】试读更多内容!!! 伯利坎普迭代算法解决了BCH码译码中求错位多项式 σ ( x ) \sigma (x) σ(x)的问题,即用迭代算法求解方程组,极大地加快了译码速度。求最短线性移存器的迭代算法是梅西(J.Massey)于1969年提出的,而且指出了与BCH码迭代译码算…

scala和java像不像_关于Java和Scala同步的五件事你不知道

scala和java像不像实际上&#xff0c;所有服务器应用程序都需要在多个线程之间进行某种同步。 大多数同步工作是在框架级别为我们完成的&#xff0c;例如通过我们的Web服务器&#xff0c;数据库客户端或消息传递框架。 Java和Scala提供了许多组件来编写可靠的多线程应用程序。 …

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

一、开发环境 DBMS: Microsoft SQL Server 2019 (64- bit) 可视化管理工具: Microsoft SQL Server Management Studio- 18.10 二、代码、注释及测试 第三题 --创建客户表并且添加数据 create table customers( cnum varchar(5) primary key, --将客户编号设置为主键&#x…

BPSK调制下(2,1,6)标准卷积码及打孔生成2/3、3/4、4/5、5/6删余码Viterbi译码误码率曲线图(MATLAB实现)

关注公号【逆向通信猿】更精彩!!! 目录 仿真结果卷积码原理图删余后性能比较常用的删余码仿真代码根据码率生成打孔参数(子函数)将标准(2, 1, 6)编码后的序列进行打孔,生成删余码(子函数)对接收到的序列进行反打孔,将原来打孔删除的比特进行补零(子函数)BPSK调制下(2,1,6…

使用JDK 11在Java字符串上的新方法

Java的String类似乎将在JDK 11中获得一些新方法&#xff0c;该方法将于2018年9月发布。 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串::行 lines() “使用专用的分隔符从源字符串中懒惰地提供行的字符串实例方法。” JDK-8200378 String :: strip&#x…

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

一、开发环境 语言环境&#xff1a;Microsoft.NET Framework 4.6 SDK IDE&#xff1a;Microsoft Visual Studio Community 2015 二、代码及配置 1、Form1 Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd SubPrivate …

[2021.07.25更新]循环冗余校验(CRC)的MATLAB实现

欢迎同步关注公众号【逆向通信猿】 CRC校验(循环冗余校验) 在计算CRC校验的时候,发现一个网站如下 http://www.ip33.com/crc.html 于是,想自己动手实现该网站计算CRC校验的功能,网站提供的在线计算工具是以十六进制来表示输入参数和结果的,为了方便MATLAB实现,本文提供…

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

一、开发环境 语言环境&#xff1a;Microsoft.NET Framework 4.6 SDK IDE&#xff1a;Microsoft Visual Studio Community 2015 二、代码 Imports System.Data.SqlClient Public Class Form1 连接本机数据库并获取test_one数据库中的sc表数据 Dim mybind As BindingManagerB…

fftw库在windows下的的编译和配置

目录运行环境FFTW库的下载FFTW库的生成VS2017添加fftw库步骤运行环境 Visual Studio 2017 企业版 FFTW库的下载 首先在官网上下载fftw-3.3.5-dll32或fftw-3.3.5-dll64压缩包&#xff0c;解压。本人已经编译生成好的库下载地址&#xff1a;https://download.csdn.net/downloa…

深度学习在机器视觉应用领域的最新研究综述(物联网技术应用大作业)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 摘要&#xff1a;机器视觉是人工智能正在快速发展的一个分支。简单说来&#xff0c…

MATLAB库函数hilbert(希尔伯特变换)的C语言实现(FFT采用FFTW库)

目录希尔伯特变换原理公式MATLAB官方帮助文档中希尔伯特变换算法常量和结构体定义C语言实现(FFTW库的float版&#xff0c;double版类似)希尔伯特变换原理公式 MATLAB官方帮助文档中希尔伯特变换算法 hilbert uses a four-step algorithm: Calculate the FFT of the input sequ…

netbeans7.4_NetBeans 7.4 Beta提示警告无效的异常处理

netbeans7.4有许多例子说明Java异常处理可能比首次出现时要困难得多&#xff0c;Josh Bloch专门将一整章的《 Effective Java》 &#xff08;两个版本&#xff09;专门用于异常处理。 Java中的检查异常模型 仍然 “ 有争议” 。 我很高兴看到我最近下载的NetBeans 7.4 beta有一…

在厚度仅十几微米的电池隔膜找缺陷?人工智能说,能行(人工智能应用案例)

原文链接&#xff1a;https://www.paddlepaddle.org.cn/support/news?actiondetail&id2104 “我们的质检要做的是在厚度仅十几微米的电池隔膜上找出所有微小缺陷&#xff0c;如果没有检测出来&#xff0c;就很可能使新能源汽车的电池在使用过程中出现问题&#xff0c;甚至…

MATLAB库函数unwrap(相位解卷绕)的C语言实现

什么是相位解卷绕 Q = unwrap(P) Q = unwrap(P) corrects the radian phase angles in a vector P by adding multiples of 2π when absolute jumps between consecutive elements of P are greater than or equal to the default jump tolerance of π radians. If P is a …

准确率超90%、1秒发出报警,人工智能助国网山东实现无人巡检(人工智能应用案例)

原文链接&#xff1a;https://mp.weixin.qq.com/s/Jh2YLY-4um79ucdHIs5NTg 众所周知&#xff0c;深度学习框架是人工智能的基础技术“底座”&#xff0c;在各大传统产业上也有着巨大的潜力尚待挖掘。5月20日&#xff0c;由深度学习技术及应用国家工程实验室与百度联合主办的“…

混合多云每个人都应避免的3个陷阱(第2部分)

如果您已经完全控制了内部数据中心&#xff0c;但又不能停止利用和支付过多的资源&#xff0c;那么如何期望防止这些成本转嫁到您的云策略中呢&#xff1f; 每天都在肆意宣传云&#xff0c;但每个人都应避免三个陷阱。 从云&#xff0c;混合云到混合多云&#xff0c;您被告知这…

MATLAB库函数upfirdn(分数倍采样率变换)的C语言实现【姊妹篇1基于std::vector】

upfirdn原理 yout = upfirdn(xin,h,p,q) upfirdn的功能在MATLAB官方帮助文档中说得很清楚 通过插零实现 p p p倍上采样对上采样之后的信号用给定的 h h h(通常为低通滤波器)进行滤波对滤波结果进行

基于PaddlePaddle实现高尔夫球场的遥感检测(人工智能应用案例)

原文链接&#xff1a;https://www.paddlepaddle.org.cn/support/news?actiondetail&id2103 1 . 背景及意义 随着高尔夫球运动在我国的兴起&#xff0c;关于高尔夫球场大量占用土地资源、污染环境、耗水量大且公益性差的争议越来越多。国家从2004年开始制定一系列相关政策…

在Jersey测试中模拟SecurityContext

泽西极有可能编写与泽西一起编写的REST-API集成测试。 只需扩展类JerseyTest并继续就可以了。 我遇到一个问题&#xff0c;我不得不模拟SecurityContext &#xff0c;以便SecurityContext包含一个特殊的UserPrincipal 。 挑战在于Jersey在测试中将SecurityContext包装在自己的…

第一类修正贝塞尔函数的C语言实现

第一类修正贝塞尔函数公式 Iν(z)(z2)ν∑(k0)∞(z24)kk!Γ(νk1)I_{\nu}(z)\left(\frac{z}{2}\right)^{\nu} \sum_{(k0)}^{\infty} \frac{\left(\frac{z^{2}}{4}\right)^{k}}{k ! \Gamma(\nuk1)}Iν​(z)(2z​)ν(k0)∑∞​k!Γ(νk1)(4z2​)k​ 其中&#xff0c;Γ(a)\Gamma…