数据库第三章作业-SQL语言

news/2024/2/20 15:29:19

目录

1 有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:

(1)σA=10(S)

(2)πA,B(S)

(3)S⨝T

(4)S⨝S.C=T.CT

(5)S⨝A<>

(6)πC,D(S)×T

2.用SQL语句建立第2章习题6中的4个表;针对建立的4个表用SQL完成第2章习题6中的查询

(1)建表

①S表

②P表

③J表

④SPJ表

(2)查询

①求供应工程J1零件的供应商号码SNO

②求供应工程J1零件P1的供应商号码SNO

③求供应工程J1零件为红色的供应商号码SNO

④求没有使用天津供应商生产的红色零件的工程号JNO

⑤求至少用了供应商S1所供应的全部零件的工程号JNO

3.什么是基本表?什么是视图?两者的区别和联系是什么?


1 有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:

(1)σA=10(S)

SELECT *

FROM S

WHERE A=10;

(2)πA,B(S)

SELECT DISTINCT A,B

FROM S;

(3)S⨝T

SELECT A,B,S.C,S.D,E,F

FROM S,T

WHERE S.C=T.C AND S.D=T.D;

(4)S⨝S.C=T.CT

SELECT A,B,S.C,S.D,T.C,T.D,E,F

FROM S,T

WHERE S.C=T.C;

(5)S⨝A<ET

SELECT A,B,S.C,S.D,T.C,T.D,E,F

FROM S,T

WHERE A<E;

(6)πC,D(S)×T

SELECT S.C,S.D,T.C,T.D,E,F 

FROM S,T;

2.用SQL语句建立第2章习题6中的4个表;针对建立的4个表用SQL完成第2章习题6中的查询

(1)建表

①S表

CREATE TABLE S

(

SNO CHAR(2) UNIQUE,

SNAME CHAR(6),

STATUS CHAR(2),

CITY CHAR(4),

);

INSERT

INTO S(SNO,SNAME,STATUS,CITY)

VALUES ('s1','精益','20','天津'),

('s2','盛锡','10','北京'),

('s3','东方红','30','北京'),

('s4','丰泰盛','20','天津'),

('s5','为民','30','上海');

②P表

CREATE TABLE P

(

PNO CHAR(2) UNIQUE,

PNAME CHAR(6),

COLOR CHAR(2),

WEIGHT INT,

);

INSERT

INTO P(PNO, PNAME, COLOR, WEIGHT)

VALUES ('p1','螺母','红',12),

('p2','螺栓','绿',17),

('p3','螺丝刀','蓝',14),

('p4','螺丝刀','红',14),

('p5','凸轮','蓝',40),

('p6','齿轮','红',30);

③J表

CREATE TABLE J

(

JNO CHAR(2),

JNAME CHAR(8),

CITY CHAR(4),

);

INSERT

INTO J(JNO, JNAME, CITY)

VALUES ('j1','三建','北京'),

('j2','一汽','长春'),

('j3','弹簧厂','天津'),

('j4','造船厂','天津'),

('j5','机车厂','唐山'),

('j6','无线电厂','常州'),

('j7','半导体厂','南京');

④SPJ表

CREATE TABLE SPJ

(

SNO CHAR(2),

PNO CHAR(2),

JNO CHAR(2),

QTY INT,

);

INSERT

INTO SPJ(SNO,PNO,JNO,QTY)

VALUES ('s1','p1','j1',200),

('s1','p1','j3',100),

('s1','p1','j4',700),

('s1','p2','j2',200),

('s2','p3','j1',400),

('s2','p3','j2',200),

('s2','p3','j4',500),

('s2','p3','j5',400),

('s2','p5','j1',400),

('s2','p5','j2',100),

('s3','p1','j1',200),

('s3','p3','j1',200),

('s4','p5','j1',100),

('s4','p6','j3',300),

('s4','p6','j4',200),

('s5','p2','j4',100),

('s5','p3','j1',200),

('s5','p6','j2',200),

('s5','p6','j4',500);

(2)查询

①求供应工程J1零件的供应商号码SNO

SELECT DISTINCT SNO

FROM SPJ

WHERE JNO=’J1’;

②求供应工程J1零件P1的供应商号码SNO

SELECT DISTINCT SNO

FROM SPJ

WHERE JNO=’J1’ AND PNO=’P1’;

③求供应工程J1零件为红色的供应商号码SNO

方法1:

SELECT SNO

FROM SPJ

WHERE JNO=’J1’

  AND PNO IN

(SELECT PNO

FROM P

WHERE COLOR=’红’);

