当前位置:文档之家› 数据库实验报告1

数据库实验报告1

《数据库系统原理》实验报告专业:___信息安全____班号:_______学号:______姓名:________实验日期:_________上机地点:_________实验环境:报告日期:2012年 4月26日一、实验内容、过程及完成情况(必须有所用的SQL语句、语句执行效果)1、第三章习题3(P127):用SQL语句建立第二章习题5 (P74)中四个表,创建的基本表应考虑数据完整性(1)打开cmd,进入mysql.exe文件所在的文件夹。

然后以用户名root密码123456登录。

如下图所示图1(2)执行创建数据库语句:create database mytest1;然后执行语句:show databases查看库,发现mytest1库建立成功。

如下图所示图2(3)选择数据库mytest1,然后执行创建表S的语句:CREATE TABLE S(SNO CHAR(2),SNAME VARCHAR(8),STATUS SMALLINT,CITY VARCHAR(8),PRIMARY KEY (SNO));如下图所示图3(4)执行语句describe S; 显示表S的结构。

如下图所示图4(5)在mytest1中,执行创建表P的语句:CREATE TABLE P(PNO CHAR(2),PNAME VARCHAR(8),COLOR CHAR(2),WEIGHT SMALLINT,PRIMARY KEY (PNO));如下图所示图5 (6)显示表P的结构,如下图所示图6 (7)在mytest1中,执行创建表J的语句:CREATE TABLE J(JNO CHAR(2),JNAME VARCHAR(8),CITY VARCHAR(8),PRIMARY KEY (JNO));如下图所示图7 (8)显示表J的结构,如下图所示(9)在mytest1中,执行创建表SPJ的语句:CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT,PRIMARY KEY(SNO,PNO,JNO),FOREIGN KEY(SNO) REFERENCES S(SNO) ON DELETE CASCADEON UPDATE CASCADE,FOREIGN KEY(PNO) REFERENCES P(PNO) ON DELETE CASCADEON UPDATE CASCADE,FOREIGN KEY(JNO) REFERENCES J(JNO) ON DELETE CASCADEON UPDATE CASCADE);如下图所示图9(10)显示表SPJ的结构,如下图所示图10(11)执行语句show table;显示库中的数据表,如下图所示图11(12)在S表中插入数据,执行语句:insert into S values('S1','精益','20','天津');insert into S values('S2','盛锡','10','北京');insert into S values('S3','东方红','30','北京'); insert into S values('S4','丰泰盛','20','天津'); insert into S values('S5','为民','30','上海');如下图所示图12执行语句SELECT * FROM S;查看S表中的数据图13(13)在P表中插入数据,执行语句:insert into P values('P1','螺母','红','12'); insert into P values('P2','螺栓','绿','17'); insert into P values('P3','螺丝刀','蓝','14'); insert into P values('P4','螺丝刀','红','14'); insert into P values('P5','凸轮','蓝','40'); insert into P values('P6','齿轮','红','30'); 如下图所示图14执行语句SELECT * FROM P;查看P表中的数据图15(14)在J表中插入数据,执行语句:insert into J values('J1','三键','北京'); insert into J values('J2','一汽','长春'); insert into J values('J3','弹簧厂','天津'); insert into J values('J4','造船厂','天津'); insert into J values('J5','机车厂','唐山'); insert into J values('J6','无线电厂','常州'); insert into J values('J7','半导体厂','南京');如下图所示图16执行语句SELECT * FROM J;查看J表中的数据图17(15)在SPJ表中插入数据,执行语句:insert into SPJ values('S1','P1','J1','200'); insert into SPJ values('S1','P1','J3','100'); insert into SPJ values('S1','P1','J4','700'); insert into SPJ values('S1','P2','J2','100'); insert into SPJ values('S2','P3','J1','400'); insert into SPJ values('S2','P3','J2','200'); insert into SPJ values('S2','P3','J4','500'); insert into SPJ values('S2','P3','J5','400'); insert into SPJ values('S2','P5','J1','400'); insert into SPJ values('S2','P5','J2','100');insert into SPJ values('S3','P1','J1','200'); insert into SPJ values('S3','P3','J1','200'); insert into SPJ values('S4','P5','J1','100'); insert into SPJ values('S4','P6','J3','300'); insert into SPJ values('S4','P6','J4','200'); insert into SPJ values('S5','P2','J4','100'); insert into SPJ values('S5','P3','J1','200'); insert into SPJ values('S5','P6','J2','200'); insert into SPJ values('S5','P6','J4','500'); 如图18和图19所示所示图18图19执行语句SELECT * FROM SPJ;查看SPJ表中的数据,如下图所示图202、第三章习题4(P127):针对1中建立的四个表,试用SQL完成第二章习题5中的查询(1)求供应工程J1零件的供应商号码SNO执行语句:select distinct SNO from SPJ where JNO='J1';结果如下图所示图21(2)求供应工程J1零件P1的供应商号码SNO执行语句:select distinct SNOfrom SPJwhere JNO='J1' and PNO='P1';结果如下图所示图22(3)求供应工程J1零件为红色的供应商号码SNO执行语句:select distinct SNOfrom SPJ,Pwhere JNO='J1' and SPJ.PNO=P.PNO and COLOR='红';执行结果如下图所示图23(4)求没有使用天津供应商生产的红色零件的工程号select distinct JNOfrom SPJwhere JNO NOT IN (select distinct JNOfrom S,SPJ,Pwhere CITY='天津' and S.SNO=SPJ.SNOand SPJ.PNO=P.PNO and COLOR='红');图24(5)求至少用了供应商S1所供应的全部零件的工程号a、查询S1供应商供应的零件号执行语句:select distinct PNO from SPJ where SNO='S1';图25b、查询哪一个工程既使用P1零件又使用P2零件。

相关主题