SQL Server数据库实验(8学时新版学生)

SQL Server数据库实验(8学时新版学生)
SQL Server数据库实验(8学时新版学生)

实验一数据库、表、视图及索引的创建与管理

目的和要求

(1)使用管理工具和T-SQL命令两种方式实现数据库创建、更名、与删除,学会查看、修改数据库及表属性;

(2)使用管理工具和T-SQL命令两种方式创建表、视图及索引;

(3)掌握修改表、视图的方法;

(4)掌握实体完整性约束、参照完整性约束及用户自定义约束的设置与修改;

(5)理解空值,学会默认值的设置。

实验准备

(1)熟悉数据库基本概念;

(2)了解数据文件、日志文件、文件组的概念和用途;

(3)了解SQL Server 2008常用数据类型;

(4)掌握数据库对象的种类和作用;

(5)了解索引的分类及各类索引的特性;

(6)掌握视图的概念;

(7)掌握完整性约束的概念。

实验内容

【练习1】用管理工具创建数据库test1,要求主文件初始大小为5MB,以1MB增长,最大大小为20MB,日志文件初始大小为2MB,以10%增长,最大大小不限。

【练习2】创建一个名为test2的数据库,它有2个数据文件,其中主文件为100MB,最大大小为200MB,按20MB增长;1个辅助文件为20MB,最大大小不限,按10%增长;有2个日志文件,大小均为50MB,最大大小均为100MB,按10MB增长。

/*use master*/

GO

CREATE DATABASE test2

ON

(NAME=student_data,

FILENAME='c:\program files\microsoft sql

server\student_data_01.mdf',

size=100,

maxsize=200,

FILEGROWTH=20MB),

(NAME=student_help,

FILENAME='c:\program files\microsoft sql

server\student_data_help.ndf',

size=20,

maxsize=unlimited,

FILEGROWTH=20)

LOG ON

(NAME='student_LOG01',

filename='c:\program files\microsoft sql server\student_log01.ldf', size=50MB,

maxsize=100MB,

FILEGROWTH=10MB),

(NAME='student_LOG02',

filename='c:\program files\microsoft sql server\student_log02.ldf', size=50MB,

maxsize=100MB,

FILEGROWTH=10MB)

GO

【练习3】使用工具查看test1和test2的属性。

【练习4】使用T-SQL命令删除test1。

创建表之前,先要设计表,即确定表的名字、所包含的列名、列的数据类型、长度、是否可为空值(null)、默认值情况、是否要使用以及何时使用约束、默认设置或规则以及所需索引、哪些列是主键(主码)、哪些列是外键(外码)等。这些属性共同构成表结构。

创建“学生成绩管理数据库”(数据库名称请各位同学设置为自己的中文姓名,便于检查)中的三张表,表结构如下图所示。

表1:学生情况表(表名S)结构

PRIMARY KEY约束与UNIQUE约束的主要区别是:

(1)一个数据表只能创建一个PRIMARY KEY约束,但是一个表中可以根据需要在不同的列上创建多个UNIQUE约束;

(2)PRIMARY KEY字段的值不允许为NULL,而UNIQUE字段的值可以取NULL;(3)一般创建PRIMARY KEY约束时,系统会自动产成索引,索引的默认类型为聚簇索引;(4)创建UNIQUE约束时,系统自动生产UNIQUE索引,索引的默认类型为非聚簇索引。【练习5】通过工具和T-SQL命令两种方式实现以上三张表的创建,并为三张表建立参照完整性约束。(将执行通过该SQL命令的界面截图于此)。

CREATE TABLE S

(Sno char(6)PRIMARY KEY,

sname CHAR(8)NOT NULL,

speiality CHAR(10),

Sex CHAR(2)check (Sex='男'or Sex='女')DEFAULT'男',

birthday smalldatEtime NOT NULL,

totalcredit tinyint,

comment text,

entrancetime DATETIME DEFAULT GETDATE()NOT NULL)

CREATE TABLE C

(Cno char(3)PRIMARY KEY not NULL,

Cname char(16)not null,

Semester tinyint default'1'check (1<=Semester and Semester<=8)not

null,

classhours tinyint NOT NULL,

credits tinyint check (credits>=0 and credits<=10))

【练习6】在S表中添加一个“address”字段,数据类型为字符型,长度为50,允许为空值(将执行通过的SQL语句记录在此)。

ALTER TABLE S add address char(50)

【练习7】将S表中的“address”字段删除(将执行通过的SQL语句记录在此)。

ALTER TABLE S DROP COLUMN address

注意:在删除一个列之前,必须保证基于该列的所有索引和约束都已被删除。

【练习8】为S表中的“sname”字段加上唯一约束(将执行通过的SQL语句记录在此)。ALTER TABLE S ADD CONSTRAINT zgc UNIQUE(sname)

【练习9】给S表中“birthday”字段加约束,要求出生日期不能在录入当天的日期之后(将执行通过的SQL语句记录在此)。

