数据库原理本科实验指导综合

时间:2024.4.21

《数据库原理》实验指导书

实验一  建立数据库

一、实验目的

1.了解SQL Server 2000;

2.掌握SQL Server 2000数据库的建立和删除。

二、实验内容

1.查看SQL Server 2000的所有组件

2.使用服务管理器

3.使用企业管理器

4.使用查询分析器

5.在企业管理器中建立和删除数据库

6.在查询分析器中建立和删除数据库

三、实验步骤

1.SQL Server 2000的组件(9个)

(1)查询分析器:               执行输入的SQL语句并显示结果。

(2)导入和导出数据:            SQL Server 2000与其他数据库系统进行相互转换。

(3)服务管理器:               管理SQL Server 2000的各种服务。

(4)服务器网络实用工具:        管理和配置服务器网络。

(5)客户端网络实用工具:        管理和配置客户端网络。

(6)联机丛书:                帮助系统。

(7)企业管理器:               对本地或远程SQL Server 2000服务器进行管理。

(8)事件探查器:               监视SQL Server 2000执行的SQL语句。

(9)在IIS中配置SQL XML支持: 配置对IIS对XML的支持。

2.服务管理器

启动、暂停和停止指定服务器上的SQL Server 2000的服务。

(1)Server:指定服务器

(2)Services:选择管理的4种服务

①SQL Server:数据库引擎。

②SQL Server Agent:自动化工作代理服务。

③MS Search:文本查询服务

④Distributed Transaction Coordinator:分布式事务处理控制器。

(3)Start/Continue:启动选定的服务

(4)Pause:暂停选定的服务

(5)Stop:停止选定的服务。

(6)“当启动OS时自动启动服务”复选框。

3.企业管理器

对本地或者远程服务器进行管理操作。

1)管理服务器:

(1)服务器服务:

①Database:数据库(master、tempdb、msdb、model)

②Data Transformation Services:转移

③Management:管理(Agent、Backup、Activity、Plans、logs)

④Replication:复制

⑤Security:安全(logins、Server Roles、Linked Servers、Remote Servers)

⑥Support Services:支持(DTC、Serch、Mail)

⑦Meta Data Services:元数据

(2)服务器分组:

将多服务器分组(top组或sub组),默认组为SQL Server Group

(3)服务器注册:

①选择服务器:自动检测,手工添加

②选择验证方式:Windows验证和SQL Server验证

③选择服务器组:Add SQL Server Group或Create New top Group

2)管理数据库

(1)自动建立的数据库(6个)

①master:主数据库,记录登录和用户,系统配置设置,其他数据库包括数据库文件的位置等。

②tempdb:临时数据库。保存所有临时表和临时存储过程。

③msdb:任务代理数据库。供SQL Server Agent服务完成自动化工作使用。

④model:模板数据库。

⑤Northwind:销售范例数据库

⑥pubs:书籍出版范例数据库。

(2)数据库对象(10个)

每个数据库中有10个目录结构,称之为数据库对象。

①关系图(Digram)

②表(Table)

③视图(View)

④存储过程(Stored Procedure)

⑤用户(User)

⑥角色(Role)

⑦规则(Ruler)

⑧默认(Default)

⑨用户定义的数据类型(User Defined Data Type)

⑩用户定义的函数(Function)

4.查询分析器

执行输入的SQL语言。

查询分析器是SQL Server的交互界面,接受SQL语句,检查语法错误,执行语句,返回执行结果。查询分析器是学习数据库操作的主要工具。

5.企业管理器中建立和删除数据库

(1)建立数据库

打开企业管理器,在数据库上选择菜单New Database或Create Database Wizard,主要参数:

数据库名:name

主数据文件.mdf:每一个数据库对应的文件,包括逻辑名、物理位置、物理文件

次数据文件.ndf: 包括逻辑名、物理位置、物理文件

日志文件.ldf:每个数据库必须至少有一个日志文件,包括逻辑名、物理位置、物理文件

文件属性:自动扩展及其扩展方式和最大空间

(2)删除数据库

选择要删除的数据库,选择菜单上的删除命令。

6.查询分析器中建立和删除数据库

(1)建立数据库  以mydb为例

CREATE DATABASE mydb --数据库名

ON                       --数据文件

(   NAME=pmydb,          --主数据文件

    FILENAME='D:\MSSQLDATA\mydb.mdf',             --物理文件及位置

       SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB --初始大小、最大值、增长

),

