mysql实验五索引和数据完整性_数据库原理及应用实验报告1

这篇实验报告详细介绍了如何在MySQL中进行数据的插入、修改和删除操作,强调了数据完整性的关键作用。通过实验,作者掌握了T-SQL查询、索引创建和视图的使用,涉及数据库如JWGL、Market、SPJ和TSGL,以及复杂的查询操作,如连接查询、外连接和视图定义。
摘要由CSDN通过智能技术生成

课程:数据库原理及应用

实验题目:

实验3 表数据的插入,修改和删除

实验4 数据库的简单的查询和连接查询

实验5 数据库的复杂查询

实验6 索引和视图

学院:计算机学院 班级:计科0803

学号:04081101 姓名:高朋辉

任课教师:

孟彩霞 时间:2010-10-25

一、实验目的

1.掌握使用T-SQL语句语句和企业管理器对数据表进行插入,修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性约束的理解。

2.数据查询是数据库中最基本的操作,也是使用最频繁的操作,因此掌握T-SQL语句的查询语句的使用方法。本实验要求掌握最简单表的数据查询,数据排序和夺标操作室数据连接查询的操作方法。

3.进一步掌握SELECT语句的使用的方法,通过实验能够熟练的使用SELECT语句。本实验要求掌握嵌套查询和统计查询的方法。

4.理解索引和视图的概念。

5.掌握索引的使用方法。

6.掌握视图的定义和使用方法。

二、实验内容

1.分别使用T-SQL语句和企业管理器,向数据库JWGL,数据库Market,数据库SPJ,数据库TSGL中的各张表中输入一些记录。

2.使用T-SQL语句进行插入,修改和删除记录的操作。

3.简单查询操作。包括投影,选择条件表达,数据排序等。

4.连接查询操作。试验包括等值连接,自然连接,一半连接(内连接),外连接,做连接,右连接和自然链接等。

5.在数据库JWGL的学生表Student,课程表Course,学生选课表SC中完成第三章3.40-3.47中的查询操作。

6.在数据库Market的客户表Customers,货品表Goods,订单表Orders中完成习题6中(6)-(9)的查询。

7.在数据库SPJ中的供应商表S,零件表P,工程项目表J,供应情况表SPJ中,用SELECT查询语句完成第2章习题10中(4)-(5)的查询。

8.在数据库TSGL的图书,读者和借阅3个表中,用SELECT语句完成各种查询。

9.建立索引。对JWGL数据库的学生选课表sc建立索引。

10.视图的定义和操作。

三、实验环境

MS SQL Server 2000

四、实验前准备

1.上机鞋套,没鞋套,不准进机房,太霸道。

2.上机使用代码。

3.课本。

五、实验步骤

1.打开软件,熟悉 SQL Server 2000的环境

2. 使用和企业管理器,向数据库JWGL,数据库Market,数据库SPJ,数据库TSGL中的各张表中输入一些记录:

(1)打开企业管理器,依次打开各个表对应的数据库。

(2).分别打开各个表,然后依次输入各项数据。

2.使用T-SQL语句进行插入,修改和删除记录的操作。

(1)基本表的修改语句

ALTER TABLE

[ADD[]]

[DROP CONSTRAINT ]

[ALTER

COLUMN];

例:将年龄的数据类型改为长整形:

ALTER TABLE Student ALTER COLUMN Sage INT;

(2)基本表的删除语句

DORP TABLE

例:删除Student表:

DROP TABLE Student;

3.简单查询操作。包括投影,选择条件表达,数据排序等。

例:(1)查询全体学生的学号,姓名和所在系的有关信息:

SELECT Sno,Sname,Sdept

FROM Student;

(2)查询全体学生的姓名及其出生年份:

SELECT Sname,2010-Sage

FROM Student;

(3)查询结果排序操作语句

ORDER BY[ASC|DESC],[…..]

例:查询选修了1号课程的学生的学号及其成绩,查询结果按成绩的降序排序:

SELECT Sno ,Grade

FROM SC

WHERE Cno=‘1’

ORDER BY Grade DESC;

4.连接查询操作。试验包括等值连接,自然连接,一半连接(内连接),外连接,做连接,右连接和自然链接等。

(1)等值连接:

[.][.]

例:查询每个学生及其选修课的情况:

SELECT Student.*,sc.*

FORM Student,Sc

WHERE

Student.Sno=Sc.sno;

(2)自然连接

例:查询每门课的简介选修课

SELECT

First.Cno,second.Cpno

FORM Course First,Course

Second

WHERE

Frist.Cno=Second.cno;

(3)外连接

SELECT

[,]….

FROM [LEFT|RIGHT|FULL[OUTER]]

JOIN

ON

.=.

例:

SELECT Student.sno,sname,ssex,sage,sdept,cno,grade

FORM Student LEFT OUTER JOIN SC

ON Student.sno=sc.sno;

5.在数据库JWGL的学生表Student,课程表Course,学生选课表SC中完成第三章3.40-3.47中的查询操作。

3.40 :

SELECT Sname

FROM student

WHERE Sno IN

(SELECT Sno

FROM SC

WHERE Cno=‘1’);

3.41:

SELECT Sno,Sname

