当前位置: 首页 > news >正文

做自己的网站流量怎么软件开发app制作

做自己的网站流量怎么,软件开发app制作,做58网站怎么赚钱,wordpress 增加css目录 实验目的实验内容实验要求实验过程实验代码结果示意 书接上文,但是感觉之前的形式不太好用,至少不是很方便观看,所以这篇尝试改变一下写法,希望可以提升一些观感 实验目的 (1) 掌握RDBMS的数据多表查询功能 (2) 掌握SQL语言…

目录

  • 实验目的
  • 实验内容
  • 实验要求
  • 实验过程
    • 实验代码
    • 结果示意

书接上文,但是感觉之前的形式不太好用,至少不是很方便观看,所以这篇尝试改变一下写法,希望可以提升一些观感

实验目的

(1) 掌握RDBMS的数据多表查询功能
(2) 掌握SQL语言的数据多表查询语句

实验内容

(1) 等值连接查询(含自然连接查询)与非等值连接查询
(2) 自身连接查询
(3) 外连接查询
(4) 复合条件连接查询
(5) 嵌套查询(带有IN谓词的子查询)
(6) 嵌套查询(带有比较运算符的子查询)
(7) 嵌套查询(带有ANY或ALL谓词的子查询)
(8) 嵌套查询(带有EXISTS谓词的子查询)
(9) 集合查询

实验要求

(1) 熟练掌握SQL的连接查询语句
(2) 熟练掌握SQL的嵌套查询语句
(3) 掌握表名前缀、别名前缀的用法
(4) 掌握不相关子查询和相关子查询的区别和用法
(5) 掌握不同查询之间的等价替换方法(一题多解)及限制记录实验结果,认真完成实验报告

实验过程

建立示例数据库S_T(复习)
表Student
学号
Sno 姓名
Sname 性别
Ssex 年龄
Sage 所在系
Sdept
200215121 李勇 男 20 CS
200215122 刘晨 女 19 CS
200215123 王敏 女 18 MA
200215125 张立 男 19 IS
表Course
课程号
Cno 课程名
Cname 现行课
Cpno 学分
Ccredit
1 数据库 5 4
2 数学 2
3 信息系统 5 4
4 操作系统 6 3
5 数据结构 7 4
6 数据处理 2
7 PASCAL语言 6 4
表SC
学号
Sno 课程号
Cno 成绩
Grade
200215121 1 92
200215121 2 85
200215121 3 88
200215122 2 90
200215122 3 80

实验代码

在SQL Server集成管理器的查询窗口中输入如下SQL语句序列来创建示例数据库。
/* 创建示例数据库S_T,包括3个表,即学生表Student、课程表Course和选课表SC*/

create database S_T;
go
use S_T;  /*将S_T设为当前数据库*/
create table Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));
go

/表Student的主码为Sno,属性列Sname取唯一值/

create table Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno));
go

/表Course的主码为Cno,属性列Cpno(先修课)为外码,被参照表为Course,被参照列是Cno/

create table SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,primary key (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno));
go

/表SC的主码为(Sno, Cno), Sno和Cno均为外码,被参照表分别为Student和Course,被参照列分别为Student.Sno和Course.Cno/

insert into student values('200215121','李勇','男',20,'CS');
insert into student values('200215122','刘晨','女',19,'CS');
insert into student values('200215123','王敏','女',18,'MA');
insert into student values('200215125','张立','男',19,'IS');
go

/为表Student添加数据/

insert into course values('1', '数据库', NULL,4);
insert into course values('2', '数学',  NULL,2);
insert into course values('3', '信息系统', NULL,4);
insert into course values('4', '操作系统', NULL,3);
insert into course values('5', '数据结构', NULL,4);
insert into course values('6', '数据处理', NULL, 2);
insert into course values('7', 'PASCAL语言',  NULL,4);
go
update Course set Cpno = '5' where Cno = '1';
update Course set Cpno = '1' where Cno = '3';
update Course set Cpno = '6' where Cno = '4';
update Course set Cpno = '7' where Cno = '5';
update Course set Cpno = '6' where Cno = '7';
go

/为表Course添加数据/

insert into SC values('200215121', '1',92);
insert into SC values('200215121', '2',85);
insert into SC values('200215121', '3',88);
insert into SC values('200215122', '2',90);
insert into SC values('200215122', '3',80);
go

