SQL语句练习06

news2024/12/24 2:32:19

目录

一、建表

二、SQL语句练习


一、建表

  • 一、建立如下学生表(命名格式姓名拼音_三位学号_week8student”,如LBJ_023_week8student)

create table LYL_116_week8student(SNO int primary key,
SNAME char(8) not null unique,SEX char(2),
DEPTNO int foreign key references LYL_116_week8dept(DEPTNO)) 

  • 二、建立如下课程表(命名格式姓名拼音_三位学号_week8course”,如LBJ_023_week8course)

create table LYL_116_week8course(CNO int,
CNAME char(20) not null,TNO int,CREDIT int,
primary key(CNO,TNO),
foreign key (TNO) references LYL_116_week8teacher(TNO)) 

  • 三、建立如下选课表(命名格式姓名拼音_三位学号_week8sc”,如LBJ_023_week8sc)

create table LYL_116_week8sc(SNO int,CNO int,GRADE int,
primary key(SNO,CNO),
foreign key (SNO) references LYL_116_week8student(SNO),
foreign key (CNO) references LYL_116_week8course(CNO)) 

  • 四、建立如下教师表(命名格式姓名拼音_三位学号_week8teacher”,如LBJ_023_week8teacher)

create table LYL_116_week8teacher(TNO int primary key,
TNAME char(8) not null, DEPTNO int
foreign key references LYL_116_week8dept(DEPTNO)) 

  • 五、建立如下系表(命名格式姓名拼音_三位学号_week8dept”,如LBJ_023_week8dept)

create table LYL_116_week8dept(DEPTNO int primary key,
DEPTNAME char(20) not null) 

二、SQL语句练习

  • 1)在Student表中加入属性SAGE(INT)

alter table LYL_116_week8student add SAGE int

  • 2)将Student表中的属性SAGE类型改为SMALLINT

alter table LYL_116_week8student 
alter column SAGE smallint

  • 3)在Student表上建立关于SNO的唯一索引

alter table LYL_116_week8student add unique(SNO)

  • 4)在Course表上建立关于CNO降序的唯一索引

alter table LYL_116_week8course add unique(CNO desc)

  • 5)在五张表中插入如右侧的数据

insert into LYL_116_week8student values(1001,'张天','男',10,20)
insert into LYL_116_week8student values(1002,'李兰','女',10,21)
insert into LYL_116_week8student values(1003,'陈铭','男',10,21)
insert into LYL_116_week8student values(1004,'刘茜','女',20,21)
insert into LYL_116_week8student values(1005,'马朝阳','男',20,22) 

insert into LYL_116_week8course values(1,'数据结构',101,4)
insert into LYL_116_week8course values(2,'数据库',102,4)
insert into LYL_116_week8course values(3,'离散数学',103,4)
insert into LYL_116_week8course values(4,'C语言程序设计',101,2)

insert into LYL_116_week8sc values(1001,1,80)
insert into LYL_116_week8sc values(1001,2,85)
insert into LYL_116_week8sc values(1001,3,78)
insert into LYL_116_week8sc values(1002,1,78)
insert into LYL_116_week8sc values(1002,2,82)
insert into LYL_116_week8sc values(1003,1,92)
insert into LYL_116_week8sc values(1004,1,87)
insert into LYL_116_week8sc values(1004,4,90)
insert into LYL_116_week8sc values(1005,1,85)
insert into LYL_116_week8sc values(1005,4,92)

insert into LYL_116_week8teacher values(101,'张星',10)
insert into LYL_116_week8teacher values(102,'李珊',10)
insert into LYL_116_week8teacher values(103,'赵天应',10)
insert into LYL_116_week8teacher values(104,'李田',20)

insert into LYL_116_week8dept values(10,'计算机')
insert into LYL_116_week8dept values(20,'信息') 

  • 6)查询全体学生的姓名和所在的系名

