- 698
- 2
- 约 21页
- 2017-05-21 发布于浙江
- 举报
2013《数据库原理及应用》实验报告答案
实验二 数据定义
一、实验目的
1、掌握数据库引擎的使用方法,加深对SQL的语句的理解;
2、使用SQL语句创建数据库、删除数据库
3、熟练掌握DDL语言的数据定义操作,包括CREATE、ALTER、DROP。
二、实验内容
在SQL查询分析器用、DROP、ALTER语句创建、删除、基本表。、(1) S表,P表,J表的主码分别是哪个属性,S表,P表,J表这三个表有没有外码?如果有,请写出。
S表的主码 SNO P表的主码PNO J表的主码JNO
没有外码
(2) SPJ表的主码是由哪几个属性组成的属性组?SPJ表的外码有几个,分别是哪些属性?分别参照哪些表的哪个属性?
SPJ主码(SNO,PNO,JNO)
外码SNO参照S表的SNO,外码PNO参照P表的PNO,外码JNO参照J表的JNO。
2. 新建数据库在窗口下键入DROP TABLE S命令运行观察结果。ALTER TABLE S ADD TEL CHAR(11)
(2)观察属性TEL的值,值为 NULL 。
6. 修改S表中属性SNAME的数据类型改为varchar(20),其sql语句是
ALTER TABLE S ALTER COLUMN SNAME VARCHAR(20);
7. 删除S表中的属性TEL的SQL语句:
ALTER TABLE S DROP COLUMN TEL;
8. 为P表添加约束C1:零件重量必须在0到100之间,其SQL语句:
ALTER TABLE P ADD CHECK(WEIGHT BETWEEN 0 AND 100);
9. 验证完整性约束:
(1)在S表中输入第一条记录,若再往S表中输入一条“S1,盛锡”的记录,能不能输入,为什么?
不能,主键取值唯一。
(2)往P表、J表和SPJ表中分别输入第一条记录,若往SPJ表中输入第二条记录,能不能实现?为什么?
不能,违背参照完整性。
(3)此时若要删除S表中的第一条记录能不能删除?为什么?
不能,违背参照完整性。
(4)往P表中输入一条记录“P7,齿轮,蓝,150”,能不能实现?为什么?
不能,违背CHECK约束。
四、实验小结(实验过程中遇到什么问题?如何解决?)
实验三 单表查询
一、实验目的
1、掌握数据库引擎的使用方法,加深对SQL的语句的理解;
2、使用SELECT语句进行单个表格数据查询;
3、熟练掌握简单表的数据查询、数据排序的操作方法。
二、实验内容
1、使用SELECT语句完成简单查询操作。
2、该实验包括投影、选择条件表达,数据排序,查询结果分组等。
三、实验步骤
1、查询所有供应商的姓名和所在城市。Sql语句:
SELECT SNAME, CITY FROM S;
2、查询所有零件的名称颜色和重量。
Sql语句:
SELECT COLOR,WEIGHT FROM P;
3、查询S1供应商所供应零件的工程号码。
Sql语句:
SELECT JNO FROM SPJ WHERE SNO=’S1’;
4、查询名称带有“厂”字的工程项目的详细信息。
Sql语句:
SELECT * FROM J WHERE JNAME LIKE ‘%厂%’;
5、查询供应了零件的供应商号。
Sql语句:
SELECT DISTINCT SNO FROM SPJ;
6、查询重量在10到20之间的红色零件。
Sql语句:
SELECT * FROM P
WHERE WEIGHT BETWEEN 10 AND 20 AND COLOR=’红’;
7、查询所有零件的名称,并按重量降序排列
Sql语句:
SELECT PNAME FROM P ORDER BY WEIGHT;
8、查询地址在长春、北京或天津的工程项目的详细信息。
Sql语句:
SELECT * FROM J WHERE CITY IN (‘长春’,’北京’,’天津’);
9.查询零件表中零件的平均重量。
Sql语句:
SELECT AVG(WEIGHT) FROM P;
10. 统计每个供应商各供应了多少个零件。Sql语句:
SELECT SNO,SUM(QTY) NUM FROM SPJ GROUP BY SNO;
11. 查询至少使用了三种或以上零件的工程项目有哪些。
Sql语句:
SELECT JNO FROM SPJ
GROUP BY JNO HAVING COUNT(DISTINCT PNO)=3;
12. 查询至少提供了200个P1零件的供应商号。
Sql语句:
SELECT SNO FROM SPJ WHERE PNO=’P1’
GROUP BY SNO HAVING SUM(QTY)=200;
实验四 连接查询、嵌套查询
原创力文档

文档评论(0)