当前位置:文档之家› 数据库实验五

数据库实验五

数据库实验五
数据库实验五

湘潭大学信息工程学院

《数据库原理》

实验教学指导书

实验五数据查询

撰写人:郭云飞

湘潭大学

信息工程学院

二○一三年十月五日

湘潭大学信息工程学院

实验五 数据查询

一.上机目的

1.掌握Select 语句的运用。 2.掌握一些函数的应用。 3.掌握子查询的运用。 4.连接和分组的应用。

二.预备知识

1.Select 语句

Select 命令用于从Oracle 数据库中检索数据。读者利用select 命令告诉数据库要检索什么样的信息。Select 是读者看到的最常用的SQL 语句,select 命令(如下)有六个基本部分构成:

SELECT [DISTINCT] {*,COLUMN [ALIAS],……} FROM table

WHERE condition(s)

ORDER BY {column,exper} [ASC|DESC] GROUP BY {column,exper} HA VING having_condtions;

i . Select 后跟用户需要检索的信息(如下一部分将要提到的表中表列的名字)。这是select 命令必不可少的部分。

ii . From 后跟检索对象(如存放数据的一个或多个表的名称),from 部分也是必不可少的。 iii . Where 后跟检索条件(如限制检索内容的条件),where 部分是可选的。

iv . Order by 后跟分类准则(如取自空值数据如何给出的第一部分的表列名称表),order by 部分是可选的。

v .Group by 后跟分组的字段或准则。 vi . Having 后跟分组的查询条件。

下面我们首先使用select 语句操作名为user_tables 的数据字典视图: SQL>select *

2 from user_tables

3 where table_name = …customer?;

2.选择指定的列

我们可以在select 关键字后跟一个或多个表列。星号指示Oracle 显示表中的所有字段。我们使用同样的select 语句,但指定了需要查看的一个表的某些字段:

SQL>select table_name from user_tables

3.条件查询

到目前为止,我们看到了select 命令可用来查看表中所有表列(select *)或部分表列(select column1,column3)。如果读者只想看特定的数据行,怎么办呢?这就需要用wherer 子句来解决了。例如:我们想要查看雇员SMITH 的编号与工资,可以用命令:

select empno, sal from emp where ename = 'SMITH';

结果如下:

EMPNO SAL

湘潭大学信息工程学院

---------------------- ---------------------- 7369 800

1)带and/or 的Where 子句

where 子句指示Oracle 查找表中数据,并只返回满足条件的行。在上面的例子中,要求Oracle 仅返回state_cd 等于MA 的数据行。这是通过where state_cd = …MA?;来实现的。

有时用户要求返回同时满足多个条件的行。例如:找出20号部门且工资不少于3000的编号与雇佣日期。可以用命令:

select empno, hiredate from emp where deptno = 20 and sal >= 3000; 结果如下:

EMPNO HIREDATE ---------------------- ----------------

7788 19-4月 -87 7902 03-12月-81

上面的例子中,我们需要返回满足所有条件的行。如果用户要求检索满足其中两个条件之一的行应该怎么办呢?可以用命令:

select empno, hiredate from emp where deptno = 20 or sal >= 3000; 结果如下:

EMPNO HIREDA TE ---------------------- -----------------

7369 17-12月-80 7566 02-4月 -81 7788 19-4月 -87 7839 17-11月-81 7876 23-5月 -87 7902 03-12月-81

And 和or 如读者所知是逻辑操作符,决定查询语句中where 条件之间的关系。逻辑条件的概念及其在Oracle 产品中的用途及使用方法要用一整本书才可讲清楚。此处精力主要放在实用技术上。表5-1解释了当and 和or 出现在同一个where 子句中时,Oracle 是怎样处理的。

读者应细心分析涉及多个and 和or 的逻辑(称为复合条件,compound conditions ),否则将会引起混乱。例如:select empno, hiredate from emp where deptno = 20 and sal >= 3000。其中两个条件由关键字and 连接,只有当两个条件为真(true )时,该复合条件才能为真。

2)带NOT 的where 子句

Oracle 支持否定条件的搜索。例如:读者可能想看看哪雇员不是经理,可用命令:

select ename from emp where not job = 'MANAGER'; 输出结果为:

ENAME ----------

SMITH ALLEN

湘潭大学信息工程学院

WARD MARTIN SCOTT KING TURNER ADAMS JAMES FORD MILLER

3)带检索范围的where 子句

Oracle 也支持限定范围的检索。例如:查找工资在3000到5000之间的所有雇员,可用命令:

select ename from emp where sal between 3000 and 5000; 输出结果为:

ENAME ----------

SCOTT KING FORD

4)带检索表的where 子句

Oracle 支持在列表内查找项的概念。例如:想查找总裁与所有经理,可用命令:

select ename from emp where job in('PRESIDENT','MANAGER'); 输出结果为:

ENAME ----------

JONES BLAKE CLARK KING

5)带匹配检索的where 子句

Oracle 支持采用like 命令的匹配检索。例如,用户告诉Oracle 检索所有以A 开头的ename ,显示相应的empno 与ename 。可用语句select empno,ename from emp where ename like 'A%'; 输出情况如下:

EMPNO ENAME ---------------------- ----------

7499 ALLEN 7876 ADAMS

也可以输入语句select empno,ename from emp where ename like '%A%';来查找ename 中含有“A ”的行,显示相应的empno 与ename 。执行结果如下:

EMPNO ENAME --------------------------------

7499 ALLEN 7521 W ARD 7654 MARTIN

湘潭大学信息工程学院

7698 BLAKE 7782 CLARK 7876 ADAMS 7900 JAMES

6)检索空值的where 子句

Oracle 支持空值检索。例如,用户告诉Oracle 检索所有没有佣金(不是为0)雇员,显示相应的empno 、 ename 与佣金。可用语句:

select empno,ename,comm from emp where comm is null; 输出结果为:

EMPNO ENAME COMM --------------- ----------------- ---------

7369 SMITH 7566 JONES 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7876 ADAMS 7900 JAMES 7902 FORD 7934 MILLER

7)where 子句中的常用操作符