ALTER TABLE S ADD CONSTRAINT daytime check (birthday

在约束表达式中输入“(birthday

注意:在表中尚未有记录值时,可以修改表结构,如更改列名,列的数据类型、长度和是否为空值等属性,但当表中有了记录后,建议不要轻易改变表结构,特别不要改变数据类型,以免产生错误。

【练习10】用T-SQL命令创建该视图,并保证对该视图的修改都要符合“专业为计算机”这个条件(将执行通过该T-SQL命令的界面截屏于此)。

【练习11】建立计算机专业学生详细情况视图“CS_view”,并向该视图中插入一条记录(?001115?,?刘明仪?,?计算机?,男,?1978-3-2?,50,null),并查询视图CS_view依据的基本表S,看看表S中是否被添加了该条记录(将执行通过的T-SQL语句记录在此)并通过工具再次实现以上插入操作。

CREATE VIEW CS_view

AS

SELECT Sno,sname,speiality,Sex,birthday,totalcredit,comment

FROM S

insert

into CS_view

values ('001115','刘明仪','计算机','男','1978-3-2',50,null)

【练习12】在管理工具中对表C中的“cname”列建立索引“cname_ind”,查看自己创建的该索引后,删除该索引;用T-SQL语句中在表C上建立同样的索引(注意:一个表或视图只允许有一个聚簇索引,并且必须先为表或视图创建唯一聚簇索引,然后才能创建非聚簇索引)(将执行通过的T-SQL语句记录在此)。

CREATE UNIQUE INDEX cname_ind on S(sname)

DROP INDEX https://www.360docs.net/doc/3918172853.html,ame_ind

删除索引:通过管理工具可直接删除索引,也可以通过SQL命令删除索引:DROP INDEX table.index[,…n]

该语句不适合于删除通过定义PRIMARY KEY或UNIQUE约束创建的索引,若要删除PRIMARY KEY或UNIQUE约束创建的索引,必须通过删除约束实现。在系统表的索引上不能进行DROP INDEX。

【练习13】请尝试通过两种方法删除练习12中建立的索引。

【练习14】创建计算机专业学生的平均成绩视图R_A VG,包括sno(在视图中列名为“学号”)和avg-grade(在视图中列名为“平均成绩”),并用该视图查找平均成绩在80分以上的学生的学号和平时成绩(将执行通过该SQL命令的界面截图于此)。

样本数据:

表S:

学号姓名专业名性别出生日期总学分备注

001101 王琳计算机 1 1990-02-10 50 NULL

001102 程明计算机 1 1991-02-01 50 NULL

001103 王艳计算机0 1989-10-06 50 NULL

001104 韦严平计算机 1 1990-08-26 50 NULL

001107 李明计算机 1 1990-05-01 54 提前修完《数据结构》,并获得学分001108 林一帆计算机 1 1989-08-05 52 已提前修完1门课程

001110 张维计算机0 1991-07-22 50 三好学生

001113 严红计算机0 1989-08-11 48 有1门功课不及格,待补考001201 王敏通信工程1 1988-06-10 42 NULL

001202 王林通信工程1 1989-01-29 40 有1门功课不及格,待补考001204 马琳琳通信工程0 1988-02-10 42 NULL

001210 李红青通信工程1 1989-05-01 44 已提前修完1门课程,并获得学分001216 孙祥欣通信工程1 1988-03-09 42 NULL

001221 刘燕敏通信工程0 1989-11-12 42 NULL

001241 罗林琳通信工程0 1990-01-30 50 转专业学习

表C:

课程号课程名开课学期学时学分

101 计算机基础 1 80 5

102 程序设计语言 2 64 4

206 离散数学 4 64 4

208 数据结构 5 64 4

209 操作系统 6 64 4

210 计算机原理 5 64 4

212 数据库原理7 80 5

301 计算机网络7 64 4

302 软件工程7 48 3

表R:

学号课程号成绩

001101 101 80

001101 102 78

001101 206 76

001103 101 62

001103 102 70

001103 206 81

001104 101 90

001104 102 84

001104 206 65

001102 102 78

001102 206 78

001107 101 78

001107 102 80

001107 206 68

001108 101 85

001108 102 64

001108 206 87

001110 101 95

001110 102 90

001110 206 89

001113 101 63

001113 102 79

001113 206 60

001201 101 80

001202 101 65

001210 101 76

001216 101 81

001221 101 76

001241 101 90

实验二数据操纵及数据查询

目的和要求

(1)学会用管理工具和T-SQL命令中对数据库表进行插入、修改和删除等操作;(2)数据更新操作时要注意数据完整性;

(3)掌握基于表与视图的简单查询与复杂查询。

实验准备

(1)了解对表数据有哪几种更新操作;

(2)样本数据录入;

(3)回顾数据完整性知识,在进行数据更新时保证数据的完整性。

实验内容

一、数据更新

insert语句

注:如果插入的数据与约束或规则的要求产生冲突,或者值的数据类型与列的数据类型不匹配,insert将执行失败。

【练习1】将样本数据通过工具或T-SQL命令录入实验一中创建的三张表,并通过管理工具查看S表中的全部数据(将执行“查看S表中数据”的界面截图于此)。

【练习2】使用SQL命令查看R表中的前5条选课记录(将执行通过的SQL语句记录在此)。

【练习3】创建表S1(sno,sname,speiality),将S表中“计算机”专业的学生的学号、

姓名、专业名三类信息插入到表S1中,并用select语句查看插入结果(将执行通过该SQL 命令的界面截图于此)。

UPDATE语句

【练习4】更改S表数据,将学号=…001101?的学生的备注列值改为…三好学生?(将执行通过的SQL语句记录在此)。

update S

SET comment='三好学生'

where Sno='001101'

【练习5】将姓名为“罗林琳”的同学的专业改为“通信工程”,备注改为“转专业学习”,学号改为“001241”,并将S表中所有“通信工程”专业的学生的总学分都增加10(将执行通过的SQL语句记录在此)。

update S

set speiality='通信工程',

comment='转专业学习',

Sno='001241'

where sname='罗林琳'

update S

set totalcredit=totalcredit+10

where speiality='通信工程'

DELETE语句

【练习6】删除S表中的学号=…001101?的行(将执行通过的SQL语句记录在此)。

delete

from R

where Sno='001101'

delete

from S

where Sno='001101'

【练习7】删除S表中总学分小于40的行(将执行通过的SQL语句记录在此)。

delete

from S

where totalcredit<40

二、数据查询

【练习8】查询表S中计算机专业同学的学号、姓名和总学分。(将执行通过的SQL语句记录在此)

select Sno,sname, totalcredit

from S

where speiality='计算机'

【练习9】查询表S中的所有列。(将执行通过的SQL语句记录在此)

select*

from S

【练习10】查询S表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别显示为number,name和mark。(将执行通过的SQL语句记录在此)

select Sno unmber,sname name, totalcredit mark

from S

注意:当使用“=”进行别名设置时,理解成赋值操作。

如下写法错:

SELECT 学号=number,姓名=name,总学分=mark

FROM S

WHERE 专业名='计算机'

注意:当自定义的列标题中含有空格时,必须使用引号将标题括起来,例如:

SELECT 学号'Student number'

FROM S

WHERE 专业名='计算机'

【练习11】对数据库的S表只选择专业名和总学分,消除结果集中的重复行(将执行通过的SQL语句记录在此)。

Select distinct sname,totalcredit

from S

【练习12】查询数据库S表中通信专业总学分大于等于42的同学的情况(将执行通过的SQL 语句记录在此)。

select*

from S

where totalcredit>=42

【练习13】查询数据库S表中计算机专业的学生情况。查询数据库S表中姓“王”且单名的学生情况(将执行通过的SQL语句记录在此)。

select*

from S

where sname LIKE'王_'

and speiality='计算机'

【练习14】查询数据库S表中不在1989年出生的学生情况(将执行通过的SQL语句记录在此)。

select*

from S

where birthday not like 1989

【练习15】查询数据库S表中专业名为“计算机”、“通信工程”或“无线电”的学生的情况(将执行通过的SQL语句记录在此)。

select*

from S

where speiality='计算机'or speiality='通信工程'or speiality='无线电'

【练习16】查询数据库中总学分尚未确定的学生情况(将执行通过的SQL语句记录在此)。SELECT * FROM S WHERE 总学分IS NULL

SELECT*FROM S WHERE totalcredit IS NULL

【练习17】查找选修了课程号为?101?的课程的学生的情况(将执行通过的SQL语句记录在此)。

SELECT*

FROM S

WHERE Sno in(

select Sno

from R

where Cno='101')

【练习18】查找未选修离散数学的学生的情况(将执行通过该SQL命令的界面截图于此)。SELECT*

FROM S

WHERE Sno not in(

select Sno

from R

where Cno in(

select Cno

from C

where Cname='离散数学')

)

【练习19】查找比所有计算机系的学生年龄都大的学生(将执行通过的SQL语句记录在此)。SELECT*

FROM S

WHERE birthday

select birthday

from S

where speiality='计算机')

【练习20】查找课程号206的成绩不低于课程号101的最低成绩的学生的学号(将执行通过的SQL语句记录在此)。

select Sno

from R

where Cno='206'and grade>=any(

select grade

from R

where Cno='101')

EXISTS子查询

EXISTS子查询和普通子查询不同的是:一般的子查询,内层查询只处理一次,得到一个结果集,再依次处理外层查询;而EXISTS子查询的内查询要处理多次,因为内层查询与外层查询中的…S.学号?有关(即相关子查询),外层查询中S表的不同行有着不同的学号值。因为子查询的条件依赖于外层查询中的某些值,所以EXISTS子查询的处理过程是:首先查找外层查询中的S表中的第一行,根据该行的学号列值处理内层查询,若结果不为空,则WHERE 条件就为真,就把该行的姓名值取出作为结果集的一行,然后再找S表的第2,3….行,重复上述过程直到S表的所有行都查找完为止。

【练习21】查询选修206号课程的学生姓名(将执行通过的SQL语句记录在此)。

select sname

from S

where exists

(select*

from R

where Cno='206')

【练习22】查询选修了全部课程的同学的姓名(将执行通过的SQL语句记录在此)。select sname

from S

where not exists

(select*

from C

where not exists(

select*

from R

where Sno=S.sname and Cno=https://www.360docs.net/doc/3918172853.html,o))

【练习23】查找选修了206课程且成绩在80分以上的学生姓名及成绩(将执行通过的SQL 语句记录在此)。

select sname,grade

from S,R A

where exists(

select*

from R B

where Sno=S.Sno AND https://www.360docs.net/doc/3918172853.html,o=https://www.360docs.net/doc/3918172853.html,o and A.Sno=B.Sno and Cno='206'and grade> 80

)

【练习24】查询选修了“计算机基础”课程且成绩在80分以上的学生姓名、课程名及成绩(将

执行通过的SQL语句记录在此)。

select sname,Cname,grade

from S,C d,R A

where exists(

select*

from R B

where Sno=S.Sno AND https://www.360docs.net/doc/3918172853.html,o=https://www.360docs.net/doc/3918172853.html,o and A.Sno=B.Sno and grade>80 and exists(

select*

from C f

where https://www.360docs.net/doc/3918172853.html,o=https://www.360docs.net/doc/3918172853.html,o and Cname='计算机基础'

))

【练习25】查找所有学生情况及他们选修的课程号,若某学生未选修任何课,也要包括他的情况说明(将执行通过的SQL语句记录在此。(提示:使用外连接操作,左外连接LEFT OUTER JOIN,右外连接RIGHT OUTER JOIN,完全外连接FULL OUTER JOIN)

select

S.Sno,sname,speiality,Sex,birthday,totalcredit,comment,entrancetime,R .Cno

from S

left join R on

S.Sno

=R.Sno

【练习26】求选修101课程的学生的平均成绩,要求结果表显示列名为“课程101平均成绩”(将执行通过的SQL语句记录在此)。

select AVG(grade)'课程平均成绩'

from R

where Cno='101'

group by Cno

【练习27】求选修101课程的学生的最高分和最低分,要求结果表显示列名分别为“课程101的最高分”和“课程101的最低分”(将执行通过的SQL语句记录在此)。

select MAX(grade)'课程最高分',MIN(grade)'课程最低分'

from R

where Cno='101'

【练习28】求学生的总人数,要求结果表显示列名为“学生总人数”(将执行通过的SQL语句记录在此)。

select COUNT(Sno)'学生总人数'

from S

【练习29】求选修了课程的学生总人数(将执行通过的SQL语句记录在此)。

select COUNT(Sno)'学生总人数'

from S

where exists

(select*

from R

where R.Sno=S.Sno)

【练习30】统计离散数学课程成绩在85分以上的学生人数,要求结果表显示列名为“离散数学85分以上的人数” (将执行通过的SQL语句记录在此)。

select COUNT(Sno)'离散数学分以上人数'

from R a

where exists

(select*

from R b

where a.Sno=b.Sno and grade>85 and Cno in

(select Cno

from C

where Cname='离散数学'))

【练习31】将数据库中各专业名输出(即只输入不同的专业名称)(将执行通过的SQL语句记录在此)。

select distinct speiality

from S

【练习32】求数据库中各专业的学生人数(将执行通过的SQL语句记录在此)。

提示:结果表显示为两列,一列为“专业名”,一列为“学生人数”。

select speiality'专有名',COUNT(Sno)'学生人数'

from S

group by speiality

【练习33】求被选修的各门课程的平均成绩和选修该课程的人数,显示结果表列名分别为:课程号、平均成绩、选修人数(将执行通过的SQL语句记录在此)。

select Cno'课程号',avg(grade)'平均成绩',COUNT(Sno)'学生人数'

from R

group by Cno

【练习34】查找数据库中平均成绩在85分以上的学生的学号和平均成绩,结果表列名显示为“学号”和“平均成绩”(执行通过的界面截图)。

select Sno'学号',avg(grade)'平均成绩'

from R

group by Sno

having AVG(grade)>85

【练习35】查找选修课程超过2门而且成绩都在80分以上的学生的学号(将执行通过的SQL语句记录在此)。

select Sno'学号'

from R

where grade>=80

group by Sno

having COUNT(Cno)>=2

【练习36】查找通信工程专业平均成绩在85分以上的学生的学号和平均成绩,结果列名显示为“学号”和“平均成绩”(执行通过的界面截图)。

select Sno'学号',AVG(grade)'平均成绩'

from R

where exists(

select*

from S

where speiality='通信工程'

)

group by Sno

having AVG(grade)>=85

【练习37】将通信工程专业的学生按出生日期先后排序(将执行通过的SQL语句记录在此)。select*

from S

where speiality='通信工程'

order by birthday asc

【练习38】将计算机专业学生的“计算机基础”课程成绩按降序排列,结果表列名包括姓名、课程名和成绩(将执行通过的SQL语句记录在此)。

select sname,cno,grade

from S,R

where S.Sno=R.Sno

order by grade desc

实验三数据完整性、存储过程与触发器、

数据库备份与恢复

目的和要求

(1)通过实验加深对实体完整性、参照完整性以及用户自定义完整性的理解,并掌握完整性约束的设置与修改;

(2)学会创建和使用简单存储过程;

(3)学会创建和使用简单触发器;

(4)了解SQL Server的数据备份和恢复机制;

(5)掌握SQL Server中数据库备份和恢复的方法;

实验准备

(1)掌握完整性约束的概念;

(2)了解存储过程的概念和使用方法;

(3)了解触发器的概念和用途;

(4)了解在SSMS中创建命名备份设备和进行数据库完全备份操作的方法。

实验内容

1、数据完整性

(1)实体完整性

在数据库中建立表S,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录。

CREATE TABLE S

(Sno CHAR(8) NOT NULL UNIQUE,

Sname CHAR(8),

Ssex CHAR(1),

Sage INT,

Sdept CHAR(20),

CONSTRAINT PK_S PRIMARY KEY(Sno));

INSERT S V ALUES('S01','王兵','M',23,'CS');

SELECT * FROM S;

【练习1】执行下列语句,会发生什么?为什么?给出答案。

INSERT S V ALUES ('S01','黄山','M',23,'CS')

在S表中插入一条新纪录sno= s01 sname =黄山ssex=M sage=23 sdept=cs

【练习2】执行下列语句,会发生什么?为什么?给出答案。

UPDATE S SET Sno=NULL WHERE Sno='S02';

会报错,sno为主键,不能更新为NULL

(2)参照完整性

建立表C,令Cno为其主键,并在表S中插入两条记录。

CREATE TABLE C

(Cno CHAR(4) NOT NULL UNIQUE,

Cname VARCHAR(50) NOT NULL,

Cpoints INT,

CONSTRAINT PK PRIMARY KEY(Cno));

INSERT C VALUES('C01','ComputerNetworks',2);

INSERT C VALUES('C02','ArtificialIntelligence',3);

建立表SC,令Sno和Cno分别为参照S表以及C表的外键,设定为“级联删除”,并令(Sno,Cno)为其主键。在不违反参照完整性的前提下,插入4条选课记录。

CREATE Table SC

(Sno CHAR(8),

Cno CHAR(4),

Scredit INT,

CONSTRAINT PK_SC PRIMARY KEY(Sno,Cno),

CONSTRAINT FK_SC_Sno FOREIGN KEY(Sno) REFERENCES S (Sno) ON DELETE CASCADE,

CONSTRAINT FK_SC_Cno FOREIGN KEY(Cno) REFERENCES C(Cno) ON DELETE CASCADE);

INSERT INTO SC V ALUES('S02','C01',2);

INSERT INTO SC V ALUES ('S02','C02',2);

INSERT INTO SC V ALUES ('S01','C01',2);

INSERT INTO SC V ALUES ('S01','C02',2);

SELECT * FROM SC;

【练习3】执行下列语句,会发生什么?为什么?给出答案。

INSERT INTO SC VALUES('S99','C99',2);

报错S99 在S表中不存在,违反参照完整性

【练习4】用SQL命令在S中删除Sno='S01'的学生记录,并查看SC表中数据,看看发生了什么变化?为什么?给出答案。

所有与SO1有关的信息都会被删除,因为SC表中的信息与S表想关联

(3)用户自定义完整性

【练习5】创建Teacher表,并自定义2个约束U1以及U2,其中U1规定Tname字段值唯一,U2规定Tage (级别)字段的上限是28。给出代码截屏。

CREATE TABLE Teacher

(Tno CHAR(5),

Tname CHAR(8) CONSTRAINT U1 UNIQUE,

Tsex CHAR(1),

Tage INT CONSTRAINT U2 CHECK (Tage<=28),

Tdept CHAR(20),

CONSTRAINT PK_Teacher PRIMARY KEY(Tno))

【练习6】在Teacher表中插入一条记录(…T02?,?王勇?,?M?,38,? 后勤部?),会发生什么?为什么?给出答案。

会出错,tage>28

【练习7】通过管理工具或alter table命令去除U2约束后,重新插入记录(…T02?,?王勇?,?M?,38,? 后勤部?),会发生什么?

会添加一条新纪录

除了使用SQL语言,利用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性以外,我们还可以通过创建规则的方式保证用户完整性的实现。例如下面一段代码:CREATE RULE Rule_sex AS @Value IN ('F','M')

Go

EXEC SP_bindrule Rule_sex, 'Teacher.[Tsex]';

实现功能:创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Teacher 的Tsex字段。

【练习8】在创建规则Rule_sex后,试在Teacher表中插入一条记录(…T03?,?黄号?,?1?,?25?,? 后

勤部?),看看会发生什么?为什么?请给出答案。

会出错,Tsax不满足要求

2、存储过程与触发器

(1)存储过程

掌握存储过程的基本操作包括创建存储过程、执行存储过程、修改和删除存储过程等。例1:创建名为P_student1的存储过程,查看所有学生的基本信息。

Create procedure P_student1

As

Select * from Students

再执行该存储过程exec P_student1,即可查看到Students表中所有信息。

例2:Create procedure P_student2

@sex varchar(10) /*定义输入参量@sex */

As

Select * from Students where Ssex=@sex

这样可以根据用户传递进来的sex参数,来确定要查询男生信息还是女生信息。当然在调用该存储过程时,需要给出参数@sex的具体值。如:Exec P_student2 @sex=?男?请创建以上两例存储过程,并调用它们,查看执行结果。

【练习9】创建一个存储过程student_grade,查询数据库中每个学生每门功课的成绩,要求查询结果中反映出学生学号、姓名、课程名及成绩。创建好后调用student_grade查看结果,并将命令及结果截屏。

create procedure student_grade1

as

select S.Sno,sname,Cname,grade

from S,C,R

where S.Sno=R.Sno and https://www.360docs.net/doc/3918172853.html,o=https://www.360docs.net/doc/3918172853.html,o

例3:按系别和选修课程查询,其中选修课程设置默认查找值为“数据库原理”。

SQLserver数据库课程设计范例

1 概述 1.1课题简介 书店书目书种繁多,来源多样,购买者众多,图书信息、供应商信息、客户信息、销售信息庞大,不易管理。因此,很有必要创建一个小型书店管理系统,以便于书店对图书的管理。1.2设计目的 应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。 数据库应用课程实践:实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。 数据库原理软件设计实践:实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 1.3设计内容 运用基于E-R 模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发小型书店管理系统,完成小型书店管理系统的全部功能。 首先做好需求分析,并完成数据流图和数据字典。 其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R 图。然后就是逻辑结构设计,将E-R 图转换为计算机系统所支持的逻辑模型 2 需求分析 2.1功能分析 首先,建立一些基本表(尽可能满足3N),对大部分基本信息组合、存储;其次通过建立视图实现对冗余数据的有必要保留(查询并计算基本表属性得到新的作为视图属性)并实现对以下基本信息的显示。 图书信息:图书名称、订购数量、订购时间、订购单价、金额、出版社名称、作者名称;供应商名称等; 供应商信息:供应商名称、地址、电话,联系人; 客户信息:客户编号、名称、年龄、性别、累计购书金额等; 销售信息:时间、销售名称、数量、销售单价、客户编号、客户名称、金额等。 在此基础上进行以下目标查询,由于有些查询常用且较复杂,为了简化其应用,所以将它们定义

数据库技术(SQLServer)习题与参考答案

数据库技术(SQLServer)习题与参考答案 第一章: 1、SQL Server 2005有哪些新增特性? 答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性与可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强与SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务与数据挖掘。 2、SQL Server 2005安装的软件与硬件环境就是什么? 答:SQL Server 2005安装的软件与硬件环境参见教材6。 3、SQL Server 2005有哪些版本?有哪些服务组件? 答:SQL Server 2005包括企业版、标准版、工作组版、开发版与简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。 4、什么就是实例?经常提到的SQL Server 2005服务器与服务器实例就是否具有相同的含义? 答:实例就就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其她实例共享的系统及用户数据库。一个SQL Server服务器就就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为就是一个实例。 5、默认实例与命名实例有何差别?在安装与使用上有何不同? 答:实例又分为“默认实例”与“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。 6、SQL Server 2005的安全性验证分为哪两个阶段? 答:第1个阶段就是身份验证,验证用户就是否具有“连接权”;第2个阶段就是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,就是否具有“访问权”。 7、SQL Server 2005有哪些主要的实用工具?每个工具都有什么用途? 答:SQL Server Management Studio,就是Microsoft SQL Server 2005中的新组件,这就是一个用于访问、配置、管理与开发SQL Server的所有组件的集成环境,就是SQL Server 2005中最重要的管理工具。SQL Server Configuration Manager,用来管理SQL Server 2005所

SQLserver数据库管理系统需求分析

SQLserver数据库管理系统需求分析 ——成绩管理分析 一、概述 二、SQLserver简介及知识介绍 三、数据库管理系统知识 四、需求分析—成绩管理 一、概述 成绩管理系统可以实现对成绩的管理,在此系统里可以查询、添加、删除学生的成绩,方便用户的管理。学生成绩管理系统是应对学生人数增多、信息量增大的问题,实现管理的现代化、网络化,逐步摆脱当前学生成绩管理系统的人工管理方式,提高成绩管理效率而开发的。希望该程序能够解决学生信息存储、学生成绩查询、录入还有课程查询等一系列功能,并提供了对各功能模块的查询和更新功能,且这两种功能基本上是通过存储过程来实现的,其中学生成绩查询和学生信息查询是成绩管理系统的重点。 二、SQLserver简介及知识介绍 1、简介 美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。 其主要特点如下: (1)高性能设计,可充分利用WindowsNT的优势。 (2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。

(3)强壮的事务处理功能,采用各种方法保证数据的完整性。 (4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。 2、SQLserver的发展 SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。 SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate 三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft 与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server 在UNIX操作系统上的应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 3、SQL Server 2008的新功能及知识介绍 (一)、可信任的

数据库技术(SQLServer)习题与

数据库技术(SQLServer)习题与参考答案. 数据库技术(SQLServer)习题与参考答案 第一章: 1、SQL Server 2005有哪些新增特性? 答:SQL Server 2005的新特性主要体现在企业

数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。 2、SQL Server 2005安装的软件和硬件环境是什么?

答:SQL Server 2005安装的软件和硬件环境参见教材6。 3、SQL Server 2005有哪些版本?有哪些服务组件? 答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。SQL Server 2005、什么是实例?经常提到的4. 服务器和服务器实例是否具有相同的含义? 答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的

系统及用户数据库。一个SQL Server服务 器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是 一个实例。 5、默认实例和命名实例有何差别?在安装 和使用上有何不同? 答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就

连接SQLServer2008数据库的方法

连接SQLServer2008数据库的方法 一、设置SQLServer2008: SQL server 2008 1433端口开启解决方案 查看电脑开放端口命令为:netstat -an SQL Server 2008一般默认的端口为 1433 ,但有时会遇到无法连接端口1433的问题,检查端口1433是否启用的方法为: 开始–>输入cmd –>回车–>telnet localhost 1433->回车出现黑屏,表示本机连接端口1433成功。 否则按照以下顺序进行配置: (1)关闭数据库引擎 打开配置管理器,找到 SQL Server(SQEXPRESS),右键单击,选择停止,即可停止数据库引擎

(2) .配置服务器端和客户端的TCP/IP协议: 在SQL Server网络配置中选择SQLEXPRESS的协议,选择TCP/IP ,右键单击,选择属性 选择IP 地址选项卡 把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是" 把“IP地址”下“IPALL”的端口改为“1433”。

(3)SQL Native Client 10.0 配置->客户端协议->TCP/IP (4).开启数据库引擎

这样就开启了1433的端口了 先停止SQLServer2008服务。 1.启用1433端口 S1:执行“配置工具”下的“SQL Server配置管理器”。打开如下窗口: S2:右击“SQL Server网络配置”右边的“TCP/IP”,从快捷菜单中选择“属性”,打开下图所示窗口

2.设置登录方式(使用SQL Server登录方式,而不是Windows方式) 打开“SQL Server Management Studio”,打开如下图所示快捷菜单,选择“属性”

SqlServer数据库同步方案详解

SqlServer数据库同步是项目中常用到的环节,若一个项目中的数据同时存在于不同的数据库服务器中,而这些数据库需要被多个不同的网域调用时,配置SqlServer数据库同步是个比较好的解决方案。SqlServer数据库同步的配置比较烦锁,下面对其配置详细步骤进行介绍: 一、数据复制前提条件 1. 数据库故障还原模型必需为完全还原模型。 2. 所有被同步的数据表都必须要用主键。 3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。 4. SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。 二、解决前提条件实施步骤 1. 将数据库故障还原模型调整为完全还原模型。具体步骤如下: 打开SQLSERVER企业管理器à选择对应的数据库à单击右键选择属性à选择”选项”à 故障还原模型选择完全还原模型。 2. 所有被同步的数据表都必须要用主键。(主要指事务复制)如果没有主键的数据表,增加一个字段名称为id,类型为int 型,标识为自增1的字段。 3. 发布服务器、分发服务器和订阅服务器必须使用计算机名称来进行SQLSERVER服务器的注册。 在企业管理器里面注册的服务器,如果需要用作发布服务器、分发服务器和订阅服务器,都必需以服务器名称进行注册。不得使用IP地址以及别名进行注册,比如LOCAL, “.”以及LOCALHOST等。

如果非同一网段或者远程服务器,需要将其对应关系加到本地系统网络配置文件中。文件的具体位置在%systemroot%\system32\drivers\etc\hosts 配置方式: 用记事本打开hosts文件,在文件的最下方添加IP地址和主机名的对应关系。如图: SQLSERVER必需启动代理服务,且代理服务必需以本地计算机的帐号运行。 启动SQLSERVER代理的方法:我的电脑à单击右键”管理”à服务à SQLSERVERAGENT 将其设为自动启动。如图:

数据库应用技术SQLServer篇第版

数据库应用技术——SQL Server 篇(第2版) 第 1 章数据库概述 1 1.1 订单管理系统概述 1 1.2 数据库基本原理 2 1.2.1 关系数据库系统概述 2 1.2.2 实体- 联系模型 2 1.2.3 关系模型 4 1.2.4 关系数据库标准语言 8 1.2.5 关系模型的规范化 9 习题11 第 2 章SQL Server 概述12 2.1 SQL Server 简介12 2.1.1 SQL Server 的发展及特性12 2.1.2 SQL Server 的环境要求13 2.2 SQL Server 的安装15 2.2.1 SQL Server 的应用环境设计15 2.2.2 SQL Server 的身份验证模式16 2.2.3 SQL Server 的安装17 2.3 SQL Server 的管理及开发工具21

习题28

45 第 3 章 数据库管理 29 3.1 SQL Server 数据库概念 29 3.1.1 数据库文件分类 29 3.1.2 页 30 3.1.3 数据库文件组 31 3.2 系统数据库及其表 32 3.3 创立数据库 33 3.3.1 创立数据库应具备的条件 33 3.3.2 在图形界面下创立数据库 34 3.3.3 用SQL 命令创立数据库 35 3.3.4 事务日志 38 3.3.5 查看数据库信息 39 3.4 管理和维护数据库 40 3.4.1 打开数据库 41 3.4.2 增减数据库空间 41 3.4.3 数据库选项的设定与修改 44 3.4.4 更改数据库名称 45 3.4.5 查看 SQL Server 上共有几个数据库 3.4.6 删除数据库 45 习题 46

数据库课程设计《SQLServer图书馆管理系统》实例讲解教学内容

数据库系统概论课程设计 图书馆数据库管理系统 小组成员: *** *** ***

QQ: 目录 序言............................................................................... 错误!未定义书签。 一、图书馆管理系统E-R 图 .................................... 错误!未定义书签。 二、图书馆管理系统功能实现示意图....................... 错误!未定义书签。 三、图书馆管理系统功能图例................................... 错误!未定义书签。 3.1 读者借阅图书.................................................. 错误!未定义书签。 3.2 读者归还图书.................................................. 错误!未定义书签。 3.3 读者续借图书.................................................. 错误!未定义书签。 3.4 读者查询借阅图书情况.................................. 错误!未定义书签。 3.5 读者检索图书信息.......................................... 错误!未定义书签。 四、图书馆管理系统附加功能................................... 错误!未定义书签。 4.1 往学生表中插入列"系部",其值等于学号中代表系部的位的值, 再插入列"专业号",其值等于学号中代表专业的位的值错误! 未定义书签。 4.2 查询每个学生对书本的借阅数量.................. 错误!未定义书签。 4.3 查询各个专业的学生借阅书本的数量.......... 错误!未定义书签。 五、图书馆管理系统数据库、数据表源代码........... 错误!未定义书签。 5.1 图书馆管理系统"数据库"源代码 .................. 错误!未定义书签。 5.2 图书馆管理系统"数据表"源代码 .................. 错误!未定义书签。 六、图书馆管理系统存储过程源代码....................... 错误!未定义书签。 6.1 读者借阅图书存储过程.................................. 错误!未定义书签。 6.2 读者还书存储过程.......................................... 错误!未定义书签。 6.3读者续借图书存储过程................................... 错误!未定义书签。 6.4 读者查询借阅图书情况存储过程.................. 错误!未定义书签。 6.5 读者检索的图书信息存储过程...................... 错误!未定义书签。

SQLServer数据库期末复习试题试卷及答案

现有关系数据库如下: 数据库名:教学数据库(Teacher) 教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数) 一、用SQL语言实现下列功能 1.创建数据库。 要求:数据库名为Teacher,主数据文件名为Teacher_data.MDF,存放在C:\目录下,初始值大小为2MB,增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存放在C:\目录下,初始值大小为1MB,增长方式为按照1MB的增量增长。 2.创建教师信息表Teacherinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Teacher_Id char 6 主键教师编号 Teacher_Name nvarchar 8 不允许空姓名 Sex nchar 2 检查(男/女) 性别 Birth_Place nvarchar 20 默认值(汉族) 民族 Zhicheng nvarchar 20 不允许空职称 H_Id char 16 唯一身份证号 3.创建课程信息表Courseinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Course_Id char 5 主键课程号 Course_Name nvarchar 20 不允许空课程名 B_Hours Int 检查(0~200)标准课时数 4.创建任课信息表TCinfo,数据表的各字段属性如下表所示: 列名数据类型长度属性描述 Id int 自动编号 Teacher_Id char 6 外键教师编号 Course_Id char 5 外键课程号 S_Hours Int 实际课时数 5.将下列课程信息添加到课程表中: 课号课程名称课时数 30001 SQL Server数据库 90 30002 数据结构 60 30003 VB程序设计 72

SqlServer数据库优化方案

第一部分SQL SERVER数据库优化方案 微软公司的SQL SERVER 是一个功能完备的数据库管理系统,它提供了完整的关系数据库创建、开发和管理功能。现社会信息技术的快速发展,对数据库技术的要求也越来越高,SQL SERVER数据库在信息化的过程中得到了广泛的应用。 第一章数据库系统概述 从20世纪60年代开始到现在,数据库技术经过了30多年的发展。在这30多年的历程中,在数据库技术的理论研究和系统开发上取得了辉煌的成就,确立了数据技术在现代计算机系统中不可或缺的地位。成为现代信息科学与技术的重要组成部分以及计算机数据处理和信息管理系统的核心。 1.1 基本概念 与数据库技术密切相关的基本概念包括:数据、数据库、数据库管理系统和数据库系统四大概念。 1.数据(Data) 数据是对客观事物的一种描述,是由能被计算机识别与处理的数值、字符等符号构成的集合,即数据是指描述事物的符号记录。 广义地说,数据是一种物理符号的序列,用于记录事物的情况,是对客观事物及其属性进行的一种抽象化及符号化的描述。数据的概念应包括数据的内容和形式两个方面。数据的内容是指所描述的客观事物的具体特性,也就是通常所说的数据的“值”;数据的形式则是指数据内容所存储的具体形式,即数据的“类型”。故此,数据可以用数据类型和值来表示。 2.数据库(Data Base,DB) 页脚内容1

数据库是指长期存储在计算机内部、有组织的、可共享的数据集合,即在计算机系统中按一定的数据模型组织、存储和使用的相关联的数据集合成为数据库。 数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性、易扩展性、集中性和共享性,以文件的形式存储在存储介质上的。数据库中的数据由数据库管理系统进行统一管理和控制,用户对数据库进行的各种数据操作都是通过数据库管理系统实现。 3.数据库管理系统(Data Base Management System,DBMS) 数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件,是位于操作系统与用户之间的一层数据管理软件。主要功能是对数据库进行定义、操作、控制和管理。 1)数据定义 数据的定义包括:定义构成数据库结构的外模式、模式和内模式,定义各个外模式和模式之间的映射,定义模式与内模式之间的映射,定义有关的约束条件。 2)数据处理 对数据的处理操作主要包括对数据库数据的检索、插入、修改和删除等基本操作。 3)安全管理 对数据库的安全管理主要体现在:对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护(如索引、数据字典的自动维护)等。并且能够管理和监督用户的权限,防止拥护有任何破坏或者恶意的企图。 4)数据的组织、存储和管理 负责分类地组织、存储和管理数据库数据,确定以何种文件结构和存取方式物理地组织数据,如何实现数据之间的联系,以便提高存储空间利用以及提高随机查找、顺序查找、增加、删除和查改 页脚内容2