也可以将上述SQL语句序列预先保存在S_T.sql文件中,在SSMS中打开并执行该文件中的sql语句序列
对学生关系Student、课程关系Course和选修关系SC进行多表查询
基本练习
(1)等值连接查询与自然连接查询
例如:查询每个学生及其选修课的情况。

SELECT Student.*, SC.*
FROM Student, SC
WHERE Student.Sno = SC.Sno; /* 一般等值连接 */

又如:查询每个学生及其选修课的情况(去掉重复列)

SELECT Student.Sno, Sname, Ssex, Sage, Cno, Grade
FROM Student, SC
WHERE Student.Sno = SC.Sno;  /* 自然连接--特殊的等值连接 */

(2)自身连接查询
例如:查询每一门课的间接先修课。

SELECT FIRST.Cno, SECOND.Cpno
FROM Course FIRST, Course SECOND
WHERE FIRST.Cpno = SECOND.Cno;

(3)外连接查询
例如:查询每个学生及其选修课的情况(要求输出所有学生–含未选修课程的学生的情况)

SELECT Student.Sno, Sname, Ssex, Sage, Sdept, Cno, Grade
FROM Student LEFT OUTER JOIN SC ON(Student.Sno = SC.Sno);

(4)复合条件连接查询
例如:查询选修了2号课程而且成绩在90以上的所有学生的学号和姓名。

SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno = SC.Sno ANDSC.Cno = '2' AND SC.Grade >= 90;

又如:查询每个学生的学号、姓名、选修的课程名及成绩。

SELECT Student.Sno, Sname, Cname, Grade
FROM Student, SC, Course
WHERE Student.Sno = SC.Sno ANDSC.Cno = Course.Cno;

(5)嵌套查询(带有IN谓词的子查询)
例如:查询与“刘晨”在同一个系学习的学生的学号、姓名和所在系。

SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept IN (SELECT SdeptFROM StudentWHERE Sname = '刘晨');   /* 解法一*/

可以将本查询中的IN谓词用比较运算符‘=’来代替:

SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept = (SELECT SdeptFROM StudentWHERE Sname = '刘晨');   /* 解法二*/```
也可以使用自身连接完成以上查询:
```sql
SELECT s1.Sno, s1.Sname, s1.Sdept
FROM Student s1, Student s2
WHERE s1.Sdept = S2.Sdept AND s2.Sname = '刘晨';       /* 解法三*/
还可以使用EXISTS谓词完成本查询:
SELECT Sno, Sname, Sdept
FROM Student S1
WHERE EXISTS(SELECT *FROM Student S2WHERE S2.Sdept=S1.Sdept AND S2.Sname='刘晨'); /* 解法四*/

又如:查询选修了课程名为“信息系统”的学生号和姓名。

SELECT Sno, Sname
FROM Student
WHERE Sno IN (SELECT SnoFROM SCWHERE Cno IN(SELECT CnoFROM CourseWHERE Cname = '信息系统'));```
也可以使用连接查询来完成上述查询:
```sql
SELECT Student.Sno, Sname
FROM Student, SC, Course
WHERE Student.Sno = SC.Sno ANDSC.Cno = Course.Cno ANDCourse.Cname = '信息系统';

(6)嵌套查询(带有比较运算符的子查询)
例如:找出每个学生超过他所选修课程平均成绩的课程号。

SELECT Sno, Cno
FROM SC x
WHERE Grade >= ( SELECT AVG(Grade)FROM SC yWHERE y.Sno = x.Sno);

(7)嵌套查询(带有ANY或ALL谓词的子查询)
例如:查询其他系中比计算机系某个学生年龄小的学生的姓名和年龄。

SELECT Sname, Sage 
FROM  Student
WHERE Sage <ANY (SELECT SageFROM StudentWHERE Sdept = 'CS')AND Sdept <> 'CS';

本查询也可以使用聚集函数来实现:

SELECT Sname, Sage 
FROM  Student
WHERE Sage < (SELECT MAX(Sage)FROM StudentWHERE Sdept = 'CS')AND Sdept <> 'CS';

又如:查询其他系中比计算机系所有学生年龄都小的学生的姓名和年龄。

SELECT Sname, Sage 
FROM  Student
WHERE Sage <ALL (SELECT SageFROM StudentWHERE Sdept = 'CS')AND Sdept <> 'CS';

也可以使用聚集函数来实现:

SELECT Sname, Sage 
FROM  Student
WHERE Sage < (SELECT MIN(Sage)FROM StudentWHERE Sdept = 'CS')AND Sdept <> 'CS';

(8)嵌套查询(带有EXISTS谓词的子查询)
例如:查询所有选修了1号课程的学生姓名。
111sqlSELECT Sname
FROM Student
WHERE EXISTS
(SELECT *
FROM SC
WHERE Sno=Student.Sno AND Cno=‘1’);

又如:查询所有未选修1号课程的学生姓名。
```sql
SELECT Sname
FROM Student
WHERE NOT EXISTS(SELECT *FROM SCWHERE Sno=Student.Sno AND Cno='1');

可以使用带有EXISTS谓词的子查询实现全称量词或蕴涵逻辑运算功能:
例如:查询选修了全部课程的学生姓名。

SELECT Sname
FROM Student
WHERE NOT EXISTS(SELECT *FROM CourseWHERE NOT EXISTS(SELECT *FROM SCWHERE Sno=Student.Sno ANDCno=Course.Cno));

又如:查询至少选修了学生200215122选修的全部课程的学生号码。

SELECT DISTINCT Sno
FROM SC SCX
WHERE NOT EXISTS(SELECT *FROM SC SCYWHERE SCY.Sno='200215122' ANDNOT EXISTS(SELECT *FROM SC SCZWHERE SCZ.Sno=SCX.Sno ANDSCZ.Cno=SCY.Cno));

(9)集合查询
例如:查询计算机系的学生以及年龄不大于19岁的的学生。

SELECT *
FROM Student
WHERE Sdept='CS'
UNION      /*并集运算*/
SELECT *
FROM Student
WHERE Sage<=19;

可以改用多重条件查询:

SELECT *
FROM Student
WHERE Sdept='CS' OR Sage<=19;

又如:查询既选修了课程1又选修了课程2的学生(交集运算)。

SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT        /*交集运算*/
SELECT Sno
FROM SC
WHERE Cno='2';

可以使用嵌套查询:

SELECT Sno
FROM SC
WHERE Cno='1' AND Sno IN(SELECT SnoFROM SCWHERE Cno='2');

思考:能不能改用多重条件查询?

SELECT Sno
FROM SC
WHERE Cno='1' AND Cno='2';

再如:查询计算机系的学生与年龄不大于19岁的学生的差集。

SELECT *
FROM Student
WHERE Sdept='CS'
EXCEPT        /*差集运算*/
SELECT *
FROM Student
WHERE Sage<=19;

可以改用多重条件查询:

SELECT *
FROM Student
WHERE Sdept='CS' AND Sage>19;

结果示意

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.khdw.cn/news/28590.html

相关文章:

  • 毕业设计做网站 服务器怎么弄软件测试培训班多少钱
  • 郑州做网站优化外包站内搜索工具
  • 网站建设评标办法兰州做网站的公司
  • 网站开发是什么意思啊2023年10月疫情恢复
  • 做网站域名需哪些如何注册网站怎么注册
  • wordpress多站列表怎么进行推广
  • 网站是可以做的吗泰安百度推广电话
  • 网站的总体风格包括成都网站seo厂家
  • 建站 哪个网站系统好用淘客推广怎么做
  • 青岛网站建设最便宜免费域名怎么注册
  • 转包网站建设做非法事情五年级下册数学优化设计答案
  • 淳安网站建设免费推广平台排行
  • 手机3g门户首页网址seo优化排名
  • 网站 尺寸seo研究中心vip教程
  • 什么网站可以做宣传公关公司排行榜
  • 有哪些网站建设企业今日新闻网
  • 廊坊网站建设电话2020 惠州seo服务
  • 我们做的网站是优化型结构百度长尾关键词挖掘
  • 社保网站减员申报怎么做口碑营销的作用
  • 网站建设金成都百度推广联系方式
  • 做网站的工具+论坛seo和网络推广有什么区别
  • 网站建设banner关键词林俊杰的寓意
  • 衢州网站建设推广网络营销策划方案模板范文
  • 专业手机移动网站建设seo专员是什么意思
  • 做健身网站seo优化技术培训
  • 卧龙区建网站云南省最新疫情情况
  • 著名优秀产品设计案例seo搜索引擎优化介绍
  • 网站注册协议模板郑州做网站的专业公司
  • 做教学的视频网站有哪些问题网站竞价推广都有哪些
  • 贵州网站建设推荐在线crm网站建站