文档库 最新最全的文档下载
当前位置:文档库 › 数据库实验三

数据库实验三

西南石油大学实验报告

注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。

一、实验课时:4

二、实验目的

(1) 掌握使用T-SQL语句创建、删除数据库的方法。

(2) 掌握使用T-SQL语句创建、修改、删除表的方法。

(3) 掌握使用T-SQL语句创建、删除数据库完整性约束条件的方法。

(4) 掌握使用T-SQL语句对表添加、修改、删除数据的方法。

(5) 掌握使用T-SQL语句创建、修改、删除、查询视图的方法。

三、实验要求

(1) 使用SQL Server 2008查询分析器。

(2) 严格依照操作步骤进行。

(3) 在本地服务器中创建和管理数据库。

四、实验环境

(1) PC机。

(2) SQL Server 2008。

五、实验内容及步骤(请特别注意实验步骤:第6项的第1小项,即“插入数据”操作必须在第4项以前执行)

1.使用Transact-SQL语句创建JOBS数据库,数据库名格式为JOBS_SunYu(即JOBS_你的中文名字拼音)

CREATE Database JOBS_DengZhiPeng;

2.使用Transact-SQL语句创建JOBS数据库包含的所有表

EMPLOYEE

CREATE TABLE EMPLOYEE(

EMPNO SMALLINT NOT NULL,

SUPNAME VARCHAR(50)NOT NULL,

FORENAMES VARCHAR(50)NOT NULL,

DOB DATE NOT NULL,

ADDRESS VARCHAR(50)NOT NULL,

TELNO CHAR(10)NOT NULL,

DEPNO SMALLINT NOT NULL

);

JOBHISTORY

CREATE TABLE JOBHISTORY(

EMPNO SMALLINT NOT NULL,

POSITION VARCHAR(50)NOT NULL, STARDATE DATE NOT NULL,

ENDDATE DATE NULL,

SALARY INT NOT NULL

);

COURSE

CREATE TABLE COURSE(

COURSENO SMALLINT NOT NULL,

CNAME VARCHAR(50)NOT NULL,

CDATE DATE NOT NULL

);

DEPARTMENT

CREATE TABLE DEPARTMENT(

DEPNO SMALLINT NOT NULL,

DNAME VARCHAR(50)NOT NULL,

LOCATION VARCHAR(10)NOT NULL, HEAD SMALLINT NOT NULL

);

EMPCOURSE

CREATE TABLE EMPCOURSE(

EMPNO SMALLINT NOT NULL,

COURSENO SMALLINT NOT NULL);

3.使用Transact-SQL语句创建JOBS数据库包含表的主键、外键约束条件

创建每个表的主键:

ALTER TABLE EMPLOYEE

ADD CONSTRAINT PK_EMPLOYEE

PRIMARY KEY (EMPNO);

ALTER TABLE JOBHISTORY

ADD CONSTRAINT PK_JOBHISTORY

PRIMARY KEY (EMPNO,POSITION,STARDATE);

ALTER TABLE COURSE

ADD CONSTRAINT PK_COURSE PRIMARY KEY (COURSENO);

ALTER TABLE DEPARTMENT

ADD CONSTRAINT PK_DEPARTMENT PRIMARY KEY (DEPNO);

ALTER TABLE EMPCOURSE

ADD CONSTRAINT PK_EMCOURSE PRIMARY KEY (EMPNO,COURSENO);

创建关系:

ALTER TABLE JOBHISTORY

ADD CONSTRAINT FK_JOBHISTORY_EMPLOYEE FOREIGN KEY (EMPNO)

REFERENCES EMPLOYEE(EMPNO);

ALTER TABLE EMPCOURSE

ADD CONSTRAINT FK_EMPCOURSE_EMPLOYEE FOREIGN KEY (EMPNO)

REFERENCES EMPLOYEE(EMPNO);

ALTER TABLE EMPCOURSE

ADD CONSTRAINT FK_EMPCOURSE_COURSE FOREIGN KEY (COURSENO)

REFERENCES COURSE(COURSENO);

ALTER TABLE EMPLOYEE

ADD CONSTRAINT FK_EMPLOYEE_DEPARTMENT FOREIGN KEY (DEPNO)

REFERENCES DEPARTMENT(DEPNO);

ALTER TABLE DEPARTMENT

ADD CONSTRAINT FK_DEPARTMENT_EMPLOYEE FOREIGN KEY (HEAD)

REFERENCES EMPLOYEE(EMPNO);

具体关系:

EXECUTE sp_helpconstraint DEPARTMENT;

