数据库 数据操作语言DML实验.docx
- 文档编号:28493096
- 上传时间:2023-07-15
- 格式:DOCX
- 页数:24
- 大小:126.51KB
数据库 数据操作语言DML实验.docx
《数据库 数据操作语言DML实验.docx》由会员分享,可在线阅读,更多相关《数据库 数据操作语言DML实验.docx(24页珍藏版)》请在冰豆网上搜索。
数据库数据操作语言DML实验
数据库系统原理
实验报告
实验名称:
数据操作语言DML实验
任课教师:
***
学号:
*********
*******
完成日期:
2012.10.3
一、实验目的
1、建立基本表并进行DML操作。
2、数据查询:
单表查询、连接查询、嵌套查询、集合查询和统计等功能。
3、数据更新:
增加、删除、查询和修改功能。
二、实验过程与分析
1、用Create、Insert语句创建基本表S,P,J和SPJ
(1)、基本表S
createtableS
(
SNOchar(3)primarykey,
SNAMEchar(10),
STATUSchar
(2),
CITYchar(10)
);
(2)、基本表P
createtableP
(PNOchar(3)primarykey,
PNAMEchar(10),
COLORchar(4),
WEIGHTint
);
(3)、基本表J
createtableJ
(JNOchar(3)primarykey,
JNAMEchar(10),
CITYchar(10));
(4)、基本表SPJ
createtableSPJ
(SNOchar(3),
PNOchar(3),
JNOchar(3),
QTYint,
primarykey(SNO,PNO,JNO),
foreignkey(SNO)referencesS(SNO),
foreignkey(PNO)referencesP(PNO),
foreignkey(JNO)referencesJ(JNO));
2、插入数据
(1)、向S表插入数据
insertintoSvalues('S1','精益','20','天津');
insertintoSvalues('S2','盛锡','10','北京');
insertintoSvalues('S3','东方红','30','北京');
insertintoSvalues('S4','丰泰盛','30','天津');
insertintoSvalues('S5','为民','30','上海');
(2)、向P表插入数据
insertintoPvalues('P1','螺母','红','12');
insertintoPvalues('P2','螺楦','绿','17');
insertintoPvalues('P3','螺丝刀','蓝','14');
insertintoPvalues('P4','螺丝刀','红','14');
insertintoPvalues('P5','凸轮','蓝','40');
insertintoPvalues('P6','齿轮','红','30');
(3)、向J表插入数据
insertintoJvalues('J1','三建','北京');
insertintoJvalues('J2','一汽','长春');
insertintoJvalues('J3','弹簧厂','天津');
insertintoJvalues('J4','造船厂','天津');
insertintoJvalues('J5','机车厂','唐山');
insertintoJvalues('J6','无线电厂','常州');
insertintoJvalues('J7','半导体厂','南京');
(4)、向SPJ表插入数据
insertintoSPJvalues('S1','P1','J1','200');
insertintoSPJvalues('S1','P1','J3','100');
insertintoSPJvalues('S1','P1','J4','700');
insertintoSPJvalues('S1','P2','J1','100');
insertintoSPJvalues('S2','P3','J1','400');
insertintoSPJvalues('S2','P2','J4','200');
insertintoSPJvalues('S2','P3','J4','500');
insertintoSPJvalues('S2','P3','J5','400');
insertintoSPJvalues('S2','P5','J1','400');
insertintoSPJvalues('S2','P5','J2','100');
insertintoSPJvalues('S3','P1','J1','200');
insertintoSPJvalues('S3','P3','J1','200');
insertintoSPJvalues('S4','P2','J1','100');
insertintoSPJvalues('S4','P2','J3','300');
insertintoSPJvalues('S4','P6','J4','200');
insertintoSPJvalues('S5','P2','J4','100');
insertintoSPJvalues('S5','P3','J1','200');
insertintoSPJvalues('S5','P6','J2','200');
insertintoSPJvalues('S5','P6','J4','500');
运行结果:
Oracle8EnterpriseEditionRelease8.0.5.0.0-Production
PL/SQLRelease8.0.5.0.0-Production
*
SQLWKS>createtableS
2>(
3>SNOchar(3)primarykey,
4>SNAMEchar(10),
5>STATUSchar
(2),
6>CITYchar(10)
7>);
语句已处理。
SQLWKS>
SQLWKS>createtableP
2>(
3>PNOchar(3)primarykey,
4>PNAMEchar(10),
5>COLORchar(4),
6>WEIGHTint
7>);
语句已处理。
SQLWKS>
SQLWKS>createtableJ
2>(
3>JNOchar(3)primarykey,
4>JNAMEchar(10),
5>CITYchar(10)
6>);
语句已处理。
SQLWKS>
SQLWKS>createtableSPJ
2>(
3>SNOchar(3),
4>PNOchar(3),
5>JNOchar(3),
6>QTYint,
7>primarykey(SNO,PNO,JNO),
8>foreignkey(SNO)referencesS(SNO),
9>foreignkey(PNO)referencesP(PNO),
10>foreignkey(JNO)referencesJ(JNO)
11>);
语句已处理。
SQLWKS>
SQLWKS>insertintoSvalues('S1','精益','20','天津');
处理了1行。
SQLWKS>insertintoSvalues('S2','盛锡','10','北京');
处理了1行。
SQLWKS>insertintoSvalues('S3','东方红','30','北京');
处理了1行。
SQLWKS>insertintoSvalues('S4','丰泰盛','30','天津');
处理了1行。
SQLWKS>insertintoSvalues('S5','为民','30','上海');
处理了1行。
SQLWKS>
SQLWKS>insertintoPvalues('P1','螺母','红','12');
处理了1行。
SQLWKS>insertintoPvalues('P2','螺楦','绿','17');
处理了1行。
SQLWKS>insertintoPvalues('P3','螺丝刀','蓝','14');
处理了1行。
SQLWKS>insertintoPvalues('P4','螺丝刀','红','14');
处理了1行。
SQLWKS>insertintoPvalues('P5','凸轮','蓝','40');
处理了1行。
SQLWKS>insertintoPvalues('P6','齿轮','红','30');
处理了1行。
SQLWKS>
SQLWKS>insertintoJvalues('J1','三建','北京');
处理了1行。
SQLWKS>insertintoJvalues('J2','一汽','长春');
处理了1行。
SQLWKS>insertintoJvalues('J3','弹簧厂','天津');
处理了1行。
SQLWKS>insertintoJvalues('J4','造船厂','天津');
处理了1行。
SQLWKS>insertintoJvalues('J5','机车厂','唐山');
处理了1行。
SQLWKS>insertintoJvalues('J6','无线电厂','常州');
处理了1行。
SQLWKS>insertintoJvalues('J7','半导体厂','南京');
处理了1行。
SQLWKS>
SQLWKS>insertintoSPJvalues('S1','P1','J1','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S1','P1','J3','100');
处理了1行。
SQLWKS>insertintoSPJvalues('S1','P1','J4','700');
处理了1行。
SQLWKS>insertintoSPJvalues('S1','P2','J1','100');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P3','J1','400');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P2','J4','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P3','J4','500');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P3','J5','400');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P5','J1','400');
处理了1行。
SQLWKS>insertintoSPJvalues('S2','P5','J2','100');
处理了1行。
SQLWKS>insertintoSPJvalues('S3','P1','J1','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S3','P3','J1','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S4','P2','J1','100');
处理了1行。
SQLWKS>insertintoSPJvalues('S4','P2','J3','300');
处理了1行。
SQLWKS>insertintoSPJvalues('S4','P6','J4','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S5','P2','J4','100');
处理了1行。
SQLWKS>insertintoSPJvalues('S5','P3','J1','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S5','P6','J2','200');
处理了1行。
SQLWKS>insertintoSPJvalues('S5','P6','J4','500');
处理了1行。
3、用Select查询数据
(1)、求供应工程J1零件的供应商号SNO;
运行结果:
SQLWKS>selectSNOfromSPJ
2>whereSPJ.JNO='J1';
SNO
---
S1
S2
S3
S4
S5
已选择5行。
(2)、求供应工程J1零件P1的供应商号SNO;
运行结果:
SQLWKS>selectdistinctSNOfromSPJ
2>whereSPJ.JNO='J1'andSPJ.PNO='P1';
SNO
---
S1
S3
已选择2行。
(3)、求供应工程J1零件为红色的供应商号SNO;
运行结果:
SQLWKS>selectdistinctSNOfromSPJ,P
2>whereSPJ.JNO='J1'andP.COLOR='红'andP.PNO=SPJ.PNO;
SNO
---
S1
S3
已选择2行。
(4)、求没有使用天津供应商生产的红色零件的工程号JNO;
SQLWKS>selectjno
2>fromspj
3>wherejnonotin
4>(selectjno
5>fromspj,p,s
6>wherecity='天津'andcolor=’红’and
7>s.sno=spj.snoandp,pno=spj,pno)
8>
JNO
---
J2
J5
已选择2行。
(5)、求至少用了供应商S1所供应的全部零件的工程号JNO;
SQLWKS>selectdistinctpno
2>fromspj
3>wheresno=’S1’
4>froms
JNO
---
P1
P2
已选择2行。
SQLWKS>selectdistinctjno
2>fromspj
3>wherepno=’P1’andjnoin
4>(selectjno
5>fromspj
6>wherepno=’P2’
7>
JNO
---
J1
J3
J4
已选择3行。
(6)、找出所有供应商的姓名和所在城市;
SQLWKS>selectsname,city
2>froms;
SNAMECITY
--------------------
精益天津
盛锡北京
东方红北京
丰泰盛天津
为民上海
已选择5行。
(7)、找出所有零件的名称、颜色、重量;
SQLWKS>selectpname,color,weight
2>fromp;
PNAMECOLOWEIGHT
------------------------
螺母红12
螺楦绿17
螺丝刀蓝14
螺丝刀红14
凸轮蓝40
齿轮红30
已选择6行。
(8)、找出使用供应商S1所供应零件的工程号;
SQLWKS>selectdistinctJNO
2>fromSPJ
3>whereSNO='S1';
JNO
---
J1
J3
J4
已选择3行。
(9)、找出工程项目J2使用的各种临近的名称及其重量;
SQLWKS>selectPNAME,QTY
2>fromP,SPJ
3>whereSPJ.JNO='J2'andSPJ.PNO=P.PNO;
PNAMEQTY
--------------------
凸轮100
齿轮200
已选择2行。
(10)、找出上海厂商供应的所以零件的零件号;
SQLWKS>selectdistinctPNO
2>fromSPJ,S
3>whereS.CITY=’上海’andS.SNO=SPJ.SNO
4>andSPJ.JNO=J.JNO
5>
JNO
---
P2
P3
P6
已选择3行。
(11)、找出使用上海产的零件的工程名称;
SQLWKS>selectdistinctJNAME
2>fromS,J,SPJ
3>whereSPJ.JNO=J.JNOandSPJ.SNO=(selectSNO
4>fromS
5>whereS.CITY='上海')
6>
JNAME
----------
三建
一汽
造船厂
已选择3行。
(12)、找出没有使用天津产的零件的工程号;
SQLWKS>selectdistinctJNO
2>fromS,J,SPJ
3>whereJNO
4>(selectjno
5>fromS.SPJ
6>whereS,CITY=’天津’andS.SNO=SPJ.SNO)
7>
JNO
----------
J2
J5
已选择2行。
(13)、列出包含SNo,SNAME,PNO,PNAME,JNO,JNAME,QTY属性的清单;
(14)、统计各工程项目所用不同零件的数量;
(15)、统计各供应商供应的各种零件数量;
4、用Insert、Delete和Update语句实现如下数据更新
(1)、将全部红色零件的颜色改为蓝色;
updatep
setcolor='蓝'
wherecolor='红';
select*fromp;
(2)、将工程J3的城市改为上海;
updatej
setcity='上海'
wherej.jno='J3';
select*fromj;
(3)、有S5供给J4的零件P6改为由S3供应;
updatespj
setsno='S3'
wherespj.sno='S5'
andpno='P6'
andjno='J4'
select*fromspj
(4)、从供应商关系中删除S2的元组,并从供应关系中删除相应元组;
delete
fromspj
wheresno='S2';
delete
froms
wheresno='S2';
select*froms;
select*fromspj;
(5)、请将S2向工程项目J6供应200个P4零件的信息加入到供应关系;
insertintosvalues('S2','西风','15','北京');
insertintospjvalues('S2','P4','J6','200');
select*froms;
select*fromspj;
(6)、请将S6向项目J8供应500个P7零件的信息加入到供应关系;
insertintosvalues('S6','中华','20','上海');
insertintopvalues('P7','扳手','黑','15');
insertintojvalues('J8','电力厂','广州');
insertintospjvalues('S6','P7','J8','600');
5、用Insert、Delete和Update语句实现如下数据更新
createtableStudent(
snochar(5)primarykey,
snamevarchar(10)unique,
ssexchar(4)notnull,
sagenumber(3)default0,
sdeptvarchar(10));
createtableCourse(
cnochar(5)primarykey,
cnamevarchar2(15)notnull,
cpnochar(5),
ccreditnumber(4),
foreignkey(cpno)referencesCourse(cno));
createtableSC
(snochar(5),
cnochar(5),
gradenumber(3),
primarykey(sno,cno),
foreignkey(sno)referencesStudent(sno),
foreignkey(cno)referencesCourse(cno));
altertableStudentaddjiguanvarchar2(20);
altertableStudentaddshijiandate;
altertableCoursemodifycnochar(4);
altertableCoursemodifycpnochar(4);
altertableSCmodifycnochar(4);
altertableStudentdropunique(sname);
createuniqueindexStusnameonStudent(sname);
createuniqueindexCoucnameonCourse(cname);
createindexSgradeonSC(snoasc,gradedesc);
insertintoStudentvalues('95001','李勇','男'20,'cs','北京','27-2月-05');
insertintoStudentvalues('95002','张三','女',21,'cs','天津','27-2月-05');
insertintoStudentvalues('95003','李四','女',20,'cs','上海','27-2月-05');
insertintoSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 数据操作语言DML实验 数据 操作 语言 DML 实验