除了上面讲到的这许多例子外,Oracle 还提供了许多功能强大的逻辑操作符限制行的检索。表5-2是可在where 子句中使用的部分操作符列表。

4.Order by

我们再来看看dept 表。这次,我们希望查询结果以dname 的字母降序排列,可用语句:

select * from dept order by dname;

湘潭大学信息工程学院

输出结果为:

DEPTNO DNAME LOC ------------------ --- --------------------- --- ------------

10 ACCOUNTING NEW YORK 40 OPERATIONS BOSTON 20 RESEARCH DALLAS 30 SALES CHICAGO

正如我们所见,查询结果按降序排列。若发布命令select * from dept order by dname;,查询结果将按升序排列。若发布命令select * from dept order by loc desc, dname;,则进行多级排序。该命令按loc 的降序和dname 的升序排列。注意,在Order by 子句中未指定升序或降序时,Oracle 按升序排列。

5.算术操作符

如果字段只包括数值型数据,select 语句对它的数据操作如下表5-3所示:

表5-3算术操作符

正如表5-3所示,我们可以执行所有标准的算术运算:加、减、乘、除。在Oracle 中,除了这些标准运算符外,还有许多函数。

6.分组结果函数

为了得到汇总信息,这些函数将多组数据集合在一起。当把数据行集合在一起时,可以看作是在从数据库中检索信息时把同类信息合并在一起的操作。表5-8列出了最常用的分组函数,在这里仍然以customer 表为例。

表5-8 最常用的分组函数

了解了最常用的分组函数后,让我们来考察一下它们的应用。

7.使用group by 子句

使用表5-8描述的函数,它们后面可以跟或不跟group by 子句。当在字段中不使用Group by 子句,例如“select max(sal) from emp ;”,实际上是告诉数据库你把表中所有行看作一个组。再例如,想知道雇员的平均工资或工资总额,查询语句“select avg(sal) from emp ;”求出平均工资,而语句“select sum(sal) from emp ;”则求出总工资。但有的时候让人更感兴趣的是查询预先分类或分组的数据,例如,要想知道每个部门的平均工资,可使用查询语句“select deptno,avg(sal) from emp group by deptno ;”。大多数人一开始就明白group by 语句的意思,但使用时却常有麻烦。必须确保group by 在每一个语句中引用正确的表列数目。注意,当使用group by 时,未在group by 部分用到的字段在select 部分出现时必须使用分组函数。

让我们再考虑一下忽略使用分组函数可能引起的问题。如果执行了语句“select deptno, ename, avg(sal)

湘潭大学信息工程学院

from emp group by deptno ;”,将返回以下错误:

ORA-00979: not a GROUP BY expression 这是由于ename 表列没有在group by 子句中。

8.使用having 子句

正如为单行查询设置查询条件(例如,code ="CN")那样,也可以使用having 子句,为一组记录设置查询的条件。例如,假如只想了解雇员超过10个的部门的平均工资,使用having 子句,其查询语句是“select deptno,avg(sal) from emp group by deptno having count(*)>10;”。注意,having 子句允许设置对说明一个记录组的搜索条件。而通常的where 查询条件只针对单记录,不针对记录组。

9.嵌套查询

SQL 语言另一个强大的功能是具有嵌套查询功能,也称之为子查询。子查询的格式如下: {main query text} where {condition} ( {sub query text});

例如,下面的主查询访问的是emp 表,而子查询访问的是dept 表:

select * from emp where deptno=

(select deptno from dept

where loc='NEW YORK');

注意,子查询用原括号括起来,where 子句的条件要取决于查询结果。换句话说,where 子句中又包括了一个SQL 的select 语句。

如果需要了解找出工资超过平均工资的雇员,可以输入查询语句“select * from emp where sal > (select avg(sal) from emp );”。正如读者所见,嵌套查询能力是非常强大的,能根据存储在数据库中的信息返回数据结果建立SQL 语句,这样,当数据库变化时,查询仍保持不变。注意,使用子查询能使所编写的SQL 语句在数据发生变化时语句不变化。

10.连接

命令格式如下: SELECT columns FROM tables

WHERE join condition is … 1)等值连接(Equi-join )

等值连接用…=?操作符。如连接表EMP 和DEPT :

SELECT ENAME, JOB, DNAME FROM EMP, DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO 输出结果为: ENAME JOB DNAME -------------------- ---------------------- ------------------------ CLARK MANAGER ACCOUNTING MILLER CLERK ACCOUNTING KING PRESIDENT ACCOUNTING SMITH CLERK RESEARCH SCOTT ANAL YST RESEARCH JONES MANAGER RESEARCH ADAMS CLERK RESEARCH FORD ANAL YST RESEARCH ALLEN SALESMAN SALES

湘潭大学信息工程学院

BLAKE MANAGER SALES TURNER SALESMAN SALES MARTIN SALESMAN SALES WARD SALESMAN SALES

2)非等值连接(Non-equi-join )

非等值连接可BETWEEN ,IN ,>,>=, <, <=等操作符。如查询工资介于总裁工资与比总裁工资少2000之间的职工:

SELECT e1.ename,e1.job FROM emp e1, emp e2

WHERE e2.job='PRESIDENT' AND

e1.sal BETWEEN e2.sal-2000 AND e2.sal ;

三.上机内容

1. 显示EMP 表中所有的部门号、职工名称和管理者号码:

SELECT DEPTNO,ENAME,MGR FROM EMP;

输出结果为:

DEPTNO ENAME MGR

---------------- ----------------- -------------- 20 SMITH 7902 30 ALLEN 7698 30 WARD 7698 20 JONES 7839 30 MARTIN 7698 30 BLAKE 7839 10 CLARK 7839 20 SCOTT 7566 10 KING 30 TURNER 7698 20 ADAMS 7788 30 JAMES 7698 20 FORD 7566 10 MILLER 7782

2. 算术运算符在SQL 中的使用

SELECT ENAME, SAL+250*12 FROM EMP;

3. 连字符的使用

把职工号和职工名字连接起来,如下:

SELECT EMPNO||ENAME EMPLOYEE FROM EMP;

把职工号和职工名字中间用…-?连接起来,并输出…WORKS IN DEPARTMENT?,如下:

