实验1 SQL的DDL语言和单表查询

article/2024/12/26 23:01:12

第1关:创建供应商表S(SNO,SNAME,STATUS,CITY)

任务描述
创建供应商表S(SNO,SNAME,STATUS,CITY)
相关知识
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
S表如下图:
在这里插入图片描述

CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),`STATUS` INT,CITY CHAR(8)
); INSERT INTO S
VALUES('S1', '精益', 20, '天津'),('S2', '盛锡', 10, '北京'),('S3', '东方红', 30, '北京'),('S4', '丰泰盛', 20, '天津'),('S5', '为民', 30, '上海');

第2关:将P表中的所有红色零件的重量增加6

任务描述
P表中的所有红色零件的重量增加6
相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
在这里插入图片描述

update P
set WEIGHT=WEIGHT+6
where COLOR='红';

第3关:把P表中全部红色零件的颜色改成蓝色

任务描述
P表中全部红色零件的颜色改成蓝色
相关知识 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

update P
set COLOR='蓝'
where COLOR='红';

第4关:将SPJ表中由S5供给J4的零件P6改为由S3供应

任务描述
SPJ表中由S5供给J4的零件P6改为由S3供应
相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件给某工程项目的数量为QTYSPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

UPDATE SPJ
SET SNO='S3'
WHERE SNO='S5' 
AND JNO='J4' 
AND PNO='P6';

第5关:将SPJ表中所有天津供应商的QTY属性值减少11(用子查询方式)

任务描述
SPJ表中所有天津供应商的QTY属性值减少11(用子查询方式)

相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:
任务描述 将SPJ表中所有天津供应商的QTY属性值减少11(用子查询方式)
相关知识
1、供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:

在这里插入图片描述

现已构建S表,结构信息如下:

在这里插入图片描述

2、供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商 供应某种零件给某工程项目的数量为QTY
SPJ表如下图:

在这里插入图片描述

现已构建SPJ表,结构信息如下:

在这里插入图片描述

UPDATE SPJ
set QTY=QTY-10
where '天津'=(select CITY from S where SPJ.SNO=S.SNO);

第6关:删除J表中的所有工程项目在天津的记录

任务描述
删除J表中的所有工程项目在天津的记录
相关知识 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
J表如下图:
在这里插入图片描述
现已构建J表,结构信息如下:
在这里插入图片描述

DELETE FROM J WHERE CITY= '天津';

第7关:从SPJ表中删除供应商号是S2的记录

任务描述
SPJ表中删除供应商号是S2的记录

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

DELETE FROM SPJ WHERE Sno= 'S2';

第8关:从SPJ表中删除零件名称为螺丝刀的记录(用子查询方式)

任务描述
SPJ表中删除零件名称为螺丝刀的记录(用子查询方式)

DELETE FROM SPJ WHERE PNO in(SELECT PNO FROM P where PNAME= '螺丝刀');

第9关:删除P表中所有的记录

任务描述
删除P表中所有的记录

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

DELETE FROM P;

第10关:请将(S2,J6,P4,200)插入供应情况关系表SPJ

任务描述
请将(S2J6P4200)插入供应情况关系表SPJ

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

