数据库的查询
S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,Q 零件表P由零件零件代码(PNO)、零件TY); 供应商S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商的在城市(CITY)组成。 名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某工程项目的数量为QTY。 今有若干数据如下: S表:
P表:
J表:
SPJ表:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5、输入代码: Show databases; drop database SPJ; create database SPJ; #使用SPJ数据库 use SPJ; show tables; -- 创建S表 create table S( SNO varchar(20)primary key, SNAME varchar(20) not null unique, STATU int not null, CITY char(20) ); -- 创建P表 create table P( PNO varchar(20)primary key, PNAME varchar(20) not null , COLOR varchar(20) not null, WEIGHT int not null ); -- 创建J表 create table J( JNO varchar(20)primary key, JNAME varchar(20) not null, CITY char(20) -- constraint fk_bcid foreign key(CITY) references S(CITY) ); -- 创建SPJ表 create table SPJ( SNO varchar(20), PNO varchar(20), JNO varchar(20), QTY int not null, primary key(SNO,PNO ,JNO) ); -- 插入S表数据 insert into S(SNO ,SNAME ,STATU ,CITY )values ('S1','精益',20,'天津'), ('S2','盛锡',10,'北京'), ('S3','东方红',30,'北京'), ('S4','丰泰盛',20,'天津'), ('S5','为民',30,'上海'); -- 插入P表数据 insert into P(PNO,PNAME ,COLOR ,WEIGHT )values ('P1','螺母','红',12), ('P2','螺栓','绿',17), ('P3','螺丝刀','蓝',14), ('P4','螺丝刀','红',14), ('P5','凸轮','蓝',40), ('P6','齿轮','红',30); -- 插入J表数据 insert into J(JNO,JNAME ,CITY)values ('J1','三建','北京'), ('J2','一汽','常春'), ('J3','弹簧厂','天津'), ('J4','造船厂','天津'), ('J5','机车厂','唐山'), ('J6','无线电厂','常州'), ('J7','半导体厂','南京'); -- 插入SPJ表数据 insert into SPJ(SNO,PNO,JNO,QTY)values ('S1','P1','J1',200), ('S1','P1','J3',100), ('S1','P1','J4',700), ('S1','P2','J2',100), ('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 SNO from SPJ where JNO = 'J1'; -- 3求供应工程J1零件P1的供应商号码SNO select SNO from SPJ where JNO = 'J1'and PNO='P1'; -- 4求供应工程J1零件为红色的供应商号码SNO select SNO from SPJ,P where JNO = 'J1'and SPJ.PNO=P.PNO and P.COLOR='红'; -- 5求没有使用天津供应商生产的红色零件的工程号JNO select JNO from SPJ where not exists (select * from SPJ ,S,P where SPJ.SNO=S.SNO and SPJ.PNO=P.PNO and s.CITY = '天津' and P.COLOR='红'); select JNO from SPJ where PNO in(select PNO from P where COLOR='红') and SNO not in(select SNO from S where CITY='天津'); -- 6求至少用了供应商S1所供应的全部零件的工程号JNO select distinct PNO from SPJ where SNO='S1'; select JNO from SPJ where PNO='P1' and JNO in (select JNO from SPJ where PNO='P2'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X5\spj\spj\ -HeidiSQL Poortable 9.3.0.4984等实验环境 |