SELECT EMPNO||?-…||ENAME EMPLOYEE, …WORKS IN DEPARTMENT?, DEPTNO FROM EMP;

4. 禁止重复

如果列举出EMP 表中所有部门号:

Select deptno from emp;

DEPTNO ----------------

湘潭大学信息工程学院

20 30 30 20 30 30 10 20 10 30 20 30 20 10

从上表中可以看出部门号之间存在着许多的相同的,我们可以用DISTINCT 子句来消除重复的。

SELECT DISTINCT deptno from emp;

DEPTNO --------------- 10 20 30

5. 排序

按单个字段排序,如按照ENAME 排序,

SELECT ENAME,JOB,SAL*12,DEPTNO FROM EMP

ORDER BY ENAME;

ENAME JOB SAL*12 DEPTNO ------------------------- ------------------------- ------------------------- ------------------------- ADAMS CLERK 13200 20 ALLEM SALESMAN 19200 30 BLAKE MANAGER 34200 30 CLARK MANAGER 29400 10 FORD ANAL YST 36000 20 JAMES CLERK 11400 30 JONES MANAGER 35700 20 KING PRESIDENT 60000 10 MARTIN SALESMAN 15000 30 MILLER CLERK 15600 10 SCOTT ANAL YST 36000 20 SMITH CLERK 9600 20 TURNER SALESMAN 18000 30 WARD SALESMAN 15000 30

按多个字段排序:

如按部门号升序,按工资降序排序

SELECT DEPTNO, JOB, ENAME FROM EMP

ORDER BY DEPTNO, SAL DESC;

DEPTNO JOB ENAME ------------------------- ------------------------- ------------------------- 10 PRESIDENT KING 10 MANAGER CLARK

湘潭大学信息工程学院

10 CLERK MILLER 20 ANAL YST SCOTT 20 ANAL YST FORD 20 MANAGER JONES 20 CLERK ADAMS 20 CLERK SMITH 30 MANAGER BLAKE 30 SALESMAN ALLEN 30 SALESMAN TURNER 30 SALESMAN WARD 30 SALESMAN MARTIN 30 CLERK JAMES

6. 带条件的查询

1)查询工作是CLERK 的所有职工的姓名,职工号和部门号

SELECT ENAME, EMPNO, JOB, DEPTNO FROM EMP

WHERE JOB = …CLERK?;

ENAME EMPNO JOB DEPTNO ------------------------- ------------------------- ------------------------- ------------------------- SMITH 7369 CLERK 20 ADAMS 7876 CLERK 20 JAMES 7900 CLERK 30 MILLER 7934 CLERK 10

2)从DEPT 表中查询出部门号大于20的部门名称

SELECT DNAME, DEPTNO FROM DEPT

WHERE DEPTNO > 20; DNAME DEPTNO ------------------------- ------------------------- SALES 30 OPERATIONS 40

3)复合条件查询

查询工作是MANAGER 并且工资大于1500,或者工作是SALESMAN 的职工信息:

SELECT EMPNO ,ENAME , JOB ,SAL ,DEPTNO FROM EMP

WHERE SAL>1500 AND JOB = …MANAGER? OR JOB = …SALESMAN?;

EMPNO ENAME JOB SAL DEPTNO --------------- ---------------- ----------------- ------------------ -------------- 7499 ALLEN SALESMAN 1600.00 30 7521 WARD SALESMAN 1250.00 30 7566 JONES MANAGER 2975.00 20 7654 MARTIN SALESMAN 1250.00 30 7698 BLAKE MANAGER 2850.00 30 7782 CLARK MANAGER 2450.00 10 7844 TURNER SALESMAN 1500.00

30

7. 操作符的应用 1)BETWEEN 的应用

湘潭大学信息工程学院

查询工资在1000到2000之间的职工名字和工资信息。

SELECT ENAME , SAL FROM EMP

WHERE SAL BETWEEN 1000 AND 2000;

ENAME SAL ------------------------------- --------------- ALLEN 1600.00 WARD 1250.00 MARTIN 1250.00 TURNER 1500.00 ADAMS 1100.00 MILLER 1300.00

2)IN

查询有7902,7566,7788三个MGR 号之一的所有职工:

SELECT EMPNO , ENAME , SAL , MGR FROM EMP

WHERE MGR IN (7902,7566,7788);

EMPNO ENAME SAL MGR

------------------------- -------------------------- -------------------------- -------------------- 7369 SMITH 800.00 7902 7788 SCOTT 3000.00 7566 7876 ADAMS 1100.00 7788 89-2 FORD 3000.00

7566

3)LIKE

通配符%代表任意0或多个字符。 通配符_代表任意单个字符。 查询名字以“S”开始的所有职工:

SELECT ENAME FROM EMP

WHERE ENAME LIKE …S%?;

ENAME

------------------------ SMITH SCOTT

查询名字只有4个字符的所有职工:

SELECT ENAME FROM EMP

WHERE ENAME LIKE …_ _ _ _?;

ENAME

------------------------ WARD KING FORD

湘潭大学信息工程学院查询没有管理者的所有职工:

SELECT ENAME,MGR

FROM EMP

WHERE MGR IS NULL;

ENAME MGR

------------------------ ----------

KING

8.单&号替代变量

1)数字变量输入:

SELECT EMPNO,ENAME,SAL

FROM EMP

WHERE DEPTNO = &DEPARTMENT_NUMBER;

Enter value for department_number:10

EMPNO ENAME SAL

--------------------- --------------------- ------------------------

7782 CLARK 2450.00

7839 KING 5000.00

7934 MILLER 1300.00

2)字符串变量输入:

SELECT EMPNO,ENAME,SAL*12

FROM EMP

WHERE JOB = …&JOB_TITLE?;

Enter value for job_title: MANAGER

ENAME DEPTNO SAL*12

-------------------- ----------------------- -----------------------

JONES 20 35700.00

BLAKE 30 34200.00

CLARK 10 29400.00

9.双&号替代变量

SELECT ENAME,DEPTNO,JOB

FROM EMP

WHERE DEPTNO = &&DEPTNO_PLEASE;