select s.SNAME'姓名',d.DEPTNAME'所在系名' from LYL_116_week8student s,
LYL_116_week8dept d where s.DEPTNO = d.DEPTNO

  • 7)查询数据结构这门课的平均成绩

select avg(sc.GRADE)'数据结构的平均成绩' 
from LYL_116_week8sc sc,LYL_116_week8course c
where sc.CNO = c.CNO and c.CNAME='数据结构'
group by sc.CNO

  • 8)为计算机系的学生记录建立一个视图CS_STUDENT

create view CS_STUDENT as
select s.SNO,s.SNAME,s.SEX,s.DEPTNO,d.DEPTNAME
from LYL_116_week8student s,LYL_116_week8dept d
where s.DEPTNO=d.DEPTNO and d.DEPTNAME='计算机'

  • 9)利用视图,列出所有计算机学生的姓名,选课名和成绩

select cs.SNAME,c.CNAME,sc.GRADE
from CS_STUDENT cs,LYL_116_week8sc sc,LYL_116_week8course c
where c.CNO=sc.CNO and cs.SNO = sc.SNO

  • 10)查询所有女生的姓名

select s.SNAME from LYL_116_week8student s
where s.SEX='女'

  • 11)查询成绩在8089之间的所有学生选课记录,查询结果按成绩的降序排列

select * from LYL_116_week8sc sc
where sc.GRADE between 80 and 89
order by sc.GRADE desc

  • 12)查询各个系的学生人数

select count(s.DEPTNO)'人数',d.DEPTNAME'系名'
from LYL_116_week8student s,LYL_116_week8dept d
where s.DEPTNO=d.DEPTNO group by s.DEPTNO,d.DEPTNAME

  • 13)查询信息系年龄在21岁以下(含21岁)的女生姓名及其年龄

select s.SNAME,s.SAGE from LYL_116_week8dept d,LYL_116_week8student s
where d.DEPTNAME='信息' and s.SEX='女' and s.SAGE<=21

  • 14)查询选修总学分在10学分以上的学生姓名

select s.SNAME'选修总学分在10分以上'
from LYL_116_week8course c,LYL_116_week8sc sc,LYL_116_week8student s
where c.CNO=sc.CNO and s.SNO=sc.SNO 
group by s.SNAME having sum(c.CREDIT)>10

  • 15)查询各门课程取得最高成绩的课程号、学生姓名及其成绩

select m.CNO,s.SNAME,m.maxG
from LYL_116_week8sc sc2,LYL_116_week8student s,
(select sc1.CNO,max(sc1.GRADE)'maxG'
from LYL_116_week8sc sc1 group by sc1.CNO)m
where m.CNO=sc2.CNO and sc2.GRADE=m.maxG and sc2.SNO=s.SNO

  • 16)查询选修了学号为1002的学生选修的全部课程的学生学号

select distinct SNO from LYL_116_week8sc sc1
where not exists(
  select * from LYL_116_week8sc sc2
  where sc2.SNO='1002'
  and not exists(
    select * from LYL_116_week8sc sc3
    where sc3.SNO = sc1.SNO
    and sc3.CNO = sc2.CNO))

  • 17)查询选修了张星老师开设的全部课程的学生姓名

select s.SNAME from LYL_116_week8student s
where not exists (
  select * from LYL_116_week8course c
  where c.TNO in(
    select t.TNO from LYL_116_week8teacher t
    where t.TNAME='张星'
    and not exists(
      select * from LYL_116_week8sc sc
      where sc.SNO=s.SNO and sc.CNO=c.CNO))
)

  • 18)查询选修张星老师数据结构课的学生的姓名和成绩

select s.SNAME,sc1.GRADE from LYL_116_week8sc sc1,LYL_116_week8student s
where sc1.CNO in 
(select c.CNO from LYL_116_week8teacher t,LYL_116_week8course c
where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
and sc1.SNO = s.SNO

  • 19)将张星老师数据结构课的学生成绩全部加2