(   NAME=nmydb,          --次数据文件

    FILENAME='D:\MSSQLDATA\mydb.ndf',             --物理文件及位置

       SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB --初始大小、最大值、增长

)

LOG ON                   --日志文件

(   NAME=logmydb,

    FILENAME='E:\MSSQLLOG\mydb.ldf',                 --物理文件及位置

       SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH=10MB --初始大小、最大值、增长

);

(2)删除数据库

DROP DATABASE mydb;

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。

4.小结CREATE DATABASE语句的基本语法格式。


实验二  建立表

一、实验目的

1.掌握表的建立和删除

2.掌握完整性规则的设置

二、实验内容

1.建立dept表,并设置完整性规则(2+3)

2.建立student表,并设置完整性规则(5+7)

3.建立course表,并设置完整性规则(4+6)

4.建立study表,并设置完整性规则(3+3)

5.删除建立的表。

三、实验步骤

运行实验1的SQL语句。

1.建立dept表,并设置完整性规则

CREATE TABLE dept(

    dno    CHAR(2),

    dname  VARCHAR(20)   NOT NULL,

    CONSTRAINT dept_pk PRIMARY KEY(dno),

    CONSTRAINT dept_uk UNIQUE(dname)

);

2.建立student表,并设置完整性规则

CREATE TABLE student(

    sno    CHAR(2),

    sname  VARCHAR(20)   NOT NULL,

    ssex   CHAR(2)       NOT NULL,

    sage   INT           NOT NULL,

    dno    CHAR(10)      NOT NULL,

    CONSTRAINT student_pk PRIMARY KEY(sno),

    CONSTRAINT student_fk FOREIGN KEY(dno) REFERENCES dept(dno)

       ON DELETE CASCADE ON UPDATE CASCADE,

    CONSTRAINT student_ck CHECK(ssex in('男','女'))

);

3.建立course表,并设置完整性规则

CREATE TABLE course(

    cno    CHAR(2),

    cname  VARCHAR(20)   NOT NULL,

    pcno   CHAR(2)            NULL,

    credit INT           NOT NULL,

    CONSTRAINT course_pk PRIMARY KEY(cno),

    CONSTRAINT course_fk FOREIGN KEY(pcno) REFERENCES course(cno),

    CONSTRAINT course_uk UNIQUE(cname),

    CONSTRAINT course_ck CHECK(credit>0)

);

4.建立study表,并设置完整性规则

CREATE TABLE study(

    cno    CHAR(2),

    cno   CHAR(2),

    grade  INT        NULL,

    CONSTRAINT study_pk PRIMARY KEY(sno,cno),

    CONSTRAINT study_fk_sno FOREIGN KEY(sno) REFERENCES student(sno),

    CONSTRAINT study_fk_cno FOREIGN KEY(cno) REFERENCES course(cno)

);

5.删除建立的4个表

DROP TABLE dept;

DROP TABLE student;

DROP TABLE course;

DROP TABLE study;

思考:删表能顺利进行吗?为什么?

四、实验小结

1.小结CREATE TABLE语句的基本语法格式。

2.小结SQL server 2000基本数据类型(20种)

3.小结SQL server 20## 完整性定义方法(5种)


实验三  数据更新

一、实验目的

1.掌握数据的增删改操作

2.进一步掌握完整性规则

二、实验内容

1.对dept表进行数据增删改,并检查完整性规则

2.对student表进行数据增删改,并检查完整性规则

3.对course表进行数据增删改,并检查完整性规则

4.对study表进行数据增删改,并检查完整性规则

三、实验步骤

运行实验1、2的SQL语句。

1.对dept表进行数据增删改,并检查完整性规则

完整性规则如下:

dno    CHAR(2)       PRIMARY KEY

dname  VARCHAR(20)   NOT NULL,UNIQUE

(1)增加数据

INSERT INTO dept VALUES('D1','计科系');

----正常插入

INSERT INTO dept VALUES('D2','电信系');

----正常插入

INSERT INTO dept VALUES(NULL,'机械系');

----违反dno的主键(NOT NULL)规则

INSERT INTO dept VALUES('D2','机械系');

----违反dno的主键(UNIQUE)规则

INSERT INTO dept VALUES('D3',NULL);

----违反dname的NOT NULL规则

INSERT INTO dept VALUES('D3','计科系');