Enter value for deptno_please:10

ENAME DEPTNO JOB

------------------ ------------------- --------------------

CLARK 10 MANAGER

KING 10 PRESIDENT

MILLER 10 CLERK

10.分组以及组函数的应用

1)分组函数见表5-8

湘潭大学信息工程学院求平均值

SELECT A VG(SAL) FROM EMP;

A VG(SAL)

------------------

2073.2149

求最小值

SELECT MIN(SAL) FROM EMP WHERE JOB = …CLERK?;

MIN(SAL)

---------------------

800

求数目

SELECT COUNT(*) FROM EMP WHERE DEPTNO = 20;

COUNT(*)

---------------------

5

3)GROUP BY子句

如求不同职务的平均工资:

SELECT JOB,A VG(SAL)FROM EMP

GROUP BY JOB;

JOB A VG(SAL)

------------------- ---------------------------

ANAL YST 3000

CLERK 1037.5

MANAGER 2758.33333

PRESIDENT 5000

SALESMAN 1400

4)HA VING子句

查询人数超过3人的部门中的平均工资:

SELECT DEPTNO,A VG(SAL)FROM EMP

GROUP BY DEPTNO

HA VING COUNT(*)>3;

DEPTNO A VG(SAL)

------------------- -----------------------

20 2175

30 1566.66667

11.连接

从EMP和DEPT中查询出职工名字、工作和部门名称:

SELECT ENAME,JOB,DNAME FROM EMP,DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO;

湘潭大学信息工程学院

ENAME

JOB

DNAME

----------------------- -------------------- ----------------------- CLARK MANAGER ACCOUNTING MILLER CLERK

ACCOUNTING KING PRESIDENT ACCOUNTING SMITH CLERK RESEARCH SCOTT ANAL YST RESEARCH JONES MANAGER RESEARCH ADAMS CLERK RESEARCH FORD ANAYLST RESEARCH ALLEN SALESMAN SALES BLAKE MANAGER SALES TURNER SALESMAN SALES JAMES CLERK

SALES MARTIN SALESMAN SALES WARD SALESMAN SALES

12. 子查询的应用

从EMP 中查询出工资最低的职工:

SELECT ENAME ,JOB ,SAL FROM EMP

WHERE SAL = (SELECT MIN (SAL )FROM EMP );

ENAME JOB DNAME ---------------------- ------------------------ --------------------- SMITH CLERK 800 从EMP 中查询出每个部门工资最低的职工:

SELECT ENAME ,SAL ,DEPTNO FROM EMP

WHERE SAL IN (SELECT MIN (SAL ) FROM EMP GROUP BY DEPTNO );

ENAME SAL DEPTNO

------------------------ -------------------- -------------------- SMITH 800 20 JAMES 950 30 MILLER 1300 10

四.上机作业

1. 对基本表S 、C 、SC 操作

1)检索学习课程号为C2的学生学号与姓名。

2)检索选修课程名为MATHS 的学生学号与姓名。 3)检索不学C2课的学生姓名与年龄。 4)检索学习全部课程的学生心目。

5)计算每个学生有成绩的课程门数和平均成绩。

2. 对基本表EMP 和DEPT 操作 1) 检索EMP 中所有的记录。

2) 列出工资在1000到2000之间的所有员工的ENAME ,DEPTNO ,SAL 。 3) 显示DEPT 表中的部门号和部门名称,并按部门名称排序。 4) 显示所有不同的工作类型。

5) 列出部门号在10到20之间的所有员工,并按名字的字母排序。

湘潭大学信息工程学院

6) 列出部门号是20,工作是职员的员工。 7) 显示名字中包含TH 和LL 的员工名字。 8) 显示所有员工的名字和收入。 9) 查询每个部门的平均工资。

10) 查询出每个部门中工资最高的职工。

11) 查询出每个部门比平均工资高的职工人数。 12) 列出至少有一个员工的所有部门。 13) 列出薪金比“SMITH”多的所有员工。

14) 列出所有员工的姓名及其直接上级的姓名。 15) 列出受雇日期早于其直接上级的所有员工。

16) 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 17) 列出所有“CLERK”(办事员)的姓名及其部门名称。 18) 列出最低薪金大于1500的各种工作。

19) 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。 20) 列出薪金高于公司平均薪金的所有员工。 21) 列出与“SCOTT”从事相同工作的所有员工。

22) 列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 23) 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 24) 列出在每个部门工作的员工数量、平均工资和平均服务期限。 25) 列出所有员工的姓名、部门名称和工资。 26) 列出所有部门的详细信息和部门人数。 27) 列出各种工作的最低工资。

28) 列出各个部门的MANAGER (经理)的最低薪金。 29) 列出所有员工的年工资,按年薪从低到高排序。

数据库实验

数据库实验 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期; 要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时) 一、实验目的

1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */ Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null,

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

数据库原理实验报告

数据库原理 实验报告 系别电子信息系 专业计算机科学与技术班级学号4080522 姓名龚敏 指导教师李爱英

一.概要设计 1.教学数据库各表的关系模式:(加下线的属性为主键) 学生 (学号,姓名,性别, 出生日期,所在系) 英文缩写对照:student(s_no,s_name,s_sex,s_age,s_birthday,s_department) 课程 (课程号,课程名,学分) 英文缩写对照:course(c_no,c_name,c_score) 教师 (职工号,姓名,性别,职称) 英文缩写对照:teacher(t_no,t_name,t_sex,t_duty) 选课 (学号,课程号,成绩) 英文缩写对照:choice(s_no,c_no,score) 讲授 (职工号,课程号) 英文缩写对照:teaching(t_no,c_no) 2.教学数据库E-R 图: 实体:课程,学生,选课 联系:选课(学生同课程之间多对多的联系m:n),讲授(教师同课程之间多对多的联系m:n)。 二.逻辑设计 代码: use master go create database stu go use stu go n m m n 课程 教师 讲授 选课 学号 姓名 性别 出生日期 成绩 职工号 姓名 性别 职称 学分 课程号 课程名 学生