update LYL_116_week8sc set GRADE = GRADE+2 where CNO in
(select c.CNO from LYL_116_week8teacher t,LYL_116_week8course c
where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
and SNO in (
select sc1.SNO from LYL_116_week8sc sc1,LYL_116_week8student s
where sc1.CNO in 
(select c.CNO from LYL_116_week8teacher t,LYL_116_week8course c
where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
and sc1.SNO = s.SNO)

  • 20)再次查询选修张星老师数据结构课的学生的姓名和成绩

select s.SNAME,sc1.GRADE from LYL_116_week8sc sc1,LYL_116_week8student s
where sc1.CNO in 
(select c.CNO from LYL_116_week8teacher t,LYL_116_week8course c
where t.TNAME='张星' and t.TNO=c.TNO and c.CNAME='数据结构')
and sc1.SNO = s.SNO

  • 21)查询马朝阳同学的所有选课记录

select * from LYL_116_week8student s,LYL_116_week8sc sc
where s.SNAME='马朝阳' and s.SNO=sc.SNO

  • 22)删除马朝阳同学的所有选课记录

delete from LYL_116_week8sc where SNO in
(select SNO from LYL_116_week8student where SNAME='马朝阳')

  • 23)再次查询马朝阳同学的所有选课记录

select * from LYL_116_week8student s,LYL_116_week8sc sc
where s.SNAME='马朝阳' and s.SNO=sc.SNO

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

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

相关文章

初学Nodejs(7):mysql模块的简单使用

文章目录Nodejsmysql模块1、在项目中操作数据库的步骤1.1 安装操作mysql数据库的第三方模块&#xff08;mysql&#xff09;1.2 通过mysql模块连接到mysql数据库&#xff0c;并进行必要配置1.3 通过mysql模块执行sql语句1.3.1 查询数据1.3.2 插入数据插入数据的快捷方式1.3.3 更…

43_读写内部Flash实验