方法2:

SELECT SNO

FROM SPJ,P

WHERE P.PNO=SPJ.PNO

AND JNO=’J1’ AND COLOR=’红’;

④求没有使用天津供应商生产的红色零件的工程号JNO

方法1:

SELECT JNO

FROM J

WHERE NOT EXISTS

(SELECT *

FROM SPJ

WHERE SPJ.JNO=J.JNO

AND SNO IN

(SELECT SNO

FROM S

WHERE CITY=’天津’)

AND PNO IN

(SELECT PNO

FORM P

WHERE COLOR=’红’));

方法2:

SELECT JNO

FROM J

WHERE NOT EXISTS

(SELECT *

FROM SPJ,S,P

WHERE SPJ.SNO=S.SNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO

AND S.CITY=’天津’

AND P.COLOR=’红’);

⑤求至少用了供应商S1所供应的全部零件的工程号JNO

SELECT DISTINCT JNO

FROM SPJ AS SPJZ

WHERE NOT EXISTS (

SELECT *

FROM SPJ AS SPJX

WHERE SNO = 'S1'

AND NOT EXISTS (

SELECT *

FROM SPJ AS SPJY

WHERE SPJY.PNO = SPJX.PNO

AND SPJY.JNO = SPJZ.JNO

)

);

3.什么是基本表?什么是视图?两者的区别和联系是什么?

基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表,视图本身不独立存储在数据库中,是一个虚表,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。


https://www.xjx100.cn/news/3271189.html

相关文章

预测模型:MATLAB线性回归

1. 线性回归模型的基本原理 线性回归是统计学中用来预测连续变量之间关系的一种方法。它假设变量之间存在线性关系&#xff0c;可以通过一个或多个自变量&#xff08;预测变量&#xff09;来预测因变量&#xff08;响应变量&#xff09;的值。基本的线性回归模型可以表示为&…

ROS笔记一:工作空间和功能包

目录 工作空间 如何创建工作空间&#xff1a; 编译工作空间 设置环境变量 功能包 创建功能包 CMakeLists.txt package.xml 工作空间 ROS的工作空间是用来存放工程文件代码的文件夹 ROS的开发依赖于工作空间&#xff0c;包括编写代码、编译等都是在工作空间下进行的 工作空…

SpringCloud-项目引入Nacos

一、安装Nacos服务 首先&#xff0c;我们需要从 Nacos 的官方网站下载发布版本。下载地址&#xff1a;Releases alibaba/nacos GitHub 选择合适的版本并下载&#xff0c;解压缩得到 Nacos 的安装包。 在解压后的 Nacos 目录中&#xff0c;找到 bin 文件夹。 用写字板编辑…

GreenSock(GSAP)路径动画例子

要使用 GreenSock&#xff08;GSAP&#xff09;实现一个路径动画&#xff0c;您可以使用 GSAP 的 MotionPath 插件来让元素沿着指定的路径移动。以下是一个完整的示例代码&#xff0c;展示了如何使用 GSAP 创建一个路径动画&#xff1a; 首先&#xff0c;确保你已经引入…

用git命令来上传项目到GitHub我自己的仓库

目录 在GitHub上创建仓库并使用git命令上传到仓库的步骤如下&#xff1a; 其他操作 怎么退出git/COMMIT_EDITMSG [unix] 相关报错 error: src refspec main does not match any error: failed to push some refs to https://github.com/Liu22Jun16Liang/MyQt error: fail…

python-分享篇-GUI界面开发-PyQt5-在窗口中弹出等待提示框

代码 # *_* coding : UTF-8 *_* # 文件名称 &#xff1a;waiting_prompt.py # 开发工具 &#xff1a;PyCharmfrom window import Ui_MainWindow # 导入窗体ui类 from PyQt5.QtWidgets import QMainWindow, QApplication # 导入qt窗体类 from PyQ…

Python中Pymysql库的常见用法和代码示例

关注B站可以观看更多实战教学视频&#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) pymysql是一个用于连接MySQL数据库的Python库&#xff0c;它允许你执行SQL查询并处理返回的结果。以下是pymysql库的一些常见用法和代码示例&#xff1a; 1. 安装…

02.数据结构

一、链表 作用&#xff1a;用于写邻接表&#xff1b; 邻接表作用&#xff1a;用于存储图或树&#xff1b; 1、用数组模拟单链表 #include<iostream> using namespace std;const int N 100010;// head 表示头结点的下标 // e[i] 表示结点i的值 // ne[i] 表示结点i的ne…