create table student (s_no char(8) not null primary key, s_name char(8) not null , s_sex varchar(8) not null, s_birthday smalldatetime not null, s_department varchar(13) not null) drop table student use stu go create table teacher (t_no char(8) not null primary key, t_name char(8) not null, t_sex varchar(8) not null, t_duty char(8) not null) create table course (c_no char(8) not null primary key, c_name char(8) not null, c_score varchar not null) create table choice( s_no char(8) not null primary key, c_no char(8) not null primary key, score varchar not null) create table teaching( t_no char(8) not null primary key, c_no char(8) not null primary key) insert student values('101','袁敏','女','1982-2-3','机电') insert student values('102','李志强','男','1983-4-5','计算机') insert student values('103','张亮','男','1984-10-9','建筑') insert student values('104','李平','女','1984-5-6','计算机') insert student values('105','王丽','女','1983-2-1','机电') insert student values('106','刘明耀','男','1982-4-16','计算机') select* from student insert course values('1011','C语言','6') insert course values('1012','数据结构','4') insert course values('1013','微机原理','6') insert course values('1014','数字电路','5') insert course values('1015','高等数学','6') select* from course insert teacher values('0511','张大维','男','副教授') insert teacher values('0512','林楠','女','讲师') insert teacher values('0513','韩晓颖','女','副教授') insert teacher values('0514','李辉','男','讲师') insert teacher values('0515','孙丽','女','助教') select* from teacher insert choice values('101','1011','82.5') insert choice values('101','1012','79') insert choice values('102','1012','92.5') insert choice

#(16课时)数据库实验指导书

《数据库原理及使用》实验指导书 (适用于计算机科学和技术、软件工程专业) 热风器4 计算机科学和技术学院 2011年12月 ⒈本课程的教学目的和要求 数据库系统产生于20世纪60年代末。30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。数据库原理是计算科学和技术专业重要的专业课程。 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库使用的基本训练,提高其解决实际问题的能力。 ⒉实验教学的主要内容 数据库、基本表、视图、索引的建立和数据的更新;关系数据库的查询,包括单表查询、连接查询、嵌套查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库使用系统的设计实现。 ⒊实验教学重点 本课程的实验教学重点包括: ⑴数据库、基本表、视图、索引的建立和数据的更新; ⑵SQL的数据查询; ⑶恢复、完整性和安全性实现机制; ⑷简单数据库使用系统的设计实现; 4教材的选用 萨师煊,王珊.数据库系统概论(第四版).北京:高等教育出版社.2006,5 实验1创建数据库(2学时) 实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和使用。 实验内容 一、给定一个实际问题,实际使用问题的模式设计中至少要包括3个基本表。使用问题是供应商给工程供应零件(课本P74)。 1.按照下面的要求建立数据库: 创建一个数据库,数据库名称可以自己命名,其包含一个主数据文件和一个事务日志文件。注意主数据文件和事务日志文件的逻辑名和操作系统文件名,初始容量大小为5MB,

数据库原理实验5

福建农林大学资源与环境学院实验报告 系:国土资源专业:空间信息与数字技术年级:2016 姓名:任然学号:3165706014 实验室号____507__ 计算机号44 实验时间:2018年5日指导教师签字:成绩: 报告退发(订正、重做) 实验名称:触发器、存储过程操作实验 一、实验目的和要求 (1)掌握SQL Server中的触发器的使用方法; (2)掌握存储过程的操作方法。 二、实验内容和原理 1. 基本操作实验 在读者-图书数据库中用Transact-SQL语句描述下列功能: (1)在读者表上建立一个DELETE类型的触发器lianxi_del,触发动作是显示信息(已删除读者表中的数据),执行下列语句: create trigger lianxi_del on 读者 for delete as print ‘已删除读者表中的数据’ (2)建立一个查询指定读者号的阅读信息的存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。建立这个存储过程的语句如下所示。 create procedure List_jy @p_dzh char(5) = null as if @p_dzh is null begin print ‘请输入一个读者号’ return end else select 编号,姓名,书名,借阅时间 from 读者,借阅,图书 where 读者.编号=借阅.读者编号 and 借阅.书号=图书.书号 and 读者.编号=@p_dzh 2. 提高操作实验 在学生-课程数据库中用Transact-SQL语句描述下列功能: (1)为学生表建立一个名TRI_INSERT的INSERT触发器。功能是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。其中:学生表和表stu的结构相同。 (2)为学生表建立一个名TRI_DELETE的DELETE触发器。功能是当用户从学生表

数据库原理》实验指导书

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

目录 实验一SQL SERVER2000数据库的使用 (1) 实验二创建数据库和数据表 (5) 实验三SQL技术 (14) 实验四实现视图 (22) 实验五创建和维护索引 (27) 实验六触发器管理 (32) 实验七数据的备份与恢复 (35) *实验八SQL Server2000安全管理 (40) 实验一 SQL SERVER2000数据库的使用 实验目的 1. 了解Microsoft SQL Server安装方法与步骤 2. 了解SQL Server 2000常用管理工具 3. 初步熟悉系统提供的学习数据库 4. 掌握在线手册的使用 实验内容 一、安装过程 操作要求:本地安装SQL Server 2000,明确安装步骤以及注意事项。 在WindowsXP或Windows2000 Professional操作系统平台下安装SQL Server 2000个人版。 系统安装完毕后,在开始菜单“程序”中新增了如图1.1所示的菜单。 图1.1程序组菜单 二、使用服务管理器 操作要求:对已安装的本地SQL Server服务器,完成启动、暂停和停止操作。 操作1:执行“开始→程序→Microsoft SQL Server→服务管理器”菜单命令,或双击桌面任务栏上“服务管理器”图标按钮,打开“服务管理器”窗口,如图1.2所示。 注意:SQL Server服务管理器用交通信号灯比喻SQL Server的启动()、停止()和暂停()。