数据库技术(SQLServer)习题与参考答案电子教案

数据库技术(SQLServer)习题与参考答案 第一章: 1、SQL Server 2005有哪些新增特性? 答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。 2、SQL Server 2005安装的软件和硬件环境是什么? 答:SQL Server 2005安装的软件和硬件环境参见教材6。 3、SQL Server 2005有哪些版本?有哪些服务组件? 答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。 4、什么是实例?经常提到的SQL Server 2005服务器和服务器实例是否具有相同的含义?答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQL Server服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。 5、默认实例和命名实例有何差别?在安装和使用上有何不同? 答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。 6、SQL Server 2005的安全性验证分为哪两个阶段? 答:第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,是否具有“访问权”。 7、SQL Server 2005有哪些主要的实用工具?每个工具都有什么用途? 答:SQL Server Management Studio,是Microsoft SQL Server 2005中的新组件,这是一个用于访问、配置、管理和开发SQL Server的所有组件的集成环境,是SQL Server 2005中最重要的管理工具。SQL Server Configuration Manager,用来管理SQL Server 2005所提供的服务、服务器与客户端通信协议以及客户端的基本配置管理。SQL Server外围应

SQLServer数据库入门学习总结

SQL Server数据库入门学习总结 经过一段时间的学习,也对数据库有了一些认识。 数据库基本是由表,关系,操作组成;对于初学者首先要学的: 1.数据库是如何存储数据的 表,约束,触发器 2.数据库是如何操作数据的 insert,update,delete T-sql 函数存储过程触发器 3.数据库是如何显示数据的 select SQLServer数据库学习总结 1.SQL基础 SQL Server2000安装、配置,服务器启动、停止,企业管理器、查询分析器 第一代数据库--网状数据库和层次数据库;第二代数据库--关系数据库 数据库(DB);数据库管理系统(DBMS);数据库系统(DBS) SQL Server 2000 提供了不同版本:企业版、标准版、个人版、开发版 SQL Server中的数据类型:整数:int,smallint,tinyint,bigint;浮点数:real,float,decimal;二进制:binary,varbinary;逻辑:bit;字符:char,nchar,varchar,nvarchar;文本和图形:text,ntext,image;日期和时间:datetime,smalldatetime;货币:money,smallmoney 数据库的创建和删除;数据库表的创建、修改和删除 数据完整性:实体完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;参照完整性:Foreign Key,Check,Triggers,Procedure;用户定义完整性:Rule,Triggers,Procedure;Create Table中得全部列级和表级约束 SQL Server中有5种约束:主键约束(Primary Key Constraint)、默认约束(Default Constraint)、检查约束(Check Constraint)、唯一性约束(Unique Constraint)、外键约束(Foreign Key Constraint). 关系图 数据库设计的步骤:需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库实施、数据库运行和维护 两个实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n) 实体关系模型-- E-R图

