数据库应用与设计 课后实验 实验一到实验五 代码加截图

数据库应用与设计 课后实验 实验一到实验五 代码加截图
数据库应用与设计 课后实验 实验一到实验五 代码加截图

实验一建立数据库

实验名称:建立数据库

实验内容:在SQL Server环境下建立数据库和维护数据库。

实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。

实验方法:在SQL Server环境下用CREATE DATABASE命令建立数据库(注意:需要是系统管理员用户,或者被指定dbcreator固定服务器角色的成员,或者被显式地授予CREATE DA TABASE权限,有关权限的内容请课文5.2节)

实验要求:

1、根据上体要求创建如下3个数据库:

a)创建数据库test1(使用一个数据文件和一个日志文件),要求指定一个数据文件、

一个事务日志文件,并把它们安排在不同的硬盘上。

b)创建数据库test2(使用多个数据文件和多个日志文件),要求使用3个数据文件和

两个事务日志文件,主数据文件是列表中的第一个文件或者用关键字PRIMARY指

定(文件扩展名:主数据文件使用.mdf,次数据文件使用.ndf,事务日志文件使

用.ldf)。

c)创建数据库test3(使用文件组),要求使用3个文件组(含主文件组,默认的文件

组),每个文件组包含两个数据文件,并且每个文件组要安排在不同的硬盘上。

2、修改建立的test1数据库,为之添加一个5MB大小的新数据文件。

3、修改建立的test2数据库,将其中的主数据文件增加5MB的存储空间。

4、删除建立的数据库test1。

相关命令

建立数据库的命令是CREATE DA TABASE,其常用格式是(命令解释参见课文2.4.2节):CREATE DATABASE database_name

ON

[,,…]

[,FILEGROUP filegroup_name [, ,…]]

[LOG ON [,,…]]

修改数据库的命令是ALTER DATABASE,其常用格式是(命令解释参见SQL Server联机帮助):

ALTER DATABASE database

{ADD FILE

| ADD LOG FILE

| MODIFY FILE

| MODIFY NAME = new_dbname

}

删除数据库的命令是DROP DA TABASE,其格式是:

DROP DATABASE database_name

实验操作:

1)代码:

create database test1

ON

(name=test1,

FILENAME='F:\date\test1.mdf' , SIZE=10,

MAXSIZE=50,

FILEGROWTH=5)

LOG ON

(NAME=test1_log,

FILENAME='E:\date\test1.ldf',

SIZE=5MB,

MAXSIZE=25MB,

FILEGROwTH=5MB)

实验一1.1图

2)代码

create database test2

on

(name=dat11,

filename='F:\date\dat11.mdf',

size=10mb,

maxsize=100mb,

filegrowth=10%),

(name=dat22,

filename='F:\date\dat22.ndf',

size=10mb,

maxsize=100mb,

filegrowth=10%),

(name=dat33,

filename='F:\date\dat33.ndf',

size=10mb,

maxsize=100mb,

filegrowth=10%)

log on

(name='log1',

filename='F:\date\log1.ldf',

size=10mb,

maxsize=100mb,

filegrowth=5mb),

(name=log2,

filename='F:\date\log2.ldf',

size=10mb,

filegrowth=10%)

实验一1.2 图maxsize=100mb,

(3)代码:

create database test3

on primary

(name=dab1,

filename='F:\data\dab1.mld',

size=5mb,

maxsize=10mb,

filegrowth=1mb),

filegroup fg11

(name=dab2,

filename='F:\data\dab2.nld',

size=1mb,

maxsize=10mb,

filegrowth=1mb),

filegroup fg22

(name=dat1,

filename='E:\date\dat1.nld',

size=1mb,

maxsize=10mb,

filegrowth=1mb),

(name=dat2,

filename='E:\date\dat2.nld', size=1mb, maxsize=10mb,

filegrowth=1mb),

filegroup fg33