图1.2 “服务管理器”窗口 操作2:在窗口中的“服务器”栏,选择要启动的数据库服务器(取决于所安装的实例),在“服务”中选择“SQL Server”,单击“开始/继续”按钮,启动SQL Server。 注意:选择“当启动OS时自动启动服务”复选按钮,可在每次Windwos启动时自动启动SQL Server。 操作3:单击“暂停”按钮,观察信号灯变化;单击“停止”按钮,观察信号灯变化;再次单击“开始/继续”按钮。 操作4:关闭服务管理器窗口(但SQL Server服务仍在运行,任务栏上的“ ” 图标表示服务已启动)。 三、使用企业管理器 操作要求:启动SQL Server的“企业管理器”,查看已安装的数据库实例中系统数据库情况。(如果条件许可,并尝试在企业管理器中通过向导“新建SQL Server注册”,连接SQL Server教学远程数据库服务器。) 图1.3 “企业管理器”窗口 操作1:执行“开始→程序→Microsoft SQL Server→企业管理器”菜单命令,打开“企业管理器”,如图1.1所示。

数据库原理实验报告分析

2013级数据库原理实验报告 专业:_______计算机___ 班级:________________ 学号:______________ 姓名:_______________ 2015年5月

实验一 SQL Server 2005基本操作 一、实验目的 了解SQL Server 2005组件; 了解SQL Server数据库组成; 掌握SQL Server 2005界面基本操作。 二、实验内容 (1)开始->程序->Microsoft SQL Server 2005-> SQL Server Management Studio,打开后进入到SQL Server 2005主体界面 (2)点击?数据库?前面的?+?,可以展开查看数据库,并且可以继续展开下级目录,查看数据库中的表、视图等。 (3)了解SQL Server 2005菜单栏的一些主要工具的使用。 (4)学生动手操作SQL Server 2005,打开数据库,打开表,打开查询界面;查看数据库的属性、表的属性等。 三、实验总结 进行这次实验有遇到什么问题?怎么解决的? 答:此次实验我们一步一步按照实验内容操作的,基本上没有遇到问题。

实验二数据定义 一、实验目的 掌握SQL Server 2005的数据库创建; 掌握SQL Server数据定义语言; 掌握SQL Server 2005数据定义的SQL语言定义与管理器定义两种方式。 二、实验内容 (1)创建、修改、删除数据库。 创建要求:数据库Employee中包含一个数据库文件Empdat1.mdf和一个日志文件Emplog.ldf。其中,数据文件大小为10MB,最大为50MB,以5MB速度增长;日志文件大小为5MB,最大为25MB,以5%速度增长。 修改要求:增加第二个数据库文件Empdat2.ndf,其中,数据文件大小为5MB,最 大为25MB,以2MB速度增长。 (2)利用SQL创建人员表person、月薪表salary及部门表dept。 见上页图 要求:按表2-1、表2-2及表2-3中的字段说明创建。

《数据库原理》实验7

实验七:数据库的安全性 一、实验目的 1.掌握Windows NT认证模式下数据库用户帐号的建立与取消方法; 2.掌握混合模式下数据库用户帐号的建立与取消方法; 3.掌握数据库用户权限的设置方法; 4.熟悉数据库数据库用户帐号的权限分配、回收等方法; 5.了解数据库角色的分类、作用及使用方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SQL Server 2005系统安全; 2.熟悉数据库用户、服务器角色及数据库角色的用法; 3.完成实验报告; 五、实验内容及步骤 以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码; 1.在当前计算机中增加一个用户zhang和cheng,密码为secret。使此用户通 过winows nt模式下登录SQL Server服务器,登录名分别为zhang和cheng; 2.新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3, 登录密码为secret,默认登录数据库为stu; 3.将帐号zhang添加为数据库stu的用户,用户名为zhang; 4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2 和stu3; 5.给数据库用户zhang赋予创建数据库的权限; 6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限; 7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查 询sc的操作权限,并允许再授权给其他用户; 8.收回数据库用户stu2对student表和course表的删除操作的权限; 9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限 如下: 1)对于student、course表只能进行数据查询;

数据库实验报告

合肥师范学院实验报告册 2014 / 2015 学年第2学期 系别计算机学院 实验课程数据库原理 专业 班级 姓名 学号 指导教师

实验一——数据库基本操作 一、实验目的 1.熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。 2.掌握界面操作方法完成用户数据库建立、备份和还原。 3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。 二、实验预习内容 在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。 2.使用SQL SERVER 2000 中的企业管理器完成以下任务。 数据库名称:STC 表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) ); COUTSES(cno char(3), cname varchar(50), cpno char(3), credit int ); SC(sno char(9), cno char(3), grade int ); 说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。 1)建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。 3)建立各表之间的关联,请简述操作步骤。 (1)CREATE TABLE Stu ( sno char(9), sname varchar(50), ssex char(2), sage int, sdept char(2) ); CREATE TABLE COURSE ( cno char(3), cname varchar(50), cpno char(3), credit int); CREATE TABLE SC ( sno char(9), cno char(3), grade int); 4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC 进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

数据库实验指导书++数据库系统概论(第四版)++王珊、萨师煊

目录 实验一熟悉POWER DESIGNER (2) 实验二SQL SERVER 2000的安装与使用 (6) 实验三创建数据库、表 (17) 实验四SQL SERVER2000查询分析器 (29) 实验五SQL语言的DDL (38) 实验六SQL语言的DML初步 (40) 实验七DML的数据查询 (43) 实验八SQL语言综合练习 (48) 实验九嵌入式SQL ...................... 错误!未定义书签。实验十数据库设计....................... 错误!未定义书签。

实验一熟悉Power Designer 一、实验目的 1、掌握安装并破解PD的方法。 2、通过阅读和分析应用实例“学生选课系统CDM”,了解和熟悉Power Designer CDM及其相关知识。 3.掌握运用Power Designer工具建立CDM的方法。 4.初步掌握从Power Designer CDM生成相应的PDM的方法。 二、实验内容及实验步骤 1、PD环境的介绍 Power Designer的4种模型文件: (1) 概念数据模型(CDM) CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构 无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对 象。它给运行计划或业务活动的数据一个正式表现方式。 (2)物理数据模型(PDM) :PDM 叙述数据库的物理实现。 藉由PDM ,你考虑真实的物理实现的细节。你能修正PDM 适合你的表现或物理约束。 (3)面向对象模型(OOM) 一个OOM包含一系列包,类,接口, 和他们的关系。这些对象一起形成所有的( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。 (4)业务程序模型(BPM) BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用 2、创建CDM(以学生选课系统为例) (1)新建一个CDM,命名为CssCdm(css,Course SelectionSystem ) (2)创建“学生”、“课程”实体和“选课”联系,并命名 (3)为各实体和联系创建属性 学生(学号,姓名,性别,年龄)

数据库实验报告

数据库实验报告

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 二○一二年五月 精心整理,用心做精品0

目录 实验1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14) 精心整理,用心做精品1

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER 和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE 和选修SC三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 精心整理,用心做精品2