SQLserver数据库设计及开发规范

LMS项目数据库设计 及使用规

在本项目中,数据库的设计和使用必须遵循以下原则: 1命名原则 1.1约定: Pascal Casing命名方式: 1.每一个单词的第一个字母大写,例如:B ank N ame。 2.常用单词缩写三个字母以下字母都大写,例如:SP、PG 3.常用单词缩写三个字母以上第一个字母大写,例如:Xml 1.2表名和字段 规则如下: ?使用英文单词或词组作为表名,不得使用汉语拼音,建立一个中英文对照字典。 ?用名词和名词短语作表名 ?不使用复数,除非与数据库保留字冲突 ?用Pascal 命名规则 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合 ?不要用任何名前缀(例如U,B) ?数据库对象名称不使用下划线 正确的命名,例如: Users Order Product 1.3存储过程 规则如下: 命名规则为up_xxx_StoredProcedureName,up表示User Procedure,用来区分它和系统存储过程,xxx表示子系统的名称,由三个字母构成,各个子系统参见下表,StoredProcedureName为存储过程含义 StoredProcedureName规则如下: ?用动词或动词短语来命名,并带有宾语 ?需要符合用Pascal 命名规则。 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合

?不要用任何名前缀(例如U,B) ?StoredProcedureName不使用下划线 ?当操作依赖条件时,一般结尾使用By+条件 存储过程正确的命名,例如: Up_Usr_InsertUser Up_Usr_SearchUserByUserID Up_Usr_DeleteUserByUserID 各个子系统的缩写如下: 1.4视图 规则如下: ?视图的命名采用vw ViewName的格式,其中vw前缀表示视图,ViewName部分表示视图的含义。 ViewName规则如下: ?用名词和名词短语, ?不使用复数 ?用Pascal 命名规则 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合 ?不要用任何名前缀(例如U,B) ?ViewName中不使用下划线 视图正确的命名,例如: vwUser vwUserOrder vwTranscation 视图错误的命名,例如: UserView vw_Transcation_View