FROM student

WHERE Sdept=

(SELECT Sdept

FROM Student

WHERE Sname=‘张明’);

3.42:

SELECT sname,sage

FROM student

WHERE Sdept<>‘CS’

AND Sage

FROM student

WHERE sdept=‘cs’);

3.43:

SELECT sno,cno

FORM sc x

WHERE grade>=( SELECT AVG(grade)

FROM sc y

WHERE y.cno=x.cno);

3.44:

SELECT sname

FORM student

WHERE EXISTS

(SETECT *

FORM SC

WHERE Sno=student.sno AND cno=‘3’);

3.45:

SELECT sname

FORM student

WHERE NOT EXISTS

(SETECT *

FORM course

WHERE NOT EXISTS

(SELECT *

FROM SC

WHERE Sno=student.sno AND cno=));

3.46:

SELECT DISTINCT Sno

FROM SC SCX

WHERE NOT EXISTS

(SELECT *

FROM SC SCY

WHERE SCY.Sno=‘950002’AND NOT EXISTS

(SELECT *

FROM SC SCZ

WHERE SCZ.Sno=SCX.sno AND SCZ.Cno=SCY.Cno));

3.47:

SELECT Sno

FROM SC

WHERE Cno=‘1’

UNION

SELECT Sno

FROM SC

WHERE Cno=‘2’;

6.在数据库Market的客户表Customers,货品表Goods,订单表Orders中完成习题6中(6)-(9)的查询。

(6):

SELECT CustomerID ,GoodID,orderID

FROM Orders

WHERE Qauntity>200

GROUP BY Date;

(7):

SELECT *

FROM orders

WHERE CustomerID IN

(SELECT CustomerID

FROM Customers

WHERE CITY=’北京’);

(8):

SELECT *

FROM orders

WHERE CustomerID NOT IN

(SELECT CustomerID

FROM Customer

WHERE CITY=’天津’);

(9):

SELECT Customers,CustomerID ,Cname,CITY,orderID, GoodID,

Qauntity,ordersum,Date

FROM Orders Customers

WHERE Customers.CustomerID=orders。CustomerID

AND

CITY=’西安’;

7.在数据库SPJ中的供应商表S,零件表P,工程项目表J,供应情况表SPJ中,用SELECT查询语句完成第2章习题10中(4)-(5)的查询。

S表:

CREATE TABLE S

(SNO CHAR(6) PRIMARY KEY,

SNAME CHAR(10) UNIQUE,

STAUS INT,

CITY CHAR(10),

);

P表:

CREATE TABLE p

(PNAME CHAR(10) UNIQUE,

COLOR SMALLINT NOT NULL,

WEIGHT INT,

) ;

J表:

CREATE TABLE J

(JNO CHAR(6) PRIMARY KEY,

JNAME CHAR(6) UNIQUE,

CITY CHAR(10),NOT NULL,);

SPJ表:

CREATE TABLES

( SNO CHAR(6),

PNO

CHAR(6),

JNO CHAR(6),

QTY INT,

PRIMARY KEY (SNO ,PNO,JNO),

FOREIGN KEY(SNO) REFERENCES S(SNO),

FOREIGN KEY(PNO) REFERENCES S(PNO),

FOREIGN

KEY(JNO) REFERENCES S(JNO),

);

8.在数据库TSGL的图书,读者和借阅3个表中,用SELECT语句完成各种查询。

9.建立索引。对JWGL数据库的学生选课表sc建立索引。

USE JWGL

IF EXISTS(SELECT name FROM sysindexes WHERE name=‘SC-ind‘)

GO

USE JWGL

CREATE INDEX SC-ind ON SC(Cno,grade DESC);

10.视图的定义和操作。

11.使用T-SQL语句在SPJ数据库中建立第2章习题10中的4张表:S,P,J,SPJ.

S表:

CREATE TABLE S

(SNO CHAR(6) PRIMARY KEY,

SNAME CHAR(10) UNIQUE,

STAUS INT,

CITY CHAR(10),

);

P表:

CREATE TABLE p

(PNAME CHAR(10) UNIQUE,

COLOR SMALLINT NOT NULL,

WEIGHT INT,

) ;

J表:

CREATE TABLE J

(JNO CHAR(6) PRIMARY KEY,

JNAME CHAR(6) UNIQUE,

CITY CHAR(10),NOT NULL,);

SPJ表:

CREATE TABLES

( SNO CHAR(6),

PNO CHAR(6),

JNO CHAR(6),

QTY INT,

PRIMARY KEY (SNO ,PNO,JNO),

FOREIGN KEY(SNO) REFERENCES S(SNO),

FOREIGN KEY(PNO) REFERENCES S(PNO),

FOREIGN KEY(JNO) REFERENCES S(JNO),

);

12.使用T-SQL语句在图书借阅管理数据库TSGL中建立图书,读者和借阅3个表。

六、实验结果

(1)运行结果大概相符于预期。

(2)实验取得了前所未有的成功。

(3)我骄傲啊

七、评价分析及心得体会

(1).熟悉环境很重要。

(2).熟练的编写代码很难。

(3).要特别注意细节,注意各个项的属性类别。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值