----违反dname的UNIQUE规则

INSERT INTO dept VALUES('D3','机械系');

----正常插入

(2)删除数据

DELETE FROM dept WHERE dno='D3';

----正常删除

(3)修改数据

UPDATE dept SET dname='计算机科学系' WHERE dno='D1';

----正常修改

UPDATE dept SET dname='电信系' WHERE dno='D1';

----违反dname的UNIQUE规则

UPDATE dept SET dname=NULL WHERE dno='D1';

----违反dname的NOT NULL规则

UPDATE dept SET dno='D4' WHERE dno='D1';

----测试DBMS是否允许修改主键?

UPDATE dept SET dno='D2' WHERE dno='D1';

----违反dno的主键(UNIQUE)规则

UPDATE dept SET dno=NULL WHERE dno='D1';

----违反dno的主键(NOT NULL)规则

dept操作后的数据维持为:

2.对student表进行数据增删改,并检查完整性规则

完整性规则如下:

sno    CHAR(2)       PRIMARY KEY

sname  VARCHAR(20)   NOT NULL,

ssex   CHAR(2)       NOT NULL, CHECK(ssex in('男','女'))

sage   INT           NOT NULL,

dno    CHAR(2)       NOT NULL, FOREIGN KEY REFERENCES dept(dno)

                     ON DELETE CASCADE ON UPDATE CASCADE

(1)增加数据

INSERT INTO student VALUES('S1','张刚','男',20,'D2');

----正常插入

INSERT INTO student VALUES('S2','李梅','女',21,'D2');

----正常插入

INSERT INTO student VALUES('S2','吴敏','男',20,'D1');

----违反sno的主键(UNIQUE)规则

INSERT INTO student VALUES(NULL,'吴敏','男',20,'D1');

----违反sno的主键(NOT NULL)规则

INSERT INTO student VALUES('S3','吴敏','男',NULL,'D1');

----违反sage的NOT NULL规则

INSERT INTO student VALUES('S3','吴敏','M',20,'D1');

----违反ssex的CHECK规则

INSERT INTO student VALUES('S3','吴敏','男',20,'D3');

----违反dno的外键规则

INSERT INTO student VALUES('S3','吴敏','男',20,'D1');

----正常插入

(2)删除数据

DELETE FROM student WHERE sno='S3';

(3)修改数据

UPDATE student SET   sname='赵强',dno='D1' WHERE sno='S1'

----正常修改

UPDATE student SET   sname=NULL WHERE sno='S1'

----违反sname的NOT NULL规则

UPDATE student SET   ssex='F' WHERE sno='S1'

----违反ssex的CHECK规则

UPDATE student SET sno='S2' WHERE sno='S1';

----违反sno的主键(UNIQUE)规则

UPDATE student SET sno=NULL WHERE sno='S1';

----违反sno的主键(NOT NULL)规则

UPDATE student SET   dno='D3' WHERE sno='S1'

----违反dno的外键规则

UPDATE dept SET dno='D3' WHERE dno='D1'

----检查dno的外键ON UPDATE规则

DELETE FROM  dept WHERE dno='D2'

----检查dno的外键ON DELETE规则

student操作后的数据保持为:

3.对course表进行数据增删改,并检查完整性规则

完整性规则如下:

cno    CHAR(2)       PRIMARY KEY

cname  VARCHAR(20)   NOT NULL, UNIQUE

pcno   CHAR(2)       NULL, FOREIGN KEY REFERENCES course(cno)

credit INT           NOT NULL, CHECK(credit>0)

(1)增加数据

INSERT INTO course VALUES('C1','操作系统',NULL,3);

----正常插入

INSERT INTO course VALUES('C2','数据库原理','C1',4);

----正常插入

INSERT INTO course VALUES(NULL,'计算机网络','C1',3);

----违反cno的主键(NOT NULL)规则

INSERT INTO course VALUES('C2','计算机网络','C1',3);

----违反cno的主键(UNIQUE)规则

INSERT INTO course VALUES('C3',NULL,'C1',3);

----违反cname的NOT NULL规则

INSERT INTO course VALUES('C3','数据库原理','C1',3);

----违反cname的UNIQUE规则

INSERT INTO course VALUES('C3','数据库原理','C4',3);

----违反pcno的外键规则

INSERT INTO course VALUES('C3','计算机网络','C1',NULL);