(name=da1,

filename='G:\data\da1.nld',

size=1mb,

maxsize=10mb,

filegrowth=1mb),

(name=da2, 实验一1.3 图

filename='G:\data\da2.nld',

size=1mb,

maxsize=10mb,

filegrowth=1mb)

alter database test1

add file

(name=te,

filename='F:\data\te.mld',

size=5mb,

maxsize=100mb,

filegrowth=5mb)

实验一2图

alter database test2

modify file

(name=dat11,

filename='F:\data\dat11.mid',

maxsize=105mb)

实验一3图

4:代码:drop database test1

实验一4图

实验二 建立表和定义完整性约束

实验名称:建立模式、表和定义完整性约束

实验内容:在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。 面积

图1 订货数据库

表1 订货数据库字段和约束说明 表名 字段名 字段类型 关键字 约束说明 仓库

仓库号 6个字符 是

城市 10个字符

唯一,不允许空值 面积

数值 大于等于50 职工

职工号 8个字符 是 主键 不为空值

经理 参照仓库的仓库号,允许空值。 工资

货币 大于等于1000,小于等于10000 供应商

供应商号 4个字符

供应商名 16个字符 地址

30个字符

订购单

职工号 参照职工表的职工号,不允许空值 供应商号 参照供应商表的供应商号,允许空值 订购单号 6个字符 是

订购日期 日期 默认是当前日期 金额

货币 默认空值

订购单明细

订购单号

参照订购单表的订购单号,不允许空值

仓库号 城市 仓库号

职工号 工资 职工号 供应商订购单号 订购日期 金额 订购单号 序号 产品名称 单价 数量 供应商号 供应商名 地址 仓库 职工 供应商 订购单 订购单明细

序号2位数字是

产品名称20个字符

单价货币大于0,默认空值

数量整数大于0,不允许空值

实验目的:熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。

实验方法:在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束(注意:需要有CREATE SCHEMA和CREATE TABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见课文5.2节),用ALTER TABLE命令修改表结构。

实验要求:

1、用CREATE SCHEMA命令建立模式(自己命名模式名称)。

2、在定义的模式下参照图1和表1使用CREATE TABLE命令建立表并定义完整性约束。

3、使用ALTER TABLE命令按如下要求修改表结构:

a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。

b)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,

不允许为空值。

c)将供应商表的供应商名字段的类型修改为varchar(30)。

相关命令

CREATE SCHEMA命令的基本格式是(详细解释参见课文第3.3.1节):

CREATE SCHEMA schema_name

CREATE TABLE命令的基本格式是(详细解释参见课文第3.3.2节):

CREATE TABLE [schema_name].table_name

( { | }

[ ] [ ,...n ] )

其中列定义(column_definition)的基本格式是:

Column_name [NULL|NOT NULL]

[ CONSTRAINT constraint_name ]

{ { PRIMARY KEY | UNIQUE } | FOREIGN KEY ( column [ ,...n ] )

REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ]

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

| CHECK ( logical_expression )

}

如果需要还可以定义计算列(computed_column_definition)和表级约束(table_constraint)。ALTER TABLE命令的基本格式是(详细解释参见课文3.3.2节):

ALTER TABLE [schema_name.]table_name

{ ALTER COLUMN column_name [ NULL | NOT NULL ]

| ADD | |

| DROP [ CONSTRAINT ] constraint_name | COLUMN column_name }

实验操作:

create schema kun

2 代码:

1)create table kun.仓库

(仓库号char(6)primary key,

城市char(10),

面积char(10)check(面积in('>=50')))

2)create table kun.职工

(职工号char(8)primary key,

仓库号char(6)foreign key references kun.仓库,

工资money check(工资in('between 1000 and 10000')))

3)create table kun.供应商(供应商号char(4)primary key, 供应商名char(16),

地址char(30))

4)create table kun.订购单

(职工号char(8)foreign key references kun.职工,

供应商号char(4)foreign key references kun.供应商, 订单号char(6)primary key,

订购日期datetime default 11/2/2013,

金额money)

