SQL作业

发布 2022-09-02 19:26:28 阅读 8391

sql server数据库。

实验报告。罗洁思编写。

班级: 汽车服务工程(2)班

姓名: 康俊伟

学号: 0908082217

厦门理工学院机械工程系。

实验一活期储蓄管理系统数据库设计。

一、实验目的。

1、 掌握概念模型、关系模型和关系数据库的概念;

2、 掌握概念模型的设计方法;

3、 掌握关系模型的设计。

二、 实验内容。

在活期储蓄管理过程中,“储户”通过“存取款”与“储蓄所”发生业务联系。试设计活期储蓄管理系统数据库的概念模型、关系模型并确定约束。

三、 实验步骤。

1、需求分析。

通过对数据库用户(储蓄所业务人员)的调查,对用户的需求进行分析得知:

1) 储户是指在某个储蓄所开户的人。该储蓄所称为储户的开户行。

2) 一个储蓄所可以有多个储户,每个储户有惟一的账号。

3) 每个储户可以在多个允许发生业务的储蓄所进行存取款。

4) 储户按信誉分为“一般”和“良好”两种(分别用0和1表示)。信誉“一般”的储户不允许透支。信誉“良好”的储户可以透支,但不能超过5万元。

5) 储户按状态分为:“正常”和“挂失”两种(分别用表示)。状态为“正常”的储户允许存取款,状态为“挂失”的储户不允许存取款。

6) 储户的信息有:账号、姓名、密码、**、地址、信誉、存款额、开户行编号、开户日期、状态等。

7) 储蓄所的信息有:编号、名称、**、地址、负责人。

8) 储户进行存取款时应该提供账号、存取标志(1:表示存款,0:表示取款)、存取金额、存取日期等信息,储蓄所首先要对储户的身份进行验证,对合法的储户再根据“信誉”判断是否可以发生此次业务。

若发生业务则记录相应信息,修改储户的存款额。

2、概念模型设计。

请根据系统需求分析设计e-r图。

3、关系模型设计。

请跟据e-r图转换成对应的关系模型,并标出主码。

由e-r模型知,实体集“储户”和“储蓄所”之间存在着m:n联系。由概念模型向关系模型的转换规则知,关系模型中包括3个关系:

实体集“储户”和“储蓄所”分别形成关系,实体的码就是关系的码;联系“存取款”形成一个关系,该关系的码应该包括两个实体的码,考虑到允许同一储户在同一储蓄所多次存取款,所以联系“存取款”对应的关系的主码中还应该包括“存取日期”。

另外,考虑到储户的信息项较多,而且有一部分信息(如:账号、姓名、**、地址、开户行等)相对固定,其余信息(如:储户的密码、信誉、状态、存款额等)经常变化。

因此,可以将实体储户的信息分割为储户基本信息和储户动态信息两个关系,两个关系的码均为账号。这样更利于数据的存储和维护,还可以提高数据的安全性。

转换后的关系模型为:

储户基本信息(账号,名称,**,地址,开户行,开户日期)

储户动态信息(账号,密码,信誉,存款额,状态)

储蓄所(编号,名称,**,地址)

存取款(账号,储蓄所编号,存取标志,存取金额,存取日期)

4、约束关系。

1)实体完整性。

请描述出全部的实体完整性。

实体“储户”的主码“账号”不能为空;实体“储蓄所”的主码“编号”不能为空。关系“存取款”中的主码“账号”和储蓄所“编号”和“日期”不能为空。

2)参照完整性。

请描述出全部的参照完整性。

参照关系“存取款”的属性“账号”和储蓄所“编码”分别是被参照关系“储户”和“储蓄所”的外码。因此,参照关系“存取款”的属性“账号”的值必须是被参照关系“储户”中某一元组的“账号”的值。同样,参照关系“存取款”的属性储蓄所“编号”的值必须是被参照关系“储蓄所”中某一元组的“编号”的值。

关系“储户”的属性“开户行”,是关系“储蓄所”的外码,其取值必须是“储蓄所”的“编号”的值。

3)用户定义的完整性。

请描述出全部的用户定义的完整性。

对信誉为“一般”的储户取款时,只有当:

储户。存款额”-“存取款。金额”≥0

时才可以发生取款业务。

同理,对信誉为“良好”的储户取款时,只要:

储户。存款额”-“存取款。金额”≥-50000(元)

时便可以发生取款业务。

5、关系结构描述。

请仿照表1描述出活期储蓄管理系统的关系结构。

活期储蓄管理系统的关系结构描述。

实验二创建活期储蓄系统数据库。

一、实验目的。

1、掌握使用t-sql语句创建数据库。

2、掌握使用t-sql语句创建数据表。

3、掌握使用 t-sql语句创建视图。

4、掌握使用t-sql语句创建索引。

二、实验内容。

1、使用t-sql语句创建活期储蓄管理系统数据库。

2、使用t-sql语句为活期储蓄管理系统数据库创建数据表、视图及索引。

三、实验步骤。

1、用sql server 2008创建案例1描述的数据库。

请写出实现上述要求的transact-sql语句。

create database 活期储蓄1

on primary

name=活期储蓄1,filename='g:\temp\活期储蓄数据文件\活期储蓄1_',size=5,maxsize=100,filegrowth=10%