----违反credit的NOT NULL规则

INSERT INTO course VALUES('C3','计算机网络','C1',0);

----违反credit的CHECK规则

INSERT INTO course VALUES('C3','计算机网络','C1',3);

----正常插入

(2)删除数据

DELETE FROM course WHERE cno='C3';

----正常删除

(3)修改数据

UPDATE course SET cname='操作系统原理' WHERE cno='C1';

----正常修改(再次修改为'操作系统')

UPDATE course SET cname='数据库原理' WHERE cno='C1';

----违反cname的UNIQUE规则

UPDATE course SET cname=NULL WHERE cno='C1';

----违反cname的NOT NULL规则

UPDATE course SET pcno='C4' WHERE cno='C1';

----违反pcno的外键规则

UPDATE course SET credit=NULL WHERE cno='C1';

----违反credit的NOT NULL规则

UPDATE course SET credit=-3 WHERE cno='C1';

----违反credit的CHECK规则

UPDATE course SET cno='C2' WHERE cno='C1';

----违反cno的主键(UNIQUE)规则

UPDATE course SET cno=NULL WHERE cno='C1';

----违反cno的主键(NOT NULL)规则

course操作后的数据维持为:

4.对study表进行数据增删改,并检查完整性规则

cno    CHAR(2)       FOREIGN KEY

cno   CHAR(2)       FOREIGN KEY

grade  INT            NULL

PRIMARY KEY(sno,cno)

(1)增加数据

INSERT INTO study VALUES('S1','C1',100);

----正常插入

INSERT INTO study VALUES('S1','C2',90);

----正常插入

INSERT INTO study VALUES('S2','C1',80);

----正常插入

INSERT INTO study VALUES('S2','C1',70);

----违反(cno,sno)的主键(UNIQUE)规则

INSERT INTO study VALUES('S2',NULL,70);

----违反(cno,sno)的主键(NULL)规则

INSERT INTO study VALUES('S3','C1',70);

----违反sno的外键规则

INSERT INTO study VALUES('S2','C3',70);

----违反cno的外键规则

INSERT INTO study VALUES('S2','C2',70);

----正常插入

(2)删除数据

DELETE FROM study WHERE (sno='S2' AND cno='C2');

----正常删除

(3)修改数据

UPDATE study SET grade=95 WHERE (sno='S1' AND cno='C1')

----正常修改

UPDATE study SET cno='C2' WHERE (sno='S1' AND cno='C1');

----违反(sno,cno)的主键(UNIQUE)规则

UPDATE study SET cno=NULL WHERE (sno='S1' AND cno='C1');

----违反(sno,cno)的主键(NOT NULL)规则

UPDATE student SET sno='S3' WHERE sno='S1'

----检查sno的外键ON UPDATE规则

DELETE student  WHERE dno='S1'

----检查sno的外键ON DELETE规则

UPDATE course SET cno='C3' WHERE cno='C1'

----检查cno的外键ON UPDATE规则

DELETE course  WHERE cno='C1'

----检查cno的外键ON DELETE规则

study操作后的数据保持为:

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。

4.小结INSERT、DELETE、UPDATE语句的基本语法格式。


实验四  数据查询

一、实验目的

掌握数据查询语句SELECT。

二、实验内容

1.单表查询

2.集合查询

3.连接查询

4.嵌套查询

三、实验步骤

运行实验1、2、3的SQL语句,参考如下:

CREATE DATABASE mydb

ON

(   NAME=pmydb,

    FILENAME='D:\MSSQLDATA\mydb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1MB

)

LOG ON

(   NAME=logmydb,

    FILENAME='D:\MSSQLDATA\mydb.ldf',SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH=10MB

)

go

use mydb

CREATE TABLE dept(

    dno    CHAR(2),

    dname  VARCHAR(20)   NOT NULL,

    CONSTRAINT dept_pk PRIMARY KEY(dno),

    CONSTRAINT dept_uk UNIQUE(dname)

);

CREATE TABLE student(

    sno    CHAR(2),

    sname  VARCHAR(20)   NOT NULL,

    ssex   CHAR(2)       NOT NULL,

    sage   INT        NOT NULL,

    dno    CHAR(2)    NOT NULL,

    CONSTRAINT student_pk PRIMARY KEY(sno),

    CONSTRAINT student_fk FOREIGN KEY(dno) REFERENCES dept(dno)

              ON DELETE CASCADE ON UPDATE CASCADE,

    CONSTRAINT student_ck CHECK(ssex in('男','女'))

);