7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。 供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 精心整理,用心做精品3

数据库原理课程设计指导书

数据库原理课程设计指导书 课程名称:数据库原理课程设计 课程编号:40406051 课程类型:必修 学时:1周 学分:1 适用专业:计算机科学与技术、网络工程 编制人:数据库原理课程组 一、课程设计的目的和意义 《数据库原理课程设计》是实践性教案环节之一,是《数据库原理》课程的辅助教案课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教案内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库经管系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 二、设计要求: 通过设计一个完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。集中安排1周进行课程设计,以小组为单位,一般2~3人为一组,组内自由分工协作。教师讲解数据库的设计方法以及布置题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告,建立概念模型、逻辑模型、物理模型,在物理模型中根据需要添加必要的约束、视图、触发器和存储过程等数据库对象,生成创建数据库的脚本,提出物理设计的文档,最后应用某种宿主语言完成主要功能设计和实现。 要求如下: 1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。 2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。 3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。 4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。 5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。 6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。 三、课程设计选题的原则 课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过本实践性教案环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。具体选题见附录。 四、课程设计的一般步骤 课程设计大体分五个阶段: 1、选题与搜集资料:根据分组,选题目,在小组内进行分工,进行系统调查,搜集资料。

桂林理工《数据库原理及应用》实验指导(改版)

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 桂林理工大学信息科学与工程学院 二○一二年五月

目录 实验 1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14)

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J 和供应情况表SPJ四个数据表,各表中数据如下所示。

供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 J5 机车厂唐山 J6 无线电厂常州 J7 半导体厂南京 供应情况SPJ: SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200

2016数据库原理实验指导书

信息工程学院 数据库原理实验指导书二零一六年五月

目录 实验一SQL SERVER 2005的安装与启动 (1) 实验二数据库的操作 (11) 实验三SQL SERVER2005查询编辑器 (23) 实验四SQL语言的DDL (31) 实验五SQL语言的DML初步 (34) 实验六DML的数据查询 (36) 实验七数据库综合设计 (40)

实验一SQL Server 2005的安装与启动 一、实验目的 SQL Server 2005是Mircosoft公司推出的关系型网络数据库管理系统,是一个逐步成长起来的大型数据库管理系统。 本次实验了解SQL Server 2005的安装过程,了解SQL Server 2005的启动,熟悉SQL Server 2005软件环境。学会安装SQL Server 2005。 二、实验内容 1.安装SQL Server 2005 (1)将SQL Server 2005(中文开发版)安装盘插入光驱后,SQL Server 2005安装盘将自动启动安装程序;或手动执行光盘根 目录下的Autorun.exe文件,这两种方法都可进行SQL Server 2005的安装。出现如下画面。 (2)选中“运行SQL Server Client 安装向导”进行安装,弹出【最终用户许可协议】界面。

(3)选中【我接受许可条款和条件】选项,单击【下一步】按钮,进入【安装必备组件】界面。 (4)组件安装完成后,单击【下一步】按钮,进入【欢迎使用Microsoft SQL Server 安装向导】界面。

(5)单击【下一步】按钮,进入【系统配置检查】界面。检查完毕将显示检查结果。 (6)检查如果没有错误,单击【下一步】按钮,进入【注册信息】界面。

数据库实验指导书

数据库实验指导书 电气与电子工程学院

实验项目 实验一认识DBMS及数据库的建立 实验二交互式SQL(数据库查询与更新) 实验三数据控制(安全性部分) 实验四数据控制(完整性部分)

实验一认识DBMS及数据库的建立 一、实验目的: 1.掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。 2.掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。 3.掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。 二、实验内容及步骤: 1.通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求: 有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 2.用企业管理器在jiaoxuedb数据库中建立如下表: 学生表: jiaoxuedbdent 课程表: Course 选课表: SC

3.查看表格:显示当前数据库中所有对象的信息。 4.利用企业管理器删除表: 在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可去除表。

数据库原理实验报告(5)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验五嵌套子查询设计实验 所在院(系):数学与信息技术学院 班级: 学号: 姓名:

1.实验目的 (1)掌握多表查询和子查询的方法。 (2)熟练使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 (3)理解不相关子查询和相关子查询的实现方法和过程。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作: a)查询选修了数据结构与算法的学生学号和姓名。 b)查询07294002课程的成绩低于孙云禄的学生学号和成绩。 c)查询和孙云禄同年出生的学生的姓名和出生年份。 d)查询其他系中年龄小于数学与信息技术学院年龄最大者的学生。 e)查询其他系中比数学与信息技术学院学生年龄都小的学生。 f)查询同孙云禄数据库原理与应用课程分数相同的学生的学号和姓名。 g)查询选修了07294002课程的学生姓名。 h)查询没有选07294002课程的学生姓名。 i)查询同时选修了07295006和07295007课程的学生的学号。 j)查询所有未授课的教师的工号、姓名和院系,结果按院系升序排列。 扩展实验: a)查询和10060101选修的全部课程相同的学生的学号、课程号、期末考试 成绩。 b)查询至少选了10060101选修的全部课程的学生的学号。 c)查询年龄比所在院系平均年龄小的学生的学号、姓名、年龄、院系,按 院系和年龄升序排列。 d)查询每门课都在80分以上的学生的学号和姓名。 (2)在SQL Server Management Studio中新建查询,尽可能用多种形式表示实验中的查询语 句,并进行比较。 (3)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。

数据库实验指导及报告-2015正式版