SQLServer数据库基本介绍

SQLServer数据库基本介绍 数据库用于存储结构化数据。数据的组织有多种数据模型,目前主要的数据模型是关系数据模型,以关系模型为基础的数据库就是关系数据库。一,数据库的概述1)关系数据库术语 表:用于存储数据,它以行列式方式组织,可以使用SQL从中获取、修改和删除数据库。表是关系数据库的基本元素记录:记录是指表中的一行,在一般情况下,记录和行的意思是相同的。字段:字段是表中的一列,在一般情况下,字段和列所致的内容是相同的。关系:关系是一个从数学中来的概念,在关系代数中,关系是指二维表,表既可以用来表示数据,也可以用来表示数据之间的联系索引:索引是建立在表上的单独的物理结构,基于索引的查询使数据获取更为快捷。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的,主要是看这些字段是否允许重复。主索引是表中的一列和多列的组合,作为表中记录的唯一标识。外部索引是相关联的表的一列或多列的组合,通过这种方式来建立多个表之间的联系。视图:视图是一个真实表的窗口,视图不能脱离表。视图和表的区别是,表是实际存在的(需要存储在计算机中,占用存储空间),而视图是虚拟表(仅存储真实表的视图表现形式),它用于限制用户可以看到和修改的数据量,以简化数据的表达。存储过程:存储过程是一个编译过的SQL程序。在该过程中,可以嵌入条件逻辑、传递参数、定义变量和执行其他编程任务。 2)数据库管理系统提供的功能数据库管理系统简称为DBMS,是一种操作和管理数据库的大型软件,用于建立、使用维护数据库。基本功能如下