CREATE TABLE course(

    cno    CHAR(2),

    cname  VARCHAR(20)   NOT NULL,

    pcno   CHAR(2)           NULL,

    credit INT        NOT NULL,

    CONSTRAINT course_pk PRIMARY KEY(cno),

    CONSTRAINT course_fk FOREIGN KEY(pcno) REFERENCES course(cno),

    CONSTRAINT course_uk UNIQUE(cname),

    CONSTRAINT course_ck CHECK(credit>0)

);

CREATE TABLE study(

    sno    CHAR(2),

    cno     CHAR(2),

    grade  INT        NULL,

    CONSTRAINT study_pk PRIMARY KEY(sno,cno),

    CONSTRAINT study_fk_sno FOREIGN KEY(sno) REFERENCES student(sno),

    CONSTRAINT study_fk_cno FOREIGN KEY(cno) REFERENCES course(cno)

);

INSERT INTO dept VALUES('D1','计科系');

INSERT INTO dept VALUES('D2','电信系');

INSERT INTO dept VALUES('D3','机械系');

INSERT INTO student VALUES('S1','张刚','男',20,'D2');

INSERT INTO student VALUES('S2','李梅','女',21,'D2');

INSERT INTO student VALUES('S3','吴敏','男',20,'D1');

INSERT INTO course VALUES('C1','操作系统',NULL,3);

INSERT INTO course VALUES('C2','数据库原理','C1',4);

INSERT INTO course VALUES('C3','计算机网络','C1',3);

INSERT INTO study VALUES('S1','C1',100);

INSERT INTO study VALUES('S1','C2',90);

INSERT INTO study VALUES('S2','C1',80);

INSERT INTO study VALUES('S2','C2',70);

1.单表查询[19]

 (1)投影查询[8]:指定列、所有列;表示式列、常量列、函数列;使用DISTINCT、列别名;表别名和表.字段

①SELECT sno,sname FROM student;

②SELECT * FROM student;

③SELECT sno,sname,20##-sage FROM student;

④SELECT sno,'sname' FROM student;

⑤SELECT count(*) FROM student;

⑥SELECT DISTINCT dno FROM student;

⑦SELECT sno 学号,sname 姓名 FROM student;

⑧SELECT s.sno,s.sname FROM student s;

(2)条件查询[6]:比较、逻辑、范围、集合、匹配、空值

①SELECT sno,sname FROM  student WHERE sage>20;

②SELECT sno,sname FROM  student WHERE (dno='D1') AND (sage>20);

③SELECT sno,sname FROM  student WHERE sage BEWEEN 20 AND 23;

④SELECT sno,sname FROM  student WHERE dno IN ('D1','D2');

⑤SELECT sno,sname FROM  student WHERE sname LIKE '张%';

⑥SELECT sno,cno FROM  study WHERE grade IS NULL;

(3)排序查询[3]:单列、多列;升序与降序

①SELECT * FROM student ORDER BY sno ASC;

②SELECT * FROM student ORDER BY sname DESC;

③SELECT * FROM student ORDER BY dno DESC,sno ASC;

(4)分组查询[2]:分组、分组条件

①SELECT cno,AVG(grade) FROM  study GROUP BY  cno;

②SELECT sno,AVG(grade) FROM  study GROUP BY  sno HAVING(AVG(grade)>=80);

2.集合查询[3]

(1)并UNION[1]

SELECT sno,sname,ssex FROM student WHERE dno='D1'

UNION

SELECT sno,sname,ssex FROM student WHERE dno='D2';

(2)交INTERSECT[1]

SELECT sno FROM study WHERE cno='C1'

INTERSECT

SELECT sno FROM study WHERE cno='C2';

(3)差EXCEPT[1]

SELECT sno FROM study WHERE cno='C1'

EXCEPT

SELECT sno FROM study WHERE cno='C2';

3.连接查询[8]

(1)交叉连接[1]

SELECT sno,sname,cno,cname

    FROM student course;

(2)自然连接[3]:两表、多表;连接条件、复合条件

①SELECT s.sno,s.sname,d.cno,d.grade

    FROM student s, study d;

    WHERE s.sno= d.sno

②SELECT s.sno,sname,cname,grade

    FROM student s,course c,study d;

    WHERE (s.sno=d.sno) AND (c.cno=d.cno)