EXECUTE sp_helpconstraint EMPCOURSE;

EXECUTE sp_helpconstraint JOBHISTORY;

EXECUTE sp_helpconstraint EMPLOYEE;

(所有JOBS中表的约束图。注意:必须如上图所示清楚完整显示约束的constraint_type、constraint_name、constraint_keys等信息。)

4.备份JOBS数据库

5.使用Transact-SQL语句在JOBS数据库里创建视图(注意:在以下各个小题中,后续题目可以利用前面题目创建的视图)

(1)创建一个名为“firstview”的视图,列出不重复的所有选修了课程的

empno

(插入定义该视图的SQL窗口)

CREATE VIEW firstview(EMPNO)

AS

SELECT DISTINCT EMPNO

FROM EMPCOURSE;

(插入查询该视图的SQL窗口及结果)

(2)创建一个名为“secondview”的视图,列出所有empno小于5的员工信

(插入定义该视图的SQL窗口)

CREATE VIEW secondview(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO)

AS

SELECT*

FROM EMPLOYEE

WHERE EMPNO< 5;

(插入查询该视图的SQL窗口及结果)

(3)创建一个名为“thirdview”的视图,列出每个empno及其相应的选修课

程数

(插入定义该视图的SQL窗口)

CREATE VIEW thirdview(EMPNO,COURSENUM) AS

SELECT EL.EMPNO,COUNT(*)

FROM EMPLOYEE EL JOIN

EMPCOURSE EC ON EL.EMPNO=EC.EMPNO GROUP BY EL.EMPNO;

(插入查询该视图的SQL窗口及结果)

(4)创建一个名为“fourthview”的视图,列出每个empno及其已经或正在

从事的工作数

(插入定义该视图的SQL窗口)

CREATE VIEW fourthview(EMPNO,JOBNUM) AS

SELECT EL.EMPNO,COUNT(*)FROM EMPLOYEE EL

JOIN JOBHISTORY JO ON EL.EMPNO=

JO.EMPNO

GROUP BY EL.EMPNO;

(插入查询该视图的SQL窗口及结果)

SELECT*FROM FOURTHVIEW;

(5)创建一个合并第3和第4小题视图的SELECT语句,以查询每个empno

对应的工作数和课程数。你不需要重复创建视图,只需要利用前面两个

小题中已经创建好的视图。如果某员工号对应的课程数为0,则在查询

结果中应显示为NULL。提示:用外连接

(插入该查询的SQL窗口及结果)

SELECT EL.EMPNO,T.COURSENUM,F.JOBNUM FROM EMPLOYEE EL

LEFT JOIN THIRDVIEW T ON

T.EMPNO=EL.EMPNO

JOIN FOURTHVIEW F ON

EL.EMPNO=F.EMPNO;

6.使用Transact-SQL语句对表添加、修改、删除数据

(1)插入数据

按照ActiveSQL_JobsDB.rar文件里的数据库状态图插入所有表的数据(如果试图插入的数据将会违反第3步创建的约束条件,则可跳过该行数据的输入)。

INSERT INTO

COURSE(COURSENO,CNAME,CDATE)

VALUES (1,'Basic Accounting','1989-01-11');

INSERT INTO

COURSE(COURSENO,CNAME,CDATE)

VALUES (2,'Further Accounting','1989-01-25');

INSERT INTO

COURSE(COURSENO,CNAME,CDATE)