数据定义功能:定义数据库结构数据存取功能:提供数据操纵语言,实现对数据库数据的 基本存储操作数据库运行管理功能:提供数据控制功能,即数据的安全性,完整性和并发控制等对数据库运行进行有效的控制和管理数据库的建立和维护功能:包括数据库初始数据的嵌入,数据库的转储、恢复、重组织、系统性能监视、分析等功能数据库的传输:实现用户程序与DBMS之间的通信 3)数据库的存储结构 数据库文件主数据文件(Primary):是数据库的关键文件,用来存放数据,包含数据库启 动信息,每个数据库都必须包含也只能包含一个主数据文件,默认扩展名是.mdf次数据文件(Secondary):又称辅助文件,包含除主数据文件外的所有数据文件。次数据文件是可选的,有些数据库没有次数据文件,有些数据库则包含多个次数据文件.默认扩展名是.ndf事务日志 文件(Transaction Log):用来存放事务日志信息。事务日志记录了SQL Sever所有的事务 和由这些事务引起的数据库的变化。SQL Sever遵循先写日志再进行数据库修改的规则,所以 数据库中数据的任何变化在写到磁盘之前,这些改变先在事务日志中做了记录,每个数据库至 少有一个事务日志文件Lof File,也可以不止一个。默认扩展名是.ldf数据库文件组主文件组:包含主数据文件和所有没有被包含在其他文件组里的文件用户定义文件组:默认文件组:

SQLSERVER数据库应用技术

SQLSERVER数据库应用技术 (课程代码:0220591) 一、课程性质 《SQLSERVE数据库应用技术》是《计算机应用专业》网络技术应用方向的一门技术性、专业性及适用性较强的专业课程。 二、教案目的 本课程以SQL SERVER为基础,讲授数据库原理、关系数据库基本理论;SQL SERVER 的操作和使用方法,以及数据库安全管理知识。了解ORACLE数据库的基本操作和使用方 法。通过本课程的学习,使学生掌握数据库的关系数据库基本概念及其设计、操作、查询;能结合先修课程和相关软件,以SQL SERVER和ORACLED后台数据库开发简单适用数 据库查询系统和网络信息管理系统。同时通过本课程学习,培养学生良好学风和严谨的工作作风,并为后续课程学习打下良好的基础。 三、教案基本内容与学时分配 四、教案内容 理论教案内容 第一章数据库理论基础 教案要点 通过本章的教案,要求学生掌握数据库技术的基本概念、数据库的三级模式结构和二级映象功能;知道数据模型的三要素,会画E-R图。 教案重点 数据库系统的组成,数据模型的分类和三要素,数据库系统与文件系统的区别,图。教案E-R

难点数据库系统结构,模式之间的映射。 教案内容 1、数据库技术的基本概念; 2、数据库系统的组成和结构; 3、数据库模型的概念及分类; 4、数据库技术的发展。 作业及要求 理解数据库相关概念,掌握E-R 图会画后,设计并完成学生管理数据库的E-R 图. 第二章关系数据库理论教案要点 通过本章的教案,使学生理解关系模型的完整性约束条件;掌握选择、投影、连接三个专门的关系运算;能运用关系代数进行各种查询,并了解关系的数学定义和性质。 教案重点完整性约束,关系代数,关系规范化。 教案难点关系代数,关系规范化。 教案内容 1、关系的数学定义和性质; 2、关系模型的完整性约束条件; 3、关系代数; 4、关系的规范化原则、范式的基本概念和分解方法。 作业及要求 什么是范式? 第三章SQL Sever 的安装及系统介绍 教案要点通过本章的教案,要求学生了解SQL Server2000 的概念和特性;掌握安装SQL Server2000 的硬件要求和操作系统要求以及如何安装;熟悉SQL Server2000 的数据库组成及SQL Server2000 的常用可视化工具;理解它和ODBC 的概念并熟练掌握配置数据源的方法和步骤。 教案重点 掌握安装SQL Server2000 的硬件要求和操作系统要求以及如何安装。 教案难点 理解它和ODBC 的概念并熟练掌握配置数据源的方法和步骤。 教案内容 1、SQL Server2000 的特性; 2、SQL Server2000 的安装; 3、SQL Server2000 系统的主要组成; 4、SQL Server2000 和ODBC。作业及要求 要求学生了解SQL Server2000 的概念和特性;掌握安装SQL Server2000 的硬件要求和操作系统要求以及如何安装后,上机安装及配置SQL Server2000. 第四章SQL 数据库及其操作教案要点 通过本章的教案,使学生熟练掌握SQL 语言的命令,并能够在查询分析器中执行。 教案重点 利用SQL 语言创建数据库的主要特点。 教案难点 SQL 语言修改数据库。教案内容 1、利用向导及SQL 语言创建数据库的主要特点; 2、利用向导及SQL 语言修改数据库; 3、利用向导及SQL 语言进行数据库备份。作业及要求 1、如何利用向导及SQL 语言进行数据库备份? 2、如何利用向导及SQL 语言修改数据库?第五章创建SQL 数据表教案要点 通过本章的教案,使学生熟练掌握掌握在SQL Server 中创建和设计数据表的基本方法;掌握对