③SELECT s.sno,s.sname,d.cno,d.grade

    FROM student s, study d;

    WHERE (s.sno= d.sno) AND (s.dno='D1')

(3)外连接[3]:全外连接、左外连接、右外连接

①SELECT dname,sname

    FROM dept d

    FULL OUTER JOIN student s ON(s.dno=d.dno);

②SELECT dname,sname

    FROM dept d

    LEFT OUTER JOIN student s ON(s.dno=d.dno);

③SELECT dname,sname

    FROM dept d

    RIGHT OUTER JOIN student s ON(s.dno=d.dno);

(4)自连接[1]

SELECT a.cno,b.pcno

    FROM course a, course b,

    WHERE a.pcno=b.cno;

4.嵌套查询[6]

(1)单值嵌套[1]

SELECT sno, grade

    FROM  study

    WHERE cno =(SELECT cno FROM course WHERE cname='C语言程序设计');

(2)多值嵌套[4]:[NOT]IN、ANY、ALL、[NOT]EXISTS

SELECT  sname

    FROM  student

    WHERE  sno IN (SELECT sno FROM study WHERE cno='C1');

SELECT  sno,sname

    FROM  student

    WHERE sage>ANY(SELECT DISTINCT sage FROM student WHERE dno='D1');

SELECT  sno,sname

    FROM  student

    WHERE  sage<ALL (SELECT DISTINCT sage FROM student WHERE dno='D1');

SELECT  sname,sage

    FROM  student

    WHERE  EXISTS (SELECT * FROM student WHERE sage>=30);

(3)相关子查询[1]:

SELECT  sno,cno

    FROM  study s

    WHERE  grade>(SELECT AVG(grade) FROM stduy d WHERE (d.sno=s.sno)

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。

4.小结SELECT语句的基本语法格式。


实验五  视图操作

一、实验目的

掌握视图的操作。

二、实验内容

1.建立视图:检查、行列、连接、计算、分组5种视图。

2.查询视图:查询所建5个视图。

3.更新视图:更新所建5个视图。

4.删除视图:删除所建5个视图。

三、实验步骤

运行实验1、2、3、4的SQL语句。

1.建立视图

①建立的检查视图view1:

CREATE VIEW view1 AS

    SELECT sno,sname,dno FROM student WHERE ssex='男' WITH CHECK OPTION

②建立的行列视图view2:

CREATE VIEW view2 AS

    SELECT sno,sname,ssex FROM student WHERE dno='CS'

③建立的连接视图view3:

CREATE VIEW view3 AS

    SELECT sno,sname,dname FROM student s,dept d WHERE s.dno=d.dno

④建立的计算视图view4:

CREATE VIEW view4 AS

    SELECT sno,sname,20##-sage sbirth FROM student

⑤建立的分组视图view5:

CREATE VIEW view5 AS

    SELECT sno,AVG(grade) avggrade FROM study GROUP BY sno

2.查询视图

①查询视图view1:

SELECT * FROM view1 WHERE dno='CS';

②查询视图view2:

SELECT * FROM view2 WHERE dno='男';

③查询视图view3:

SELECT * FROM view3 WHERE sno='S01';

④查询视图view4:

SELECT * FROM view4 WHERE sbirth>1990;

⑤查询视图view5:

SELECT * FROM view5 WHERE avggrade>80;

3.更新视图

①增删改视图view1:

INSERT INTO view1(sno,sname,dno) VALUES('S01','张三','CS');

DELETE FROM view1 WHERE sno='S02';

UPDATE view1 SET sname='张山' WHERE sno='S01';

②增删改视图视图view2:

INSERT INTO view2(sno,sname,ssex) VALUES('S02','李四','男');

DELETE FROM view2 WHERE sno='S03';

UPDATE view2 SET sname='李肆' WHERE sno='S02';

③增删改视图视图view3:

INSERT INTO view3(sno,sname,dname) VALUES('S03','王五','CS');

DELETE FROM view3 WHERE sno='S04';

UPDATE view3 SET dname='IS' WHERE sno='S03';

④增删改视图视图view4:

INSERT INTO view4(sno,sname,sbirth) VALUES('S04','赵陆',1990);

DELETE FROM view4 WHERE sno='S05';

UPDATE view4 SET sbirth=1989 WHERE sno='S04';

⑤增删改视图视图view5:

INSERT INTO view5(sno,avggrade) VALUES('S05',90);

DELETE FROM view5 WHERE sno='S06';

UPDATE view5 SET avggrade=80 WHERE sno='S05';

4.删除视图

①删除视图view1:

DROP VIEW VIEW1;

②删除视图view2:

DROP VIEW VIEW2;

③删除视图view3:

DROP VIEW VIEW3;

④删除视图view4:

DROP VIEW VIEW4;

⑤删除视图view5:

DROP VIEW VIEW5;

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验六  安全管理

一、实验目的

1.掌握登录操作

2.掌握用户操作

3.掌握角色操作

二、实验内容

1.建立/删除登录(包括Windows/SQL Server两种)、授予/回收登录的服务器角色,列出服务器角色名称和作用(8个)。

2.创建/删除用户,授予/回收用户的权限(包括语句权限、对象权限两类),列出语句权限的名称和作用(8个),列出各种对象(TABLE&VIEW/PROCEDURE两类)的权限。

3.创建/删除数据库角色,授予/回收数据库角色的权限,授予/回收用户的数据库角色,列出标准数据库角色的名称和作用(10个)。

三、实验步骤

1.建立/删除登录、授予/回收登录的服务器角色,列出服务器角色名称和作用。

(1)建立和删除登录

打开企业管理器和查询分析器,以超级登录sa连接SQL Server服务器,sa建立和删除登录。

①建立Windows登录(查询Windows的机器名windows-pc和Windows用户名userw)

sp_grantlogin 'windows-pc\userw'

②删除Windows登录

sp_revokelogin 'windows-pc\userw'

③建立SQL Server登录,并设置口令

sp_addlogin  'loginsql','passwd'

④删除SQL Server登录

sp_droplogin 'loginsql'

(2)授予/回收登录的服务器角色

sa重建loginsql登录,授予和回收登录的服务器角色,设置服务器为Mixed Mode Authencation验证方式。

打开另一个查询分析器,以loginsql登录连接服务器,测试服务器权限。

①授予登录的服务器角色

sp_addsrvrolemember 'loginsql','dbcreator'

②回收登录的服务器角色

sp_dropsrvrolemember 'loginsql','dbcreator'

(3)列出服务器角色名称和作用

2.创建/删除用户,授予/回收用户的权限,列出语句权限的名称和作用,列出各种对象的权限。

(1)创建/删除用户

sa建立数据库,进入数据库,建立和删除用户。

CREATE DATABASE dbstudent

USE dbstudent

loginsql登录测试能否使用数据库

①建立用户usera

sp_adduser 'loginsql','usera'

②删除用户

sp_dropuser 'usera'

(2)授予/回收用户的权限

sa重建用户usera,建立表对象,授予和回收权限。

CREATE TABLE tbstudent(

    sno    int,

    sname  varchar(10)

);

loginsql登录进入dbstudent(usera用户),测试权限。

①授予/回收用户的语句权限

GRANT  CREATE TABLE TO usera

REVOKE CREATE TABLE FROM usera

②授予和回收用户的对象权限

GRANT  SELECT ON tbstudent TO usera

REVOKE SELECT ON tbstudent FROM usera

GRANT  INSERT ON tbstudent TO usera

REVOKE INSERT ON tbstudent FROM usera

(3)列出语句权限的名称和作用

(4)列出各种对象的权限。

3.创建/删除数据库角色,授予/回收数据库角色的权限,授予/回收用户的数据库角色,列出标准数据库角色的名称和作用。

(1)创建/删除数据库角色

sa进入数据库,在数据库中建立和删除数据库角色

USE dbstudent

①建立数据库角色

sp_addrole 'rolea'

②删除数据库角色

sp_droprole 'rolea'

(2)授予/回收数据库角色的权限

sa授予和回收数据库角色的权限

①授予数据库角色权限

GRANT  CREATE TABLE TO rolea

GRANT  SELECT,INSERT ON tbstudent TO rolea

②回收数据角色权限

REVOKE CREATE TABLE FROM rolea

REVOKE SELECT,INSERT ON tbstudent FROM rolea

(3)授予/回收用户的数据库角色

sa回收usera的所有权限,授予和回收用户的数据库角色。usera验证权限

①授予用户的数据库角色

sp_addrolemember 'rolea','usera'

sp_addrolemember 'db_datawriter','usera'

②回收用户的数据库角色

sp_droprolemember 'rolea','usera'

sp_droprolemember 'db_datawriter','usera'

(4)列出标准数据库角色的名称和作用。

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验七* 存储过程

一、实验目的

1.建立SQL Server存储过程。

2.调用SQL Server存储过程。

3.学会SQL Server游标的使用。

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验八* 触发器

一、实验目的

1.建立SQL Server触发器。

2.验证SQL Server触发器。

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验九* 备份和恢复

一、实验目的

1.数据备份:SQL Server数据库和日志的备份。

2.数据恢复:SQL Server数据库恢复

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验十* 数据导入导出

一、实验目的

1.了解数据导入、导出的基本方法

2.掌握DTS工具的使用

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验十一* 任务管理

一、实验目的

1.了解任务的概念和作用

2.掌握建立、执行任务的方法

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。


实验十二* 应用程序

一、实验目的

1.配置Windows下的ODBC数据源

2.在Visual Basic中使用ADO连接数据库

3.在Visual Basic进行数据的查询和增删改操作

二、实验内容

三、实验步骤

四、实验小结

1.本次实验的心得和体会。

2.本次实验的注意事项。

3.本次实验中遇到的问题和解决方法。

更多相关推荐:
数据库综合实验报告(学生成绩管理系统)

数据库综合实验报告班级:计科***班学号:****姓名:***20XX年12月数据库应用系统的初步开发一、实验类别:综合型实验二、实验目的1.掌握数据库设计的基本技术,熟悉数据库设计的每个步骤中的任务和实施方案…

数据库实验报告

西安科技大学数据库原理及应用课程设计报告题目寄宿学校管理信息系统的设计与实现学院计算机科学与技术学院专业及班级软件工程1202及1203班学号120xx10206120xx10207120xx10303姓名李倩...

数据库实验报告

数据库原理课程设计课程设计任务书一目的与要求1本实验是为网络工程信息安全等专业的学生在学习数据库原理后为培养更好的解决问题和实际动手能力而设置的实践环节通过这个环节使学生具备应用数据库原理对数据库系统进行设计的...

数据库实验报告——

实验一SQLServer基本使用与数据定义一实验目的1掌握企业管理器及查询的定义方法使用方法2熟悉数据库建模及ER图的画法3掌握SQLServer中数据库及数据表的建立与管理方法4掌握数据的导入导出及数据库备份...

数据库实验报告范本

重庆大学经济与工商管理学院实验报告课程名称数据库原理及应用实验学期20xx年至20xx年第2学期学生所在学院经济与工商管理学院年级20xx专业班级电子商务01班学生姓名kcy学号指导教师签名实验最终成绩经管学院...

数据库综合实验报告

数据库综合实验报告班级计科1004班学号姓名20xx年01月一实验类别综合型实验二实验目的1掌握数据库设计的基本技术熟悉数据库设计的每个步骤中的任务和实施方案并加深对数据库系统系统概念和特点的理解2初步掌握基于...

数据库实验报告

数据库原理实验报告--------------------------------------------------------------实验一熟悉SQLSERVER的环境(验证性实验2学时)1.目的要求:…

数据库实验报告

实验二数据库的简单查询连接查询组合查询和统计查询一实验目的1使用SQLSever查询分析器的使用方法2加深TransatSQL语言的查询语句的理解3熟练掌握简单表的数据查询数据排列和数据连接查询的操作方法4熟练...

数据库实验报告

实验内容与要求请有选择地实践以下各题1基于教学管理数据库jxgl使用SQL的查询语句表达下列查询检索年龄大于23岁的男学生的学号和姓名SELECTSnoSnameFROMStudentWHERESsex男AND...

数据库实验报告一

数据库系统实验报告报告创建时间20xx417

SQL综合实验报告范本

华北科技学院计算机系综合性实验实验报告课程名称SQLSERVER数据库设计实验学期20xx至20xx学年第1学期学生所在系部计算机系年级08级专业班级计算机应用技术学生姓名王二斌学号20xx07013111任课...

数据库实验报告_XXX

华南师范大学实验报告学生姓名学号专业计算机科学与技年级班级课程名称数据库原理与应用实验项目数据库基本应用和MSSQL使用实验类型验证设计综合实验时间实验指导老师实验评分一软件实验报告要求1上机完成实验内容主要是...

数据库综合实验报告(32篇)