log on

name=活期储蓄1_log,filename='g:\temp\活期储蓄日志文件\活期储蓄1_',size=5,maxsize=200,filegrowth=5

2、创建表。

请写出transact-sql语句。

use 活期储蓄1

gocreate table 储户基本信息。

账号 varchar(10)primary key,姓名 varchar(8) not null,** varchar(16),地址 varchar(50),开户行 varchar(8),开户日期 datetime,use 活期储蓄1

gocreate table 储户动态信息。

账号 varchar(10)primary key,密码 varchar(10) not null,信誉 varchar(8)check(信誉='1'or 信誉='0'),存款额 int,状态 int check(状态='1'or 状态='0')

use 活期储蓄1

gocreate table 储蓄所。

编号 varchar(10)primary key,名称 varchar(50) not null,** varchar(16),存款额 int,地址 varchar(50)

use 活期储蓄1

gocreate table 存取款。

账号 varchar(10)references 储户基本信息(账号),储蓄所编号 varchar(10) references 储蓄所(编号),标志 int check(标志='1'or 标志='0'),金额 int check( 金额》0),存取日期 datetime

3、创建视图。

请分别使用ssms和t-sql创建视图“存款1”和“存款2”,以实现上述要求。对ssms创建视图“存款1”的操作过程进行截图,并给出采用t-sql语句创建视图“存款2”的相应语句。

use 活期储蓄1

gocreate view 存款2

as select 储户基本信息。账号,储户基本信息。姓名,储户动态信息。存款额

from 储户基本信息,储户动态信息

where 储户基本信息。账号=储户动态信息。账号 go截图:

请使用t-sql创建视图“储户”,给出相应的sql语句。

use 活期储蓄1

gocreate nonclustered index index2

on 存取款(存取日期 asc)

4、创建索引。

请分别使用ssms和t-sql创建索引“index1”和“index2”,以实现上述要求。对ssms创建视图“index1”的操作过程进行截图,并给出采用t-sql语句创建视图“index2”的相应语句。

use 活期储蓄1

goinsert into 储户基本信息(帐号,姓名,**,地址,开户行,开户日期) values ('10020123','李丹娜','021)22959618','上海','1208','2000-08-06')

insert into 储户基本信息(帐号,姓名,**,地址,开户行,开户日期) values ('10245082','张岚','0571)66787968','杭州','1002','1998-06-01')

insert into 储户基本信息(帐号,姓名,**,地址,开户行,开户日期) values ('10204567','王立群','021)89727982','上海','1303','2004-01-08')

insert into 储户基本信息(帐号,姓名,**,地址,开户行,开户日期) values ('10020089','找四','0571)28008986','杭州','1208','2003-02-08')

实验三活期储蓄数据库上的一般操作。

一、实验目的。

1、掌握为数据表录入数据。

2、掌握使用t-sql语句完成相应的查询命令

二、实验内容。

为活期储蓄管理系统数据库“活期储蓄”的数据表录入数据,并根据需要,编写t-sql语句。

三、 实验步骤。

1、 录入数据。

2、 2、数据查询。

1) 查询储户的姓名和存款额。

2)查询账号为***的储户的存取款记录。

3) 查询编号为1002的储蓄所2003.10-2004.10的存取款业务详细记录。

4) 查询编号为1002的储蓄所的存取款业务汇总情况。

请写出相应的transact-sql语句。

use 活期储蓄1

goinsert into 储户基本信息(账号,姓名,**,地址,开户行,开户日期) values (‘10020089’,‘张晓军’,‘0571)22959618’,‘杭州’, 1002’, 2002-11-20’)

use 活期储蓄1

goselect 姓名,存款额

from 储户基本信息,储户动态信息

where 储户基本信息。账号=储户动态信息。账号

use 活期储蓄1

goselect * from 存取款。

where 储蓄所编号='1002' and

存取日期 between '2003-10-01' and '2004-10-01'

use 活期储蓄1

goselect * from 存取款。

where 储蓄所编号=‘1002’

SQL作业

客户号客户名称联系人地址邮政编码 客户。产品号。客户号。订单号。订购日期。订购单。产品名称规格说明单价。产品。订单号序号产品号数量。产品。图1订单管理数据库。查询客户表中的所有记录 从订购单表中查询客户号信息 哪些客户有订购单 查询单价在x元以上 含 的产品信息。查询单价在x元以上 不含 的某产品 ...

SQL作业

一 学生 课程 选修数据库。单表。1 检索学习课程号为0911的学生的学号和成绩。2 统计选修了课程号为0911的学生的人数。3 检索每个学生的出生年份,输出学生姓名和出生年份。4 检索选修课程号为0912或者0911的学生的学号。5 检索18 20岁的姓王的同学的学生姓名。6 检索学习课程中包含了...

sql作业

第六周。一 单选题。1 b 是位于用户与操作系统之间的一层数据管理软件。数据库在建立 使用和维护时由其统一管理 统一控制。a dbb dbmsc dbsd dba 2 模式和内模式 a a 只能各有一个 b 最多只能有一个 c 至少两个 d 可以有多个。3 数据库系统的核心是 c a 数据模型 b ...