VALUES (3,'Issues In

Administration','1988-09-27');

INSERT INTO

COURSE(COURSENO,CNAME,CDATE)

VALUES (4,'More Administration','1988-

10-16');

select*from course;

ALTER TABLE EMPLOYEE ALTER COLUMN DEPNO SMALLINT NULL;

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (1,'Jones','Elizabeth Barbara', '1944-01-05','26 Agnews

Terrace,Shamrock Bay',

'2123372288', NULL);

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (2,'Smith','Robert',

'1947-02-07','18 Marsh

Street,Tollcross,Edinburgh',

'0317328972', NULL);

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (3,'White','Allan',

'1961-05-05','6 Remote Place,North

Berwick',

'1215556622', NULL);

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (4,'Reid','Gordon',

'1963-08-10','9 Noble Road,Penicuik',

'6294246713', NULL);

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (5,'MacCallan','Claire',

'1958-09-18','25 Crisis

Avenue,Leith,Edinburgh',

'0313374166', NULL);

INSERT INTO EMPLOYEE(EMPNO,SUPNAME, FORENAMES,DOB,ADDRESS,TELNO,DEPNO) VALUES (6,'Murphy','Brian Charles',

'1954-06-30','9 Roberts Street,Biggar', '3312294147', NULL);

当录制完DEPARTMENT以后,再将NULL设置为相

应的DEPNO值。

UPDATE EMPLOYEE

SET DEPNO= 1

WHERE DEPNO IS NULL;

最后的结果:

INSERT INTO

DEPARTMENT(DEPNO,DNAME,LOCATION,HEAD) VALUES (1,'accounts','floor3',1); INSERT INTO

DEPARTMENT(DEPNO,DNAME,LOCATION,HEAD) VALUES (2,'administration','floor2',1); INSERT INTO

DEPARTMENT(DEPNO,DNAME,LOCATION,HEAD) VALUES (3,'software

design','floor1',2);

INSERT INTO

DEPARTMENT(DEPNO,DNAME,LOCATION,HEAD) VALUES (4,'communications','floor4',3);

select*from DEPARTMENT;

INSERT INTO EMPCOURSE(EMPNO,COURSENO) VALUES (1,1);

INSERT INTO EMPCOURSE(EMPNO,COURSENO) VALUES (1,2);

INSERT INTO EMPCOURSE(EMPNO,COURSENO) VALUES (2,1);

INSERT INTO EMPCOURSE(EMPNO,COURSENO) VALUES (2,2);

select*from EMPCOURSE;

数据库实验三

数据库实验三 《数据查询与操作》实验 一、实验目的与要求 1、掌握多表查询:嵌套查询的使用。 2、掌握INSERT、UPDATE和DELETE语句的一般格式与使用方法。 3、掌握视图的创建和删除、视图的NSERT、UPDATE和DELETE 的应用 二、实验平台 1、操作系统:Windows XP或Windows 2003 2、数据库管理系统:SQL Server 2005 三、实验内容 实验前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询: 嵌套查询 1、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70 的课程信息 select课程名称 from课程信息 where课程编号in ( select课程编号 from选课表 group by课程编号 having avg(成绩)>70 ) 2、从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学

号、姓名和班级名称。 select学号,姓名,b.班级编号,班级名称 from学生信息x,班级信息b where x.班级编号= b.班级编号 and x.班级编号in ( select班级编号 from班级信息 where人数>45 ) 3、在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生 信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息select学号,姓名,性别,x.年级,b.班级编号,班级名称from学生信息x,班级信息b where x.班级编号= b.班级编号 and x.班级编号= ( select班级编号 from学生信息 where姓名='朱文娟' ) 4、在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示 出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。 select学生信息.学号,姓名,班级编号,课程编号,成绩 from学生信息left join选课表 on学生信息.学号=选课表.学号 where学生信息.班级编号<>

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。3实验内容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的内容: 3.1数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

数据库实验3 数据查询

实验三数据查询 [实验目的] 1.掌握SQL的单表查询操作 2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 [实验时数] 2 学时 [实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 [实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。对于TSQL语句的其执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示的结果区;网格执行将结果以表格形式显示的结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。 [实验步骤] 1.基本操作实验 (1)简单查询实验 1)Transact-SQL语句表示下列操作,在学生选课库中实现其数据查询操作: 求数学系学生的学号和姓名。 求选修了课程的学生学号。 求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。 求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。 求数学系或计算机系姓张的学生的信息。 求缺少了成绩的学生的学号和课程号。 2)在图书借阅库中实现其查询操作:将计算机类的书存人永久的计算机图书表,将借书日期在99年以前的借阅记录存人临时的超期借阅表。 (2)连接查询实验 用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作。 查询每个学生的情况以及他(她)所选修的课程。 求学生的学号、姓名、选修的课程名及成绩。 求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。 查询每一门课的间接先行课(即先行课的先行课)。

数据库实验三:数据库原理与应用

数据库实验三:数据库的原理与应用 一、实验目的与要求: 1.实验目的 (1)掌握对表中数据的插入、删除、修改等操作; (2)深入体会数据完整性及约束的作用。 2.实验要求 在实验三建立的表的基础上: (1)自行设计各个表的记录,其中院系表至少10条记录、学生表至少30条记录、课程表至少10条记录、教师表至少10条记录、选课表至少50条记录。(2)设计一组记录执行插入操作,要求分别设计若干违反实体完整性规则、参照完整性规则和用户完整性规则的插入操作,并分析原因. (3)设计几个删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。 (4)设计一组更新操作,体会执行更新操作时检查参照完整性规则、参照完整性规则和用户完整性规则的效果。 (5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。 二、实验内容 1、实验原理 (1)插入语句的命令格式: INSERT INTO schema_name.table_or_view_name[(column_list)] VALUES({expression| DEFAULT | NULL)}[,…n]) (2)更新语句的命令格式: UPDATE schema_name.table_or_view_name SET column_name = {expression | DEFALUT | NULL}[,…n] [WHERE 〈 search_condition〉]

(3)删除语句的命令格式: DELETE [FROM] schema_name.table_or_view_name [WHERE <search_condition >] 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVERMAN AGEMENT STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确. (5)输出程序清单和运行结果。 程序源代码: insertinto院系values (1,'计科系’,'张伟',’400’), (2,’经济系','张伟’,’401'), (3,’机械系',’张伟','402’), (4,'电子系’,'张伟’,’403’), (5,’教育系’,'张伟',’404’), (6,’数理系',’张伟’,'405'), (7,’艺术系',’张伟',’406'), (8,'旅游系’,’张伟','407’), (9,’外语系’,’张伟’,'408’), (10,'化工系’,’张伟',’409') insert into教师values (’1’,1,’李凡’,’男','教授','网工',300。00), (’2’,1,'张豪',’男’,'助教’,’网工',500.00), (’3’,2,’楚锐’,’男',’讲师','网工',200.00), ('4',2,'陈俊’,'男’,'助教',’网工',400。00), (’5',3,'白丽’,’女’,'教授’,’网管’,300.00), ('6',3,'刘婷’,’女’,'助教’,’网管',600。00), ('7',4,'何丹’,’女’,’讲师',’网管',500.00), ('8',4,'汤霞',’女’,’教授','网管’,300。00) insert into课程values ('01’,'高数’,’1','8’,’公共基础'), (’02','高数',’2',’8’,’公共基础'), (’03','高数’,’3’,'8','公共基础'), ('04’,'高数’,’4',’8’,’公共基础'),

数据库实验3实验报告

数据库实验3实验报告 数据库实验3实验报告 一、引言 数据库实验3是本学期数据库课程的重要实验之一。在这个实验中,我们需要设计和实现一个数据库系统,并对其进行性能测试和优化。本实验报告将详细介绍我们的实验过程、实验结果以及对实验结果的分析和总结。 二、实验目的 本次实验的主要目的是让我们熟悉数据库系统的设计和实现过程,掌握数据库性能测试和优化的方法。通过这个实验,我们将学会如何使用SQL语言进行数据库操作,如何设计和建立数据库表,以及如何进行性能测试和优化。 三、实验环境 我们使用了MySQL数据库管理系统作为实验的工具。MySQL是一个开源的关系型数据库管理系统,具有高性能、稳定可靠等特点。我们在Windows操作系统上安装了MySQL,并使用了Navicat for MySQL作为数据库的可视化管理工具。 四、实验过程 1. 数据库设计 在开始实验之前,我们首先进行了数据库的设计。根据实验要求,我们需要设计一个学生信息管理系统。我们将学生信息分为学生基本信息和学生成绩两个部分,分别设计了两个表格,分别为"student"和"score"。 2. 数据库建立 在完成数据库设计后,我们使用SQL语言创建了两个表格,并添加了相应的字

段和约束。我们使用了适当的数据类型来存储学生的基本信息和成绩数据,并添加了主键和外键约束来保证数据的完整性和一致性。 3. 数据库操作 在数据库建立完成后,我们使用SQL语言进行了一系列的数据库操作。我们插入了大量的测试数据,并进行了查询、更新和删除等操作。通过这些操作,我们可以验证数据库的正确性和完整性,并测试数据库的性能。 五、实验结果 通过对数据库的操作和测试,我们获得了一些实验结果。首先,我们发现数据库的设计和建立是正确的,数据的插入和查询操作都能正常运行。其次,我们发现数据库的性能较好,查询操作的响应时间较短,满足了实际应用的需求。 六、实验分析 在对实验结果进行分析时,我们发现数据库的性能与数据量、索引和查询语句等因素密切相关。当数据量较大时,查询操作的响应时间会增加;当使用了适当的索引时,查询操作的性能会得到提升;当使用了复杂的查询语句时,查询操作的性能可能会下降。 七、实验总结 通过本次实验,我们学习了数据库的设计和实现方法,掌握了SQL语言的使用技巧,了解了数据库的性能测试和优化方法。同时,我们也发现了数据库设计和性能优化的重要性,这对于提高数据库系统的性能和可靠性具有重要意义。总之,数据库实验3是一次非常有意义的实验。通过这个实验,我们不仅学到了很多有关数据库的知识和技能,还提高了自己的实践能力和问题解决能力。希望在今后的学习和工作中,我们能够充分应用所学知识,为实际问题提供有

数据库系统设计与开发实验三

实验三 课时:4课时。 1 实验目标 ⏹进一步熟悉Delphi集成开发环境(IDE) ⏹熟悉Delphi中各种基本控件的使用 ⏹进一步熟悉Delphi应用程序源代码的编写 2 实验内容 实验1:完成记事本应用的部分功能。 实验2:学生信息录入程序 3 实验1步骤 第一步:打开前面实验中的记事本工程。在窗体中放置一个OpenDialog控件和SaveDialog控件,并设置其Filter属性,使的对话框控件只能选择txt文件,并将SaveDialog 的默认扩展名设置为.txt。 第二步:编写另存为功能。编写“另存为”菜单项的事件过程,代码功能为启动一个文件保存对话框,用户输入文件名后点击“保存”按钮后将Memo1中的文本存储到对应的文件,如果点击“取消”按钮,则不保存。 第三步:编写打开功能。编写“打开”菜单项的事件过程,代码功能为启动一个文件打开对话框,用户选择文件名后点击“打开”按钮后将文件中的内容读入到Memo1控件中,如果点击“取消”按钮则不要读入文本内容。 第四步:控制“剪切”、“复制”、“粘贴”菜单项的可用性。编写“编辑”按钮的onClick 事件过程,如果Memo控件中选中的文本长度不为0,则将“剪切”、“复制”菜单项的enabled 属性设为true,否则设为false;如果当前剪贴板中的文本内容不为空,则“粘贴”菜单项的enabled属性设为true,否则设为false。 注:可用“Clipboard.AsText<>''”表达式获取剪贴板中有无文本,如果有则这个表达式值为true,否则为false。使用Clipboard对象,必须在单元的uses列表中增加对单元Clipbrd的引用。 第五步:编写剪切、复制、粘贴功能。编写三个菜单项的事件过程,分别利用Memo 控件的方法实现这些功能。 第六步:实现全选功能。编写“全选”菜单项的事件过程,利用Memo控件的相关方法实现文字全选功能。 第七步:实现字体选择功能。通过Shift+F12切换到字体设置窗体编辑器。编写各个复

数据库实验三作业及答案

实验3 SQL Server 数据表的管理 一、实验目的 1.学会使用企业管理器和Transact-SQL语句CREATE TABLE和ALTER TABLE创建和 修改表。 2.学会在企业管理器中对表进行插入、修改和删除数据操作。 3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。 4.了解SQL Server的常用数据类型。 二、实验准备 1.了解在企业管理器中实现表数据的操作,如插入、修改和删除等。 2.掌握用Transact-SQL语句对表数据进行插入(INSERT)、修改(UPDATE)和删 除(DELETE和TRANCATE TABLE)操作。 三、实验内容及步骤 1.启动企业管理器,展开studentsdb数据库文件夹。 2.在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些 表的数据结构如图1-2、图1-3和图1-4所示。 图1-2 学生基本情况表student_info 图1-3 课程信息表curriculum 图1-4 学生成绩表grade

3.在企业管理器中创建student_info、curriculum表。 4.在企业管理器中,将student_info表的学号列设置为主键,非空。 5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。CREATETABLE grade (学号varchar(4), 课程编号varchar(4), 分数decimal(5,0) ) 6.student_info、curriculum、grade表中的数据如图1-5、图1-6和图1-7所示。 图1-5 student_info的数据 图1-6 curriculum的数据 图1-7 grade的数据

实验三 数据库和数据表的创建

实验三创建数据库和数据表 一、实验目的 1. 掌握使用SQL Server Management Studio创建数据库的方法与步骤 2. 掌握创建数据库的SQL 语句 3、掌握使用SQL Server Management Studio创建数据表的方法与步骤 4、掌握创建数据表的SQL 语句 背景知识 在SQL Server中,数据库是由数据库文件和事务日志文件组成的。一个数据库至少应包含一个数据库文件和一个事务日志文件。 数据库文件是存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个数据库文件,当有多个数据库文件时,有一个文件被定义为主数据库文件,扩展名为.mdf,它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。其它数据库文件被称为次数据库文件,扩展名为.ndf,它主要用来存储除主数据文件外的所有数据文件。一个数据库可以没有次数据库文件,但也可以同时拥有多个次数据库文件。 事务日志文件是用来记录数据库更新情况的文件,扩展名为.ldf。它包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件。 文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。文件组分为主文件组和用户定义文件组。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。注:事务日志文件不属于任何文件组。 二、实验内容与步骤 2.1 操作内容: ●创建一个名为“testdb”数据库: (1)包含一个数据文件,逻辑文件名“testdb_data”,磁盘文件名‘d:\testdb-data.mdf’,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB; (2)包含一个事务日志文件,逻辑文件名为‘d:\testdb_log’, 磁盘文件名“testdb_log.ldf”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB; ●对数据库作如下修改: (1)添加一个数据文件,逻辑文件“testdb2_data”,磁盘文件名“d;\testdb2_data.ndf”,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB; (2)将事务日志文件的最大容量增加为15MB,递增值改为2MB;

数据库系统原理实验报告三

贵州大学实验报告 学院:专业:班级: 姓名学号实验组实验时间指导教师成绩实验课程名称数据库系统原理 实验项目名称数据库操作语言(2) 实 验目的1.掌握SQL中的连接查询和嵌套查询。 2.掌握SQL中的集合查询和基于派生表的查询。 实 验 仪 器 安装金仓数据库或SQL Server2008的计算机 实验内容和步骤1.执行本次实验预先准备好的sql脚本,准备好实验数据(如已有实验数据,则可忽略此步骤)。 2.①查询每个学生及其选修课程的情况: SELECT Student.*, SC.* FROM Student, SC WHERE Student.Sno = SC.Sno; 上述查询结构中有重复的数据项,如何改进? ②查询选修2号课程且成绩在90分以上的所有学生的学号和姓名: SELECT Student.Sno, Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND https://www.wendangku.net/doc/fc19255143.html,o=' 2 ' AND SC.Grade>90; ③使用外连接改写①中的任务:

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT JOIN SC ON (Student.Sno=SC.Sno); 此处关键词OUT需删掉 ④查询每个学生的学号、姓名、选修的课程名及成绩: SELECT Student.Sno, Sname, Cname, Grade FROM Student, SC, Course /*多表连接*/ WHERE Student.Sno = SC.Sno AND https://www.wendangku.net/doc/fc19255143.html,o = https://www.wendangku.net/doc/fc19255143.html,o; ⑤找出每个学生超过他选修课程平均成绩的课程号: SELECT Sno, Cno FROM SC x WHERE Grade >=(SELECT AVG(Grade) FROM SC y WHERE y.Sno=x.Sno); ⑥查询非计算机科学系中比计算机科学系所有学生年龄都小的学生姓名及年龄: SELECT Sname,Sage FROM Student WHERE Sage < ALL (SELECT Sage FROM Student WHERE Sdept= ' CS ') AND Sdept <> ' CS ’; 3.①查询选修了课程1或者选修了课程2的学生: SELECT Sno FROM SC WHERE Cno=' 1 ' UNION SELECT Sno

数据库原理-实验3-数据库的安全性

一、实验目的 1.掌握Windows 认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 SQL Server 企业版 三、实验学时 2学时 三、实验原理: 1. Microsoft® SQL Server™可以在两种安全(身份验证)模式: (1)Windows 身份验证模式(Windows 身份验证) Windows 身份验证模式使用户得以通过 Microsoft Windows NT® 4.0 或Windows® 2000 用户帐户进行连接。 (2)混合模式(Windows 身份验证和 SQL Server 身份验证) 混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与SQL Server 实例连接。在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户帐户连接的用户可以使用信任连接。

2. SQLServer的安全机制 (1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。 (2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。 (3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色所决定。一个数据库使用者,想要登录服务器上的SQL Server数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如下图所示的安全验证。 3.数据库的存取控制:授权和撤销权限 (1)GRANT 在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句 语法: 1)语句权限: GRANT { ALL | statement [ ,...n ] }

实验3 数据库安全性与完整性控制实验-

实验3 数据库安全性与完整性控制实验 1.实验目的 练习安全性授权方法、安全性和完整性查看的操作方法。 2.实验内容 【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。 【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。 【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。 【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。 【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。 【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。

【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo 表的create访问权限。 【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo 表的stuno列上的select访问权限。 【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。 【实验3-10】查看表INFORMATION_https://www.wendangku.net/doc/fc19255143.html,ER_PRIVILEGES中有关student的信息,查看user表中的内容信息。 【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。 【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。 【实验3-13】查看表INFORMATION_SCHEMA.COLUMN_PRIVILEGES,查找用户sutdent的其中一条记录,其数据库为school,表名为stuinfo,列名为stuno,查看其授予权限类型。 【实验3-14】首先进入school数据库,如果没有,创建一个school数据库。

实验三 数据库的管理与使用

实验三数据库的管理与使用 实验目的:使用企业管理器,创建数据库。 实验步骤:1·启动企业管理器,如图所示。 2·在“控制台根目录”窗口左边窗格中,展开“SQL Server组”结点,再选择服务器,如图所示。 3·在“控制台根目录”窗口左边窗格中,选中“数据库”文件夹,单击鼠标右键,弹出快捷菜单,如图所示。 4·在快捷菜单中,选择“新建数据库”,打开“数据库属性”对话框。 5·在“数据库属性”对话框中,选择“常规”选项卡,在“名称”文本框中输入数据库名称“Training wuyunliang”,系统会自动创建主数据库文件和事务日志文件。 6·在“数据库属性”对话框中,单击“确定”按钮,完成数据库创建操作,并将其储存到服务器中,如图所示。 实验3——2:数据库属性定义。 实验目的:查看和修改Training wuyunliang数据库属性信息。 实验步骤:1·启动企业管理器,在“控制台根目录”窗口左边窗格中,展开“SQL Server”结点,再选择服务器,选中数据库(Training wuyunliang),单击鼠标右键,弹出快捷菜单。2·在快捷菜单中,选择“属性”菜单项,打开“数据库属性”对话框,如图所示。 (a)在数据库属性对话框中,选择“数据文件”选项卡,可以查看和修改数据文件的相关信息,如图所示。 (b)在数据库属性对话框中,选择“事务日志”选项卡可以查看和修改事务日志的相关信息,如图所示。 (c)在数据库属性对话框中,选择“文件组”选项卡,可以查看和修改文件组的相关信息,如图所示。 (d)在数据库属性对话框中,选择“选项”选项卡,可以查看和修改访问限制、故障还原等相关信息,如图所示。 (e)在数据库属性对话框中,选择“权限”选项卡,可以查看和修改数据库权限的相关信息,如图所示。 3·在快捷菜单中,依次选择“查看—>任务板”菜单项,如图所示,进入数据库项目窗口。 在数据库项目窗口,可以查看数据库的项目信息,如图所示。 实验3——3:压缩数据库。 实验目的:掌握压缩数据库的方法。 实验步骤:1·启动SQL Server企业管理器。 2·在“控制台根目录”窗口左边窗格中,展开“SQL Server”结点,选择服务器。 3·在“控制台根目录”窗口左边窗格中,选中数据库(Training wuyunliang),单击鼠标右键,弹出快捷菜单。 4·在快捷菜单中,依次选择“所有任务——收缩数据库”菜单项,打开“收缩数据库”对话框,如图所示。 5·在“收缩数据库”对话框中,单击“确定”按钮,开始压缩数据库。 实验感悟:这是我第一次做数据库实验,实验前,感觉会困难重重,但是按照课本按部就班,认真用心做,一步一步很简单,哈哈,搞定一个实验,很有成就感!认真加自信!

数据库原理实验报告实验三数据表的创建与管理实验

南京晓庄学院 《数据库原理与应用》课程实验报告 实验三数据表的创建与管理实验 所在院(系):数学与信息技术学院 班级: 学号:

姓名: 1.实验目的 (1)理解SQL Server 2005常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构, 插入及更新数据的方法。 (3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。 2.实验要求 基本实验: (1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据库中 创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使 用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5)按要求完成实验报告。 扩展实验: (1)在“TM”数据库中补充设计以下各表结构: 教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号) 授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号) 专业信息(专业号,专业名称,学制,学位) 图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息(学号,图书号,借出时间,归还时间) 奖励信息(学号,奖励类型,奖励金额) (2)设计并实现各表之间相关属性的参照关系。 (3)使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各表, 并插入部分数据,要求所插入数据合理有效。 3.实验步骤、结果和总结实验步骤/结果

数据库试验三

实验三视图、索引及数据更新 一.实验目的: 熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟练掌握数据插入、修改和删除的使用,为后继学习作准备。 二.实验属性(验证性) 1.了解并掌握SQL查询分析器及企业管理器的使用; 2.掌握基本表的定义、删除与修改。 三. 实验原理 SQL语言应用。 四.实验步骤: (1) 启动SQL查询分析器; (2) 选择SQL SERVER后,按确认; (3) 选择数据库; (4) 验证如下例子: 1 建立索引 3.1 为学生选课数据库中的Students,Courses,Reports三个表建立索引。其中Students 表按Sno(学号)升序建唯一索引Stu_Sno,Courses表按Cno(课程号)升序建唯一索引Cou_Cno,Reports表按Sno(学号)升序和Cno(课程号)号降序建唯一索引Rep_Scno。 3.2 在基本表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引Stu_Sname,而且Students中的物理记录将按照Sname值和Sno值的升序存放。 3.1 create unique index Stu_no on Studnets(Sno); create unique index Cou_Cno on Courses(Cno); create unique index Rep_Scno on Reports(Sno,Cno desc); 3.2 create cluster index Stu_Sname on Students(Sname,Sno); 2 删除索引 3.3 删除基本表Reports上的Rep_SCno索引。 drop index Reports.Rep_SCno; 3 建立视图 3.4 建立数学系学生的视图C_Student,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。 3.5 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图Student_CR。 3.6 定义一个反映学生出生年份的视图Student_birth。 3.4 create view C_Student as select Sno,Sname,Sage,Sdept from Students where Sdept ='数学'; 3.5create view Student_CR as select Students.Sno,Sname,Cname,Grade from Student,Courses,Reports where Students.Sno=Reports.Sno and https://www.wendangku.net/doc/fc19255143.html,o =https://www.wendangku.net/doc/fc19255143.html,o 3.6 create view Student_birth as

实验三、数据库的管理

一、实验目的 1.掌握使用企业管理器或存储过程查看SQL数据库属性的方法。 2.掌握附加和分离数据库的方法。 3.熟悉数据库的收缩。 4.熟悉数据库的更名。 5.掌握数据库的删除。 6.掌握使用企业管理器或sp_dboption存储过程修改数据库选项的方法。 二、实验内容 1.查看和修改数据库的属性 实验内容1.使用sp_helpdb存储过程查看student数据库的信息,然后企业管理器将student数据库的事务日志文件的增长大小改为按1MB字节增长,再使用sp_helpdb存储过程查看student数据库的信息。 步骤:在“查询分析器”中操作,输入EXEC Sp_helpdb student,运行即可查看student 数据库的信息。如下 在企业管理器中更改好后,再在“查询分析器”中运行,看到 实验内容2:使用ALTER DA TABASE命令为student数据库添加一个新的数据文件,文件的逻辑名为student_data4,初始大小为2MB,增长值为1MB,其他属性默认。 步骤:在查询分析器中输入如下 2.数据库的分离和附加 可以使用企业管理器或SQL语言对数据库进行分离和附加操作。分离数据库的存储过程是sp_detach_db,附加数据库的过程是sp_attach_db。 步骤:“分离” EXEC sp_detach_db 'Student','true' “附加” EXEC sp_attach_db @dbname=N'student', @filename1=N'D:\Microsoft SQL Server\MSSQL\Data\student.mdf', @filename2=N'D:\Microsoft SQL Server\MSSQL\Data\student_log.ldf' 2.数据库的收缩 数据库收缩可以缩小数据库的空闲空间。可以使用企业管理器和SQL语言对数据库进

实验三 数据库的备份与恢复

实验三数据库的备份与恢复 一、实验目的与要求 1、掌握磁盘备份的创建和管理; 2、掌握备份数据库的方法; 3、掌握数据库的恢复方法; 4、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作; 5、能认真独立完成实验内容; 6、实验后做好实验总结,根据实验情况完成总结报告 二、实验准备 1、掌握备份的基本步骤和方法 2、掌握恢复的基本步骤和方法 三、实验学时 2学时 四、实验例题讲解及内容 1、定义备份设备 例1:在SSMS管理器创建一个备份设备,其逻辑设备名为student_backup,物理设备名为E:\student_bak\full.bak(如果E盘根目录上不存在student_bak 目录,应先建立) 1)打开SSMS管理器,展开要操作的服务器,在对象资源管理器中,展开“服务器对象”,右击“备份设备”,如下图。 (2)选择“新建备份设备”,弹出的窗口如下:

(3)按照题目要求填写、选择 2、备份数据库 例2:在SSMS管理器,对master进行完全备份 (1)打开SSMS管理器,展开服务器和”,打开系统数据库,右击master数据库,指向”任务”子菜单,选择”备份”命令 (2).”数据库”框中选择要备份的数据库,默认情况下被选中的是刚才用右键单击的那个数据库 (3).”名称”框内为备份输入一个便于识别的名称 (4)“说明”框中为该备份输入一个描述性信息(可选),本例输入“数据库第一次完全备份”. (5)备份类型选择“完整”,master只能进行完整备份; (6).目标选项下,选择磁盘位置或备份设备; 3、用Transact-SQL语句备份数据库 完全备份 例:在查询编辑器中对Stu数据库进行一次完全备份,备份设备取前面已经定义的stu_logbak设备 backup Database stu to stud_logbak 差异备份 例:对Stu数据库在刚才的完全备份以后又进行了若干操作,现在对其进行

相关文档