目录 STM32的内部FLASH简介 内部FLASH的构成 主存储器 系统存储区 对内部FLASH的写入过程 解锁 擦除扇区 写入数据 操作内部FLASH的库函数 FLASH解锁、上锁函数 设置操作位数及擦除扇区 写入数据 实验源码 STM32的内部FLASH简介 在STM32芯片内部有一个FLASH(nor …

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_ Traceability Documentation Environment

由于Traceability & Documentation和Environment的两块内容较少&#xff0c;所以就合并起来介绍&#xff0c;单独的功能介绍略少&#xff0c;就不分开了&#xff0c;vTESTstudio工具栏介绍这块内容主要也是给大家做个普及&#xff0c;大家也是主要做个了解&#xff0c;方便…

可信启动、安全启动:SGX、TrustZone、SecureEnclave

最近在公众号上看到了一篇文章&#xff0c;算是又丰富了自己的安全方面的眼界。 最近看公众号取代了小视频、知乎这些东西。以前是真的不喜欢碎片化的东西&#xff0c;看什么学什么总是要找到书籍。但是这样的做法太过的极端&#xff0c;因为有时候有些事是两面性的。比如像安全…

SD nand与SD卡 SPI模式驱动

SD nand 与 SD卡的SPI模式驱动 文章目录SD nand 与 SD卡的SPI模式驱动1. 概述2. SPI接口模式与SD接口模式区别2.1 接口模式区别2.2 硬件引脚2.3 注意事项3. SD接口协议3.1 命令3.1.1 命令格式3.1.2 命令类型3.2 响应3.2.1 响应格式4. SD nand&#xff08;SD卡&#xff09;结构描…

小程序01/ 小程序 模板语法—条件渲染方式、小程序 模板语法-列表循环渲染方式

模板语法—条件渲染方式 1.wx:if 语法: 单分支: wx:if" 条件 " 双分支: wx:else 多分支: wx:elif" 条件 " 作用: 根据条件渲染 如果条件不满足 则该元素不会添加到DOM数 注意: wx:else前面必须要有 wx:if 或 wx:elif 2.hidden 语法: hidden&qu…

Vue Router安装与基本使用

Vue Router安装与基本使用(入门使用) 一、安装 npm install vue-router4在package.json 会配置一行 “vue-router”: “^4.1.6” 二、基本使用 2.1、新建路由器 新建 router文件夹 1个index.js文件 //1.定义路由组件 import Home from ../views/Home.vue import About from ..…

[附源码]Python计算机毕业设计Django学生社团信息管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

QtCreator同时运行多个程序

更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;Qt开发经验 &#x1f448; QtCreator同时运行多个程序 在Windows下QtCreator默认只能运行一个程序&#xff0c;再次编译运行就会自动关闭之前运行的程序&#xff1b; 有时候我们想运行多个程序时&#x…

【电力系统】考虑储能优化的微网能量管理双层模型附matlab代码

​✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法…

一篇文章带你了解HBase、Zookeeper的安装部署

第 2 章 HBase 快速入门2.1 HBase 安装部署2.1.1 Zookeeper 正常部署2.1.2 Hadoop 正常部署2.1.3 HBase 的解压2.1.4 HBase 的配置文件2.1.5 HBase 远程发送到其他集群2.1.6 HBase 服务的启动2.1.7 查看 HBase 页面2.1.8 高可用&#xff08;可选&#xff09;2.2 HBase Shell 操…

「地表最强」C++核心编程(四)类和对象—对象初始化和清理

环境&#xff1a; 编译器&#xff1a;CLion2021.3&#xff1b;操作系统&#xff1a;macOS Ventura 13.0.1 文章目录一、构造函数和析构函数1.1 构造函数1.2 析构函数1.3 示例二、构造函数的分类及调用1.1 构造函数的分类1.2 构造函数的调用三、拷贝构造函数调用时机3.1 调用时机…

黑*头条_第1章_环境搭建、SpringCloud微服务(注册发现、服务调用、网关)(新版)

黑*头条_第1章_环境搭建、SpringCloud微服务(注册发现、服务调用、网关)&#xff08;新版&#xff09; 文章目录黑*头条_第1章_环境搭建、SpringCloud微服务(注册发现、服务调用、网关)&#xff08;新版&#xff09;1)课程对比2)项目概述2.1)能让你收获什么2.2)项目课程大纲2.3…

计算机毕业设计——基于HTML仿淘宝电商项目的设计与实现管理系统论文源码(21页)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

毕业设计 stm32便携用电功率统计系统 -物联网 嵌入式 单片机

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理4.1 降压电路4.2 接口部分4.3 主控4.4 OLED模块5 部分核心代码5 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的…

小黑被劝退了,生活学习依然继续的leetcode之旅:572. 另一棵树的子树

小黑代码 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isSubtree(self, root: Optional[TreeNode],…

PyTorch~cpp_extension

还是pytorch哈~~ 结合 Python 与 C 各自的优点&#xff0c;在 PyTorch 中加入 C / CUDA的扩展&#xff0c;详细解释C/CUDA 算子实现和调用全流程 代码来源&#xff1a;MMCV, PyTorch。 https://github.com/open-mmlab/mmcv https://github.com/pytorch/pytorch 注&#xff1a…

python 编程 函数的返回值

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.函数 1.函数的返回值介绍 2.函数的返回值定义 例子&#xff1a; 3.函…

【图像去噪】均值+中值滤波图像去噪(含PNSR)【含GUI Matlab源码 372期】

⛄一、图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素&#xff0c;图像去噪是指减少图像中噪声的过程。噪声分类有三种&#xff1a;加性噪声&#xff0c;乘性噪声和量化噪声。我们用f(x,y&#xff09;表示图像&#xff0c;g(x,y&#xff0…

面试题:进程 线程 协程

进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位 通俗的讲&#xff1a;进程可以理解为我们在电脑上正在运行的一个个应用&#xff0c;例如&#xff1a;QQ&#xff0c;微信&#xff0c;LOL…