INSERT INTO SPJ
VALUES('S2','P4','J6,200);

第11关:求供应工程J1零件的供应商号码SNO

任务描述
求供应工程J1零件的供应商号码SNO(注意去重复)
相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:

在这里插入图片描述

SELECT DISTINCT SNO from SPJ where JNO = 'J1';

第12关:求供应工程J1零件P1的供应商号码SNO

任务描述
求供应工程J1零件P1的供应商号码SNO

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

select SNO from SPJ where JNO ='J1' and PNO = 'P1';

第13关:找出所有供应商的姓名和所在城市

任务描述
找出所有供应商的姓名和所在城市

相关知识
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成.
S表如下图:

在这里插入图片描述
现已构建S表,结构信息如下:
在这里插入图片描述

SELECT SNAME,CITY FROM S;

第14关:找出所有零件的名称、颜色、重量

任务描述
找出所有零件的名称、颜色、重量

相关知识
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
P表如下图:
在这里插入图片描述
现已构建P表,结构信息如下:
在这里插入图片描述

SELECT PNAME,COLOR,WEIGHT FROM P;

第15关:找出使用供应商S1所供应零件的工程号码

任务描述
找出使用供应商S1所供应零件的工程号码

相关知识
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,标识某供应商供应某种零件 给某工程项目的数量为QTY
SPJ表如下图:
在这里插入图片描述
现已构建SPJ表,结构信息如下:
在这里插入图片描述

SELECT DISTINCT JNO FROM SPJ WHERE SNO='S1';

第16关:在users表中新增一个用户,user_id为2019100904学号,name为’2019-物联网-李明’

任务描述
在users表中新增一个用户,user_id为2019100904学号,name为’2019-物联网-李明’

相关知识
users为选手信息表; users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

insert into users(user_id,name) values ('2019100904','2019-物联网-李明');

第17关:在users表中更新用户 user_id为robot_2 的信息,name设为 ‘机器人二号’

任务描述
在users表中更新用户 user_id为robot_2 的信息,name设为 ‘机器人二号’
相关知识
users为选手信息表; users表如下图(仅显示前几条):

在这里插入图片描述

现已构建users表,结构信息如下:
现已构建users表,结构信息如下:

UPDATE users
set name='机器人二号'
where user_id='robot_2';

第18关:将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6

任务描述
将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6
相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

第18关: 将solution表中所有 problem_id 为1003 题目的解答结果(result)设为 6

任务描述
删除solution表中比赛contest_id 为1001的全部解答
相关知识 solution:选手提交的题目解答 solution表如下图(仅显示前几条):

UPDATE solution
set result=6
where problem_id=1003;

第19关:删除solution表中比赛contest_id 为1001的全部解答

任务描述
删除solution表中比赛contest_id 为1001的全部解答
相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

delete from solution where contest_id = 1001;

第20关:查询所有 contest 的 title 和 end_time

任务描述
查询所有 contest 的 title 和 end_time。
相关知识
contest为比赛信息表;
contest表如下图(仅显示前几条):
在这里插入图片描述
现已构建contest表,结构信息如下:
在这里插入图片描述

SELECT title, end_time FROM contest;

第21关:查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复

任务描述
查询哪些选手的 user_id 提交过 solution,要求结果中 user_id 不重复

相关知识
solution选手提交的题目解答。 solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT DISTINCT user_id from solution;

第22关:查询 end_time 晚于 ‘2020-11-21 17:30:00’ 的 contest_id

任务描述
查询 end_time 晚于 ‘2020-11-21 17:30:00’ 的 contest_id
相关知识
contest为比赛信息表; contest表如下图(仅显示前几条):
在这里插入图片描述
现已构建contest表,结构信息如下:
在这里插入图片描述

SELECT  contest_id  from contest where end_time > '2020-11-21 17:30:00';

第23关:查询 problem_id 在 1005~1009 之间的 problem 的 title

任务描述
查询 problem_id 在 1005~1009 之间的 problem 的 title

相关知识
problem为题目表; problem表如下图(仅显示前几条):
在这里插入图片描述
现已构建problem表,结构信息如下:
在这里插入图片描述

SELECT title from problem where problem_id between 1005 and 1009;

第24关:查询 language 不在 0、1、3 中的 solution 的 code_length

任务描述
查询 language 不在 0、1、3 中的 solution 的 code_length

相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):

在这里插入图片描述

现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT code_length from solution where language !=0 and language !=1 and language !=3;

第25关:查询2018级选手信息(user_id 为学号的用户前4位为年级)

任务描述
查询2018级选手信息(user_id 为学号的用户前4位为年级)

相关知识
users为选手信息表;
users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

SELECT * from users where user_id>=20180000000 and user_id<=20189999999

第26关:查询’生医’专业选手信息(name 中有 ‘生医’ 的选手)

任务描述
查询’生医’专业选手信息(name 中有 ‘生医’ 的选手)

相关知识
users为选手信息表; users表如下图(仅显示前几条):
在这里插入图片描述
现已构建users表,结构信息如下:
在这里插入图片描述

select * from users where name like '%生医%';

第27关:查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)

任务描述
查询不属于任何比赛的solution的 solution_id 和 in_date(contest_id 为 NULL)

相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

select solution_id,in_date from solution where contest_id is NULL;

第28关:查询 result 为 6 且 problem_id大于1010 的 solution_id与language

任务描述
查询 result 为 6 且 problem_id大于1010 的 solution_id与language

相关知识
solution:选手提交的题目解答 solution表如下图(仅显示前几条):
在这里插入图片描述

现已构建solution表,结构信息如下:

在这里插入图片描述

select solution_id ,language from solution where result=6 and problem_id > 1010;

第29关:查询提交过solution的选手人数

任务描述
查询提交过solution的选手人数

相关知识
solution:
选手提交的题目解答 solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT COUNT(DISTINCT solution.user_id) FROM solution;

第30关:查询耗内存(memory)最多的solution的内存消耗大小与 solution_id

任务描述
查询提交过solution的选手人数

相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

select memory,solution_id from solution
where memory in(select max(distinct memory) from solution
);

第31关:查询每个题目的提交数

任务描述
查询每个题目的提交数

相关知识 solution:选手提交的题目解答 solution表如下图(仅显示前几条):

在这里插入图片描述

现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT distinct problem_id, COUNT(solution.problem_id) FROM solution GROUP BY problem_id HAVING COUNT(*) > 0;

第32关:查询提交数大于20的题目的题号

任务描述
查询提交数大于20的题目的题号

相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):
在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

SELECT distinct problem_id FROM solution where problem_id in (SELECT problem_id FROM solution  GROUP BY problem_id HAVING COUNT(problem_id)>20);

第33关:查找所有problem_id 为1001 的解答或 contest_id 为空的解答

任务描述
查找所有problem_id 为1001 的解答或 contest_id 为空的解答

相关知识
solution:选手提交的题目解答
solution表如下图(仅显示前几条):

在这里插入图片描述
现已构建solution表,结构信息如下:
在这里插入图片描述

select * from solution where problem_id=1001 or contest_id is null;

http://chatgpt.dhexx.cn/article/Op97R2iY.shtml

相关文章

DML语言和DDL语言(数据库)

数据库DML,DDL语言&#xff1a;使用平台&#xff0c; DDL语言 1.create table 2.Create index 3.Alter table 4.Alter index 5.Drop index 1.展示数据库 2.使用某个数据库 3.展示表 4.查询表&#xff08;首先你要确定&#xff0c;你这个数据库有表&#xff09; 5.创建数…

mysql数据库-DDL语言

目录 1.DDL是什么&#xff1f; 2.有哪些常用的操作 1.查看数据库 2.创建数据库 2.删除数据库 3.添加查看表 4.删除表 5.修改表 &#xff08;1&#xff09;修改表类型 (2)增加表字段 &#xff08;3&#xff09;删除表字段 &#xff08;4&#xff09;修改字段名 &#x…

SQL语句之DDL语言

说明&#xff1a;DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;&#xff0c;用来定义数据库对象(数据库、表)&#xff0c;包括了数据库和表的创建、查询、使用和删除操作。 一、数据库操作 新安装的数据库&#xff0c;默认有以下四个数据库&…

DDL语言

其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表&#xff08;CREATE TABLE 或 DROP TABLE&#xff09;&#xff1b;为表加入索引等。 mysql是一个关系型数据库&#xff0c;库里面包含若干个表&#xff0c;而每一张表都是由行和列组成。 打开Navicat 1.0…

数据库:DML语言和DDL语言

文章目录 一、DML语言(数据操作语言)1.插入语句(1)方式一(2)方式二(3)两种方式比较 2.修改语句(1)修改单表的记录(2)修改多表的记录&#xff08;补充&#xff09; 3.删除语句(1)方式一(2)方式二(3)方式一与方式二区别(⭐) 二、DDL语言1.库的管理2.表的管理(1)表的创建A.语法B.常…

ddl是什么意思网络语_DDL(数据定义语言)

DDL,是对数据库内部的对象进行创建,删除,修改等的操作语言。它和DML语言最大的区别是DML只是对表内部数据的操作,而不涉及到表的定义,结构的修改,更不会涉及到其它对象。 1.连接数据库: 注:1.mysql代表客户端命令,-u后面跟连接的数据库用户,-p表示需要输入密码。 2.命令…

数据库定义语言(DDL)详解

数据库定义预压(DDL 语言)是重要的语言之一。包含三个关键字&#xff1a;CREATE,DROP,ALTER。 数据库语言都遵循巴科斯范式&#xff0c;其语言规范如下所示:L利用CREATE关键字可以实现定义&#xff1a;定义数据库&#xff0c;定义表&#xff0c;定义索引&#xff0c;定义视图等…

枚举到底是个什么鬼类型?

