加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数据库原理及应用实验报告1

(2010-11-01 15:26:05)
标签:

数据库

查询操作

语句

连接

数据完整性

it

分类: 我的生活

 

 

课程:数据库原理及应用

            

实验题目:

实验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)等值连接:

[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>

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

   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 <表名1>[LEFT|RIGHT|FULL[OUTER]] JOIN<表名2>

ON <表名1>.<列名1>=<表名2>.<列名2>

例:

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<ANY(SELECT 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).要特别注意细节,注意各个项的属性类别。

 

 

 

 

 

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有