编号:2015版 《数据库原理及应用》 实验报告 实验报告作者(姓名及学号): 实验指导教师:鲍芳 实验时间:2015-2016 秋季实验班级:自动化电气13级班 实验中心三号楼 广东工业大学

(MS SQL SERVER 2005) 第一次实验注意事项: 1.携带U盘;本实验使用MS SQL SERVER 2005; 2.在“我的电脑\|管理\服务及应用\SQLSERVER配置管理器\SQLSERVER2005服务” 菜单下启动“SQL SERVER(MSSQLSERVER)”服务,双击应用程序“SQL Server Management Studio”,注意“服务器名称”不要使用缺省设置,通过“浏览更多” 及展开“数据库引擎”选择本机号码,点击“连接”; 3.在“对象资源管理器”窗口显示有绿色箭头;在对象资源管理器中附加myCapeCodd 数据库:鼠标右键点击“数据库”选择“附加”,指明数据文件.mdf的位置(均指向U盘的某个文件夹);附加成功后在数据库目录下可见myCapeCodd; 4.点击“新建查询”即可在窗口输入相关SQL语句,可以用截图软件保存查询结果。(注意MS SQL SERVER 2008 不支持数据库.mdf.及log文件指向U盘。) 2015数据库原理及应用实验安排(实验一至实验七) 在实验四至实验七中,务必对提交的SQL语句返回的查询结果与人工检索的结果相对比,以此方式验证SQL语句的正确性。 以下实验内容涉及学生自己创建数据库。 5.在对象资源管理器中创建自己的数据库:鼠标右键点击“数据库”选择“新建数据 库”,名称取为“电气X班XXX学生成绩管理数据库”;在“新建数据库”时要指明数据文件及事务日志的位置(均指向U盘的某个文件夹),不要使用缺省设置; 6.在“新建查询”下输入SQL语句,注意先选择对应的“电气X班XXX学生成绩管 理数据库”,而不是缺省的master数据库;检查及执行该语句,注意每次输入新的SQL语句时先清空输入界面;注意在半角状态输入空格,若在全角状态输入空格容易导致出错; 7.创建数据库中的表后(注意刷新),在对象资源管理器窗口可见该表及其所拥有的 键及约束:学生:键:1,约束:1;课程:键:1;选课:键:3,约束:1 8.在对象资源管理器中“数据库”子菜单使用“附加”命令选中.mdf文件(对应的.log

数据库原理实验一

电子信息工程学系实验报告 课程名称: 《数据库原理》 实验项目名称:表的创建和管理 实验时间: 班级: 姓名: 学号: 实 验 目 的: (1)了解SQL Server 的基本数据类型。 (2)学会在企业管理器中创建数据库及表。 (3)学会使用T-SQL 语句创建数据库及表。 (4)学会在企业管理器中修改表的定义。 (5)学会使用SQL 语句修改表的定义 实 验 环 境: winXP +Sql server 2000 实 验 内 容 及 过 程: (1)用企业管理器,建立的数据库SCHOOL ,建立如书本75页的P,S,J,SPJ 四张表,并添加数据。 (2)用企业管理器删除所建立的SPJ 和J 两张表。 (3)在查询分析器中用sql 语句删除表S 和表P,S ,删除数据库SPJ 。 (4)在查询分析器中用sql 语句创建数据库SPJ ,用SQL 语句创建各书本75页的P,S,J,SPJ 四张表,用insert 命令分别向四张表里面添加如75页所示的数据。 (5)将以上用到的SQL 命令以 “实验一.SQL ”文件的形式保存。 (6)用企业管理器备份数据库SPJ 到备份文件SPJ.bak 。 实 验 结 果 及 分 析: (1)

(2) (3) DROP TABLE P; DROP TABLE S; DROP DA TABASE SPJ; (5)

实验心得: 附录: CREATE DATABASE SPJ ON ( NAME=pSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.mdf',SIZE=10MB,MAXSIZE=100MB,FILEGROWTH=1 MB ) LOG ON ( NAME=logSPJ, FILENAME='H:\SQL\MSSQLDATA\mydb.ldf',SIZE=100MB,MAXSIZE=1000MB,FILEGROWTH= 10MB ) go use SPJ CREATE TABLE S( Sno CHAR(2) NOT NULL, --供应商代码不能为空 Sname V ARCHAR(20), Status int , City V ARCHAR(20) , CONSTRAINT S_pk PRIMARY KEY(Sno) --应商代码为主键 ); CREATE TABLE P( Pno CHAR(2) NOT NULL, --零件代码不能为空

数据库实验报告

计算机与信息学院 实验报告 专业班级 计科3班 学生姓名及学号 2014217151 李勤阳课程教学班号 任课教师 实验指导教师 实验地点 计算机楼303 20 16 ~20 17 学年第一学期

实验一数据库的创建和删除 一. 实验目的: 1. 了解SQL Server数据库的环境。 2. 掌握使用SQL 语句创建数据库的方法。 二.实验要求 1. 掌握通过查询分析器进行交互式SQL语句的使用方法。 2. 理解SQL Server中的共享架构dbo。 3.注意操作结果的截图与保存,供撰写实验报告使用。 三.实验内容 1. 使用SQL语句创建数据库EDUC。 数据库的参数要求: 数据库名称:EDUC 数据库存储路径:将数据库文件存储在D:\jxgl\目录中。 (注,如果该目录不存在,需在D盘新建一个名为jxgl的文件夹) 其他参数要求: 数据文件的初始大小:10M 最大:60M 按5%的比例自动增长。 日志文件的初始大小:4M 最大:10M 增量为1M。 2. 将新创建的数据库设置为当前数据库。 四.实验步骤

1.创建数据库EDUC的SQL语句: 示例:创建数据库userdb1 maxsize=5 , filegrowth=1)create database userdb1 on (name=userdb1_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='d:\sql_data\userdb1.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb1_log, filename='d:\sql_data\userdb1.ldf ' , size=2 , reate database EDUC on (name=EDUC_data, filename='E:\jxgl\EDUC.mdf', size=10, maxsize=60, filegrowth=5%) log on ( name=EDUC_log, filename='E:\jxgl\EDUC.ldf ',

相关主题
文本预览
相关文档 最新文档