前言 枚举是很多面向对象语言都会有的一种类型&#xff0c;它可以将表达同一类型的变量组合成一个集合&#xff0c;组成一个常量集 在Java中也有枚举类型&#xff0c;是用enum关键字来表示的 枚举常用来表示一个常量集&#xff0c;用来限定变量的取值&#xff0c;只能在枚举…

面试官:为啥需要枚举?枚举有什么作用?怎么用枚举实现单例?

点赞再看&#xff0c;养成习惯&#xff0c;微信搜索【三太子敖丙】关注这个互联网苟且偷生的工具人。 本文 GitHub https://github.com/JavaFamily 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 Java基础&#xff1a;枚举的用法与原理 在学习过程中&…

了解什么是枚举(enumeration)

1、枚举是一组常量的集合。还可以看成包含有限特定的对象。 2、自定义枚举的步骤&#xff1a; 将构造器私有化private将get方法拿掉在类的内部直接创建固定的对象&#xff0c;比如&#xff1a;public static Season SPRING new Season("春天","温暖");使…

Java~枚举的使用

目录 枚举的定义 枚举的使用 values()的使用 ordinal()的使用 valueOf() 的使用 compareTo()的使用 枚举的优缺点 枚举的定义 枚举是JDK1.5以后引入的。主要用途&#xff1a;将一组常量组织起来&#xff0c;在引入枚举之前表示一组常量通常是使用定义常量的方式&…

枚举类的使用方法

一、理解枚举类型 枚举类型是Java 5中新增特性的一部分&#xff0c;它是一种特殊的数据类型&#xff0c;之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束&#xff0c;但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看如何写…

java枚举类详解

一、初始枚举 枚举类型是Java 5中新增特性的一部分&#xff0c;它是一种特殊的数据类型&#xff0c;之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束&#xff0c;但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举…

(JAVA): 自定义枚举和enum枚举类型------详解。

目录 言图&#xff1a; ☣☣一、基本介绍 ☣1、什么是枚举 ☣2、枚举的特点 ☣3、枚举的实现方式 ☣☣二、自定义类实现枚举 ☣1、自定义枚举的特点 ☣2、代码示例 ☣3、代码分析 ☣☣三、enum关键字实现枚举 ☣1、enum使用细节 ☣2、enum实现接口 ☣3、代码示例 …

色彩-基础理论

颜色三大指标 色相 色相是颜色的一个属性&#xff0c;只有黑白灰没有色相这个属性(那银灰色是什么&#xff1f;) 颜色的相貌&#xff0c;指的也是给颜色一个名字 例如&#xff1a;暗红、酒红、土黄、墨绿 饱和度 颜色的鲜艳程度 纯度 饱和度主要取决于含色成分和消色成分&a…

10bit、8bit色彩深度的区别

下面 一张图能说明区别&#xff0c;10bit能表现的颜色值范围更多

OpenCV色彩空间与通道

色彩空间与通道 色彩空间&#xff08;Color Space&#xff09;是指用来描述和表示图像颜色的一种方式。不同的色彩空间具有不同的颜色模型和表示方式&#xff0c;常见的色彩空间包括 RGB、CMYK、HSV、Lab 等。 通道&#xff08;Channel&#xff09;是指在某种色彩空间中独立表…

色彩空间(一):色彩空间基础

转载自&#xff1a;https://www.zhangxiaochun.com/color-space-1/ 序言 相信很多做设计的小伙伴都听说过 RGB 或者 CMYK 这样的概念&#xff0c;RGB 和 CMYK 就是两个典型的色彩空间模式&#xff0c;前者主要用于光学色彩展示&#xff08;比如我们的电脑显示屏&#xff09;&am…

【数字图像处理】色彩模型

作者介绍&#xff1a;小星的学习笔记&#xff0c;一名努力成为合格程序员的本科在读生 提示&#xff1a;本文仅为学习复习笔记&#xff0c;如有不对欢迎指正&#x1f389;&#x1f389;&#x1f389; 文章目录 前言 一、什么是色彩模型&#xff1f; 二、面向设备的色彩模型 …

色阶

Ps菜单&#xff1a;图层/新建调整图层/色阶 Layer/New Adjustment Layer/Levels Ps菜单&#xff1a;图像/调整/色阶 Image/Adjustments/Levels 快捷键&#xff1a;Ctrl/Cmd L 色阶 Levels命令可以调整图像的阴影、中间调和高光的强度级别&#xff0c;校正色调范围和色彩平衡。…