Java连接SQLServer数据库全解

第一步:安装SQL SERVER 2000数据库软件,安装包解压之后的文件夹名为“SQL server 2000 个人版XP能用”。 安装方法:直接双击“SQL server 2000 个人版XP能用\SQL2000_PER”文件夹下的setup.bat (批处理文件)就可以进入安装程序。 在安装过程中一定要选择混合模式,设sa的密码为hw 或root 。以后登录“SQL 查询分析器”的时候就输入该密码(hw 或root)。 安装完“SQL server 2000 个人版”之后,还不能用Java连接SQL server 2000数据库。还必须安装“SQL2000-KB884525-SP4-x86-CHS”,简称“SP4”,即SQL server 2000的补丁。 安装界面如下: SP4解压缩完成之后,就会在C盘根目录下自动新建一个文件夹:C:\SQL2KSP4。 里面的内容如下:

然后双击C:\SQL2KSP4文件夹中的setup.bat批处理文件进行安装,前面的实质上是SP4的解压,解压后的文件就是C:\SQL2KSP4,所以双击并不是安装过程,而实质上是一个加压缩的过程。 □不安装SP4,Java程序无法连接SQL server 2000数据库。 双击C:\SQL2KSP4文件夹中的setup.bat后的安装才是SP4真正的安装。 SP4安装完成之后,把SQL server 2000的Java驱动(三个jar包)全部加入到应用程序中,或同时加入到classpath环境变量中。 这三个jar包的名字依次是:msbase.jar ,mssqlserver.jar ,msutil.jar 。 注:这三个jar包必须同时使用,缺一不可。 连接代码: 连接SQL server 2000数据库的Java类:

SQLServer数据库技术复习

SQL Server 数据库技术》期末复习题型一: 一、单项选择题(每小题2分,共30 分) 二、填充题(15 分) 三、简答题(每题5分,共25 分) 四、程序设计题(每题15 分,共30分) 题型二: 一、单项选择题(每小题2分,共30 分) 二、填充题(10 分) 三、判断题(每小题1分,共10 分) 四、简答题(每题5分,共20 分) 五、程序设计题(每题15 分,共30分)

1. SQL Server 2000 是一个( )的数据库系统。 (A)网状型 (B)层次型 (C)关系型 (D)以上都不是 2. DTS 是一个简称,它的全称是( )。 A. 数据运输系统 B. 数据传输服务 C. 数据库传输系统 D. 数据库运输服务 3. SQL Server 2000 采用的身份验证模式有( )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式 (D)Windows身份验证模式和混合模式 4. SQL 语言按照用途可以分为三类,下面选项中哪一种不是的:( ) (A)DML(B) DCL ( C) DQL( D) DDL 5. 在SELECTS句的WHER子句的条件表达式中,可以匹配0个到多个字符的通配符是( ) ( A) * ( B) % ( C) - ( D) ? 6. 下列哪个数据库记录了SQL Server 2000的所有系统信息?( ) A. master B. model C. pubs D. msdb 7. 以下那种类型能作为变量的数据类型( )。 ( A) text ( B) ntext ( C) table ( D) image 8. 下面不属于数据定义功能的SQL语句是:() A. CREATE TABLE B.CREATE DATABASE C.UPDATE D.ALTER TABLE 9. 如果希望完全安装SQL Server,则应选择()。 A. 典型安装 B. 最小安装 C. 自定义安装 D. 仅连接 10. 打开要执行操作的数据库,应该用哪个SQL 命令?( ) A. USE B. GO C. EXEC D. DB 1. C 2.B 3.D 4.C 5.B 6.A 7.C 8.C 9.A 10.A 1、下面仅存在于服务器端的组件是:( ) A、服务管理器 B、企业管理器组件 C、查询分析器组件 D、导入导出组件 2、下面描述错误的是( )。 A、每个数据文件中有且只有一个主数据文件。 B日志文件可以存在于任意文件组中。

相关文档
最新文档