5)

create table kun.订购单明细

(订购单号char(6)foreign key references kun.订购单, 序号char(4),

产品名称char(20),

单价money check(单价>0)null,

数量int check(数量>0)not null,

primary key(订购单号,序号))

3:代码

1)alter table kun.订购单add完成日期datetime null

2)alter table kun.订购单明细

add constraint数量check(数量between 0 and 1000)

实验三数据操作和完整性约束的作用

实验名称:数据操作笔完整性约束的作用

实验内容:在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。

实验目的:熟练掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。

实验方法:在实验二的基础上首先用INSERT命令插入各个表的记录,然后使用UPDA TE 和DELETE命令对部分记录进行修改和删除操作。

实验要求:

1、自行设计各个表的记录,其中仓库表至少5条记录,职工表至少10条记录、供应商表

至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。

2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整

性和用户定义完整性约束的插入操作,并分析原因。

3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删

除、空值删除和级联删除等不同的处理方式)。

4、设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和用户

定义完整性规则的效果。

5、将x城市仓库的职工的工资提高10%。

6、用UPDATE语句完成订购单表金额字段的计算(提示:某张订购单的金额为该订购单所

有订购项目(订购单明细)单价乘以数量的总和)。

7、设计2~3个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应

商名称删除订购单记录)。

8、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的

分析和讨论。

相关命令

SQL的插入语句是INSERT,常用格式如下:

INSERT INTO [schema_name.]table_name [( column_list )]

V ALUES({expression | DEFAULT | NULL } [ ,...n ])

SQL的删除语句是DELETE,常用格式如下:

DELETE [ FROM ] [schema_name.]table_name

[WHERE ]

SQL更新记录的语句是UPDA TE,常用格式如下:

UPDATE [schema_name.]table_name

SET column_name = { expression | DEFAULT | NULL } [ ,...n ]

[ WHERE ]

其中,DELETE和UPDA TE语句的WHERE子句可以嵌套子查询,从而完成若干其他表中记录或字段值的条件的删除或修改操作。

实验操作:

1:代码

1)仓库记录:

insert into kun.仓库(仓库号,城市,面积)

values(0001,'新圩',500)

insert into kun.仓库(仓库号,城市,面积)values(0002,'新圩',600)

insert into kun.仓库(仓库号,城市,面积)values(0003,'新圩',700)

insert into kun.仓库(仓库号,城市,面积)values(0004,'新圩',500)

insert into kun.仓库(仓库号,城市,面积)values(0005,'新圩',500)

insert into kun.仓库(仓库号,城市,面积)values(0006,'新圩',800)

2)职工记录:

insert into kun.职工(职工号,仓库号,工资)

values(99,1,2000)

insert into kun.职工(职工号,仓库号,工资)values(98,2,3000)

insert into kun.职工(职工号,仓库号,工资)values(97,3,3000)

insert into kun.职工(职工号,仓库号,工资)values(96,4,3000)

insert into kun.职工(职工号,仓库号,工资)values(95,5,3000)

insert into kun.职工(职工号,仓库号,工资)values(94,6,3000)

insert into kun.职工(职工号,仓库号,工资)values(93,7,3000)

insert into kun.职工(职工号,仓库号,工资)values(92,8,3000)

insert into kun.职工(职工号,仓库号,工资)values(91,9,3000)

insert into kun.职工(职工号,仓库号,工资)values(90,10,3000)

insert into kun.职工(职工号,仓库号,工资)values(89,11,3000)

3)供应商记录

insert into kun.供应商(供应商号,供应商名,地址)

values(10,'梦华','阿拉斯加')

insert into kun.供应商(供应商号,供应商名,地址)values(11,'梦华','阿拉斯加')

insert into kun.供应商(供应商号,供应商名,地址)values(12,'梦华','阿拉斯加')

insert into kun.供应商(供应商号,供应商名,地址)values(14,'梦华','阿拉斯加')

