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

目录

[1 有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列查询等价的SQL表达式:](#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中一个关系就对应一个表。视图是从一个或几个基本表导出的表,视图本身不独立存储在数据库中,是一个虚表,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。

相关推荐
brave_zhao19 小时前
达梦8最终锁阻塞巡检 SQL
数据库
一 乐1 天前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
1.14(java)1 天前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme1 天前
数据库索引的原理及类型和应用场景
数据库
IDC02_FEIYA1 天前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录1 天前
MySQL面试题——联合索引
数据库·面试
萧曵 丶1 天前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网1 天前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
毕设十刻1 天前
基于Vue的人事管理系统67zzz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
TDengine (老段)1 天前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据