insert into kun.供应商(供应商号,供应商名,地址)values(15,'梦华','阿拉斯加')

insert into kun.供应商(供应商号,供应商名,地址)values(16,'梦华','阿拉斯加')

订购单记录

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)

values(15,98,74,'1/1/2013',1000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,97,98,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,96,97,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,95,96,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,94,95,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,93,94,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,92,93,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,91,92,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,90,91,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,89,90,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,88,88,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,87,87,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,86,86,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,85,85,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values

(16,84,84,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,83,83,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,82,82,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,81,81,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,80,78,'1/1/2013',2000,'1/1/2013')

insert into kun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values (16,79,77,'1/1/2013',2000,'1/1/2013')

4)订购单明细表

insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)

values(81,99,'dabian',2,3)

insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(97,11,'dabian',3,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(97,12,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(97,13,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(97,14,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(96,15,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(96,17,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(96,18,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(95,19,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(95,20,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(94,21,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(94,22,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,23,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,24,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,25,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,26,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,27,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,28,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(93,29,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,30,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,31,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,32,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,33,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,34,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,35,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,36,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,37,'dabian',3,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,38,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,39,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,40,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,41,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,42,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(87,43,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(86,44,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(86,45,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(86,46,'dabian',2,3) insert into kun.订购单明细(订购单号,序号,产品名称,单价,数量)values(86,47,'dabian',2,3)

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 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的使用

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

数据库实验

数据库实验 集团文件版本号:(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,

数据库实验四作业及答案

实验4数据查询 一、实验目的 1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 2.掌握使用SELECT语句进行条件查询的方法。 3.掌握嵌套查询的方法。 4.掌握多表查询的方法。 5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。 6.掌握联合查询的操作方法。 7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。 二、实验准备 1.了解SELECT语句的基本语法格式和执行方法。 2.了解嵌套查询的表示方法。 3.了解UNION运算符的用法。 4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。 5.了解IN、JOIN等子查询的格式。 6.了解INSERT INTO、UPDATE、DELETE的格式与作用。 三、实验内容及步骤 0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.在studentsdb数据库中,使用下列SQL语句将输出什么? (1)SELECT COUNT(*) FROM grade (2)SELECT SUBSTRING(姓名,1,2) FROM student_info (3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3) (5)SELECT SQRT(分数) FROM grade WHERE 分数>=85 (6)SELECT 2,3,POWER(2,3) (7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2.在studentsdb数据库中使用SELECT语句进行基本查询。 (1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。 SELECT*FROM student_info (2)查询学号为0002的学生的姓名和家庭住址。 SELECT姓名,家庭住址FROM student_info WHERE学号=0002 (3)找出所有男同学的学号和姓名。 SELECT学号,姓名FROM student_info

数据库技术实验六

实验目的: 1. 掌握存储过程的使用方法; 2. 掌握触发器的实现方法; rjM_K.IGG...o.hpl 叮碍 SUUieryJ.E . itir 血 Ecus ton ardurji 5ex V.'crtYMr ⑷崔 加础ur 怙 Wil True 中憎 0帧 Tnz 3 SJ21121 1

(2)创建存储过程,根据每个员工的学历将收入提高500元 alter proc SA_IN @enuchar(6) as begin update Salary set InCome=InCome+500 from Salary,Employees where Employees.EmployeeID =Salary.EmployeeID and Education=@enu end select In Come from Salary,Employees where Salary.EmployeeID = Employees.EmployeeID and Education ='本科' go execdbo.sa_ in'本科' go select In Come from Salary,Employees where Salary.EmployeeID = Employees.EmployeeID and Educati0门=本科' select In Come from Salary,Employees where Salary.EmployeeID =Employees.EmployeeID ■I■ ■ ■ H 1 20B 2 ; 4 52A&7D1 34&D7 3031.55 inCcwii* 1;2532 2 3293701 4羽曲才 号3521 (3)创建存储过程,使用游标计算本科及以上学历的员工在总员工数中的比例。declare @edu varchar ( 10), @part_cou nt int 5 @all_cou nt int J declare mycursor cursor for select disti net educati on , COUNT( education ) over ( partition by education ) as part_cou nt , COUNT( education ) over () as all count and Educati0门=本科

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库实验5实验报告

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:数据库的完整性 班级:软件132 学号:2013122907 姓名:莹莹

一.目的与要求 1.掌握索引创建和删除的方法; 2.掌握创建视图和使用视图的方法; 3.掌握完整性约束的定义方法,包括primary key、foreign key等。 二.实验容 1.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。 2.在salary表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。 3.建立视图view1,查询所有职工的职工号、、部门名和2004年2月工资,并按部门名顺序排列。 4.建立视图view2,查询所有职工的职工号、和平均工资; 5.建立视图view3,查询各部门名和该部门的所有职工平均工资; 6.显示视图view3的定义; 7.实施worker表的“性别”列默认值为“男”的约束; 8.实施salary表的“工资”列值限定在0~9999的约束; 9.实施depart表的“部门号”列值唯一的非聚集索引的约束; 10.为worker表建立外键“部门号”,参考表depart的“部门号”列。 11.建立一个规则sex:性别=’男’ OR 性别=’女’,将其绑定到“性别”上; 12.删除上面第7、8、9和10建立的约束; 13.解除第11题所建立的绑定并删除规则sex。 三.实验步骤 1 USE factory GO --判断是否存在depno索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='depno') DROP INDEX worker.depno GO --创建depno索引 CREATE INDEX depno ON worker(部门号) GO EXEC sp_helpindex worker GO 2 USE factory GO --判断是否存在no_date索引;若存在,则删除之 IF EXISTS(SELECT name FROM sysindexes WHERE name='no_date') DROP INDEX salary.no_date GO --创建no_date索引

数据库实验六

数据库上机实验六 实验名称:视图的建立与使用(续)和数据库的安全性控制 一、实验目的 1.加深掌握视图的定义与工作原理。 2.理解SQL SERVER 2000登录账户、数据库用户、角色、权限的概念及管理方法。 二、实验内容与步骤 1.对视图的操作 (1)创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。 create view cus_SH as select cust_id, cust_name, addr from customer where addr = '上海' (2)删除题1建立的视图中所有姓“王”的客户数据。 delete from cus_SH where cust_name like '王%' (3)对题(1)建立的视图添加一条记录数据(注意:分别查看customer表和该视图的结果)。 insert into cus_SH values ('10010','叶秀玲','武汉') /* 无法将 NULL 值插入列 'tel_no',表 'Sale_Manage.dbo.customer';该列不允许空值。 INSERT 失败。 语句已终止。 */

(4)通过题(1)建立的视图修改表内某一客户的姓名。 update cus_SH set cust_name = '王子' where cust_name = '王' (5)有两个基本表employee和sales,创建一个视图,该视图包含相同业务员的编号、姓名、订单号、销售总金额。 create view emp_sale as select emp_no, emp_name, order_no, tot_amt from employee, sales where emp_no = sale_id (6)给题(5)建立的视图添加一条记录数据。 insert into emp_sale values ('E1000', '肖萧', '1009', '900.00') --视图或函数 'emp_sale' 不可更新,因为修改会影响多个基表。 (7)将题(5)建立的视图中订单号为1001的记录的销售总金额改为60000。 update emp_sale set tot_amt = 60000 where order_no = '1001' (8)删除题5建立的视图。 drop view emp_sale; 2.数据库的安全性控制

数据库实验报告

数据库实验报告

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

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

数据库实验报告五

数据库原理及应用实验报告(五) 实验题目:过程 专业:数字媒体技术 班级:1306班 姓名:***************

运城学院实验报告 专业:数字媒体技术系(班):计算机科学与技术系1306班姓名:************* 课程名称:数据库原理及应用 实验项目:过程实验类型:验证型指导老师:***** 实验地点:软件实验室一时间:2015年12月10日 一、实验目的: 掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。 二、实验内容: (1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示: create procedure pro_s @stu_sdept varchar(5) //这是带参数的过程,参数不用()括 As select count(*) as 人数from student where sdept = @ stu_sdept 1、存储过程的执行 execute pro_s 实参//实参可以是变量,也可以是常量 (2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示: create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数as select @stu_avg = avg(grade) //将平均值给了变量 from student,sc where student. sno = sc. sno and student.sno=@stu_sno 1.存储过程的执行 declare @stuavg float //用于存放输出变量内容的 execute pro_stu ‘1000’,@stuavg output// 输出参数必须是变量 select @stuavg //看结果 (3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用

实验六 访问数据库

实验六访问数据库 一、实验目的 1、熟悉通过嵌入式SQL(主语言为C++语言)编程访问数据库,及掌握游 标的使用方法 2、熟悉通过ODBC接口访问异构数据库并对异构数据库进行操作 3、学会配置ODBC数据源 4、学会各种数据库的访问方法 二、实验要求 1、编写一个嵌入式C++程序,实现对SQL Server2005数据库中的“学生课 程数据库”的Student表中的年龄进行更新,即系统每输出一个学生记录,询问用户是否更新。如果要更新,就输入新的年龄。要求:提交源程序并标识必要的注释。 答:create table provider ( Sno char(5)primary key, Sname char(20)not null, Ssex char(4), Sage int ); insert into provider values('S1','李刚',’男’,20); insert into provider values('S2','李红',’男’,21); insert into provider values('S3','李飞',’男’,25); insert into provider values('S4','李春',’男’,21); #include #include #include #include #include #include #include #include EXEC SQL BEGIN DECLARE SECTION; char deptname[20]; char HSno[9]; char HSname[20]; char HSsex[2]; int HSage; int NEWAGE;

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

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

目录 实验 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

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库实验5报告

北京联合大学信息学院实验报告 题目:实验五用户自定义函数 系别:软件系 专业:软件工程 班级:软件1203B 学号:20120803600 姓名: 同组人:无 指导教师:果晓来 2014年5月21日

5.用户自定义函数(2学时) 实验目的: 学习、掌握用户自定义函数的建立和使用 实验内容: 1、创建自定义函数 创建一个用户自定义函数,并测试、查看函数返回值。1)输入并执行下面语句 USE Northwind GO CREATE FUNCTION fn_TaxRate (@ProdID INT) RETURNS numeric(5,4) AS BEGIN RETURN (SELECT CASE CategoryID WHEN 1 THEN 1.10 WHEN 2 THEN 1 WHEN 3 THEN 1.10 WHEN 4 THEN 1.05 WHEN 5 THEN 1 WHEN 6 THEN 1.05 WHEN 7 THEN 1 WHEN 8 THEN 1.05 END FROM Products WHERE ProductID = @ProdID) END GO

2)此函数中输入变量是什么?返回值类型?如何定义的返回值? 输入变量:@ProdID 返回类型:numeric 定义的返回值:RETURNS numeric(5,4) 3)输入并执行语句测试函数 SELECT ProductName, UnitPrice,Northwind.dbo.fn_TaxRate(ProductID) AS TaxRate, UnitPrice * Northwind.dbo.fn_TaxRate(ProductID) AS PriceWithTax FROM Products

数据库实验报告六_存储过程

HUNAN UNIVERSITY 数据库 实验报告 学生姓名 学生学号 专业班级 指导老师 2017 年5月24日

SELECT COUNT(*)INTO more90 FROM sc WHERE cno = countcno AND grade >= 90; /*将结果存入新表sumScore中*/ create table sumScore( scorestage char(10), number smallint); insert into sumScore values('x<60', less60); insert into sumScore values('60<=x<70', b60a70); insert into sumScore values('70<=x<80', b70a80); insert into sumScore values('80<=x<90', b80a90); insert into sumScore values('x>=90', more90); END$$ call sumScore(); /*调用上述存储过程*/ 首先创建存储过程,然后再调用存储过程。结果如下: (上述结果图截自Navicat软件) 可以看到,在stuinfo中新建了一个基本表sumscore,表中内容是数学课程成绩的各分数段的人数。 2、统计任意一门课的平均成绩。 代码如下: DELIMITER $$ CREATE PROCEDURE `scoreAvg`() BEGIN declare curname char(40) default null; /*临时存放课程名*/ declare curcno char(4) default null; /*临时存放课程号*/ declare curavg float; /*临时存放平均成绩*/ declare mycursor cursor for /*定义游标*/ select cno, cname from course;

数据库实验指导及报告-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

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

数据库原理及应用实验指导★---实验4_SQL语言——SELECT查询操作[1]

实验4 SQL 语言——SELECT 查询操作 1 实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作 实验示例 实验示例中要使用包括如下三个表的“教学管理”数据库JXGL : (1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。 (2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。 (3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。 1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。 CREATE DATABASE JXGL 2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下: Create Table Student ( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno), Sname VARCHAR(20), Sage SMALLINT CHECK(Sage>=15 AND Sage<=45), Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'), Sdept CHAR(2)); Create Table Course ( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno), Cname VARCHAR(20), Cpno CHAR(2), Ccredit SMALLINT); Create Table SC ( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL, Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)), PRIMARY KEY(Sno,Cno),

数据库管理系统实验报告含答案

xxxx大学《数据库管理系统》课程实验报告 班级: _______姓名:实验时间:年月日指导教师:_______ 一、实验目的 1、通过实验,使学生全面了解最新数据库管理系统的基本内容、基本原理。 2、牢固掌握SQL SERVER的功能操作和Transact-SQL语言。 3、紧密联系实际,学会分析,解决实际问题。学生通过小组项目设计,能够运用最新数据库管理系统于管理信息系统、企业资源计划、供应链管理系统、客户关系管理系统、电子商务系统、决策支持系统、智能信息系统中等。 二、实验内容 1.导入实验用示例数据库: f:\教学库.mdf f:\教学库_log.ldf f:\仓库库存.mdf f:\仓库库存_log.ldf 1.1 将数据库导入 在SqlServer 2005 导入已有的数据库(*.mdf)文件,在SQL Server Management Studio 里连接上数据库后,选择新建查询,然后执行语句 EXEC sp_attach_db @dbname = '教学库', @filename1 = 'f:\教学库.mdf', @filename2 = 'f:\教学库_log.ldf' go use [教学库] EXEC sp_changedbowner 'sa' go EXEC sp_attach_db @dbname = '仓库库存', @filename1 = 'f:\仓库库存.mdf',

@filename2 = 'f:\仓库库存_log.ldf' go use [仓库库存] EXEC sp_changedbowner 'sa' go 1.2 可能出现问题 附加数据库出现“无法打开物理文件"X.mdf"。操作系统错误5:"5(拒绝访问。)"。(Microsoft SQL Server,错误: 5120)”。 解决:找到要附加的.mdf文件-->右键-->属性-->安全-->选择当前用户-->编辑-->完全控制。对.log文件进行相同的处理。 2.删除创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸为5MB,增长速度为1MB。 CREATE DATABASE仓库库存 (NAME = '仓库库存_data', FILENAME = 'F:\仓库库存_data.MDF' , SIZE = 10MB, FILEGROWTH = 20%) LOG ON (NAME ='仓库库存_log', FILENAME = 'F:\仓库库存_log. LDF', SIZE = 2MB, MAXSIZE = 5MB, FILEGROWTH = 1MB) 2.1 在数据库“仓库库存”中完成下列操作。 (1)创建“商品”表,表结构如表1: (2)创建“仓库”表,表结构如表2: 表2 仓库表

相关文档
最新文档