sql server数据库实验代码

sql server数据库实验代码
sql server数据库实验代码

重庆交通大学

学生实验报告

实验课程名称数据库应用与设计

开课实验室xxxxxxxxx

学院xxx 年级2011 专业班xxxx

学生姓名xxxxxx 学号xxxxxx

开课时间2013 至2014 学年第 2 学期

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

实验名称

建立模式、表和定义完整性约束

实验内容

实验目的

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

实验方法

在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束,用ALTER TABLE命令修改表结构。

实验要求

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

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

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

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

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

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

实验步骤

create table仓库

(仓库号nchar(6)primary key

check(仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),

城市nchar(10)not null unique,

面积float check(面积>=50));

create table职工

(职工号nchar(8)primary key check(职工号like'____[0-9][0-9]'),

仓库号as convert(nchar(6),substring(职工号,1,6))persisted not null foreign key references仓库(仓库号),

经理nchar(8)foreign key references职工(职工号),

工资money check(工资>=1000 and工资<=10000));

create table供应商

(供应商号nchar(4)primary key

check(供应商号like'S[0-9][0-9][0-9]'),

供应商名nchar(16),

地址nchar(30));

create table订购单

(职工号nchar(8)not null foreign key references职工(职工号),

供应商名nchar(16),订购单号nchar(6)primary key check(订购单号

like'OR[0-9][0-9][0-9][0-9]'),

订购日期datetime default getdate(),

金额money default null);

create table订购单明细

(订购单号nchar(6)not null foreign key references订购单(订购单号),

序号tinyint,

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

产品名称nchar(20),

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

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

create trigger dgdmx on订购单明细

after insert

as begin

declare @订购单号nchar(6)select @订购单号=订购单号from inserted

update订购单set金额=(select sum(单价*数量)from订购单明细where订购单号=@订购单号)

where订购单号=@订购单号

end

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

实验名称

数据操作笔完整性约束的作用

实验内容

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

实验目的

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

实验方法

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

实验要求

1、自行设计各个表的记录,其中仓库表至少5条记录,职工表至少10条记录、供应商表至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。

2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户定义完整性约束的插入操作,并分析原因。

3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。

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

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

6、用UPDATE语句完成订购单表金额字段的计算(提示:某张订购单的金额为该订购单所有订购项目(订购单明细)单价乘以数量的总和)。

7、设计2~3个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应商名称删除订购单记录)。

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

实验步骤

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

values('GH1111','重庆',99);

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

values('GH2222','北京',199);

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

values('GH3333','上海',299);

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

values('GH4444','厦门',399);

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

values('GH5555','杭州',499);

insert into职工(职工号,经理,工资)

values('GH111111','GH111111',9999);

insert into职工(职工号,经理,工资)

values('GH111122','GH111122',9999);

insert into职工(职工号,经理,工资)

values('GH222211','GH222211',9999);

insert into职工(职工号,经理,工资)

values('GH222222','GH222222',9999);

insert into职工(职工号,经理,工资)

values('GH333311','GH333311',9999);

insert into职工(职工号,经理,工资)

values('GH333322','GH333322',9999);

insert into职工(职工号,经理,工资)

insert into职工(职工号,经理,工资)

values('GH444422','GH444422',9999); insert into职工(职工号,经理,工资)

values('GH555511','GH555511',9999); insert into职工(职工号,经理,工资)

values('GH555522','GH555522',9999); insert into供应商(供应商号,供应商名,地址) values('S111','高回报','杭州');

insert into供应商(供应商号,供应商名,地址) values('S222','高回报','杭州');

insert into供应商(供应商号,供应商名,地址) values('S333','高回报','杭州');

insert into供应商(供应商号,供应商名,地址) values('S444','高回报','杭州');

insert into供应商(供应商号,供应商名,地址) values('S555','高回报','杭州');

insert into订购单(职工号,供应商号,订购单号) values('GH111111','S111','OR1111'); insert into订购单(职工号,供应商号,订购单号) values('GH111111','S111','OR1112'); insert into订购单(职工号,供应商号,订购单号) values('GH111122','S111','OR1113'); insert into订购单(职工号,供应商号,订购单号) values('GH111122','S111','OR1114'); insert into订购单(职工号,供应商号,订购单号) values('GH222211','S222','OR2222'); insert into订购单(职工号,供应商号,订购单号) values('GH222211','S222','OR2221'); insert into订购单(职工号,供应商号,订购单号) values('GH222222','S222','OR2223'); insert into订购单(职工号,供应商号,订购单号) values('GH222222','S222','OR2224'); insert into订购单(职工号,供应商号,订购单号) values('GH333311','S333','OR3333'); insert into订购单(职工号,供应商号,订购单号) values('GH333311','S333','OR3331'); insert into订购单(职工号,供应商号,订购单号) values('GH333322','S333','OR3332'); insert into订购单(职工号,供应商号,订购单号) values('GH333322','S333','OR3334'); insert into订购单(职工号,供应商号,订购单号) values('GH444411','S444','OR4444'); insert into订购单(职工号,供应商号,订购单号)

insert into订购单(职工号,供应商号,订购单号)

values('GH444422','S444','OR4442');

insert into订购单(职工号,供应商号,订购单号)

values('GH444422','S444','OR4443');

insert into订购单(职工号,供应商号,订购单号)

values('GH555511','S555','OR5555');

insert into订购单(职工号,供应商号,订购单号)

values('GH555511','S555','OR5551');

insert into订购单(职工号,供应商号,订购单号)

values('GH555522','S555','OR5552');

insert into订购单(职工号,供应商号,订购单号)

values('GH555522','S555','OR5553');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','01','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','02','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','03','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','04','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','05','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','06','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','07','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','08','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','09','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR1111','10','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','11','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','12','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','13','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','14','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','15','哈根达斯','50','100');

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

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','17','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','18','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','19','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR2222','20','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','21','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','22','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','23','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','24','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','25','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','26','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','27','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','28','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','29','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR3333','30','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','31','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','32','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','33','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','34','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','35','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','36','哈根达斯','50','100');

insert into订购单明细(订购单号,序号,产品名称,单价,数量) values('OR4444','37','哈根达斯','50','100');

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

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

values('OR4444','39','哈根达斯','50','100');

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

values('OR4444','40','哈根达斯','50','100');

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

values('OR5555','41','哈根达斯','50','100');

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

values('OR5555','42','哈根达斯','50','100');

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

values('OR5555','43','哈根达斯','50','100');

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

values('OR5555','44','哈根达斯','50','100');

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

values('OR5555','45','哈根达斯','50','100');

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

values('OR5555','46','哈根达斯','50','100');

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

values('OR5555','47','哈根达斯','50','100');

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

values('OR5555','48','哈根达斯','50','100');

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

values('OR5555','49','哈根达斯','50','100');

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

values('OR5555','50','哈根达斯','50','100');

update职工set工资=工资*(1+0.1)where substring(职工号,1,6)in(select仓库号from仓库where城市='北京');

实验4 数据查询

实验名称

使用SQL SELECT语句的数据查询操作。

实验内容

在实验二和实验三的基础上完成规定的查询操作。实验目的:熟练掌握SQL SELECT 命令。

实验方法

在实验二和实验三的基础上使用SQL SELECT命令完成实验要求中所规定的各种查询。

实验要求

用SQL SELECT命令完成以下查询(1)~(12)是一般简单查询:

1. 职工表查询所有工资值(考虑去掉和不去掉重复值两种情况)。

2. 查询仓库表中全部信息。

3. 查询工资多于x元的职工号。

4. 查询哪些仓库有工资多于y元的职工。

5. 给出在仓库x或y(x,y是仓库号)工作,并且工资少于z元的职工号。

6. 查询工资在x~y元范围内的职工信息(x>y)。

7. 从供应商表中查询出全部公司的信息(不要工厂或其他供应商的信息,即供应商名最后两个汉字是“公司”的记录)。

8. 查询城市不是x的全部仓库信息。

9. 查询尚未确定供应商的订购单(即订购单的供应商号为空值的记录)。

10. 查询已经确定了供应商的订购单信息。

11. 按职工的工资值升序列出全部职工信息。

12. 先按仓库号升序,再按工资降序列出全部职工信息。

(13)~(21)使用连接查询:

13. 查询工资多于x元的职工号和他们所在的城市。

14. 查询工作在面积大于x的仓库的职工号以及这些职工工作所在的城市。

15. 根据职工表列出上一级经理及其职工(被其领导)的清单(即列出谁领导谁的清单)。

16. 列出仓库表和职工表的广义笛卡儿积的去处结果。

17. 根据仓库表和职工表的广义笛卡儿积得到仓库表和职工表进行自然连接的结果。

18. 查询供应商-订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段。

19. 查询供应商-订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中列出所有供应商信息(包括目前没有订购单的)。

20. 查询供应商-订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果中能够反映目前没有确定供应商的订购单情况。

21. 查询供应商-订购单信息,查询结果中包括供应商号、供应商名、订购单号和订购日期这4个字段,要求结果即能反映目前没有订购半日的供应商信息,又能反映目前没有确定供应商的订购单情况。

(22)~(31)使用嵌套查询(注意使用ANY,ALL和EXISTS):

22. 查询哪些城市至少有一个仓库的职工的工资为x元。

23. 查询所有职工的工资都多于x元的仓库的信息。

24. 查询和职工x挣同样工资的所有职工信息。

25. 查询哪些城市的仓库向地址为x的供应商发出了订购单。

26. 查询地址为x的供应商目前有y城市仓库的订购单的供应商的名称(分别用嵌套查询和连接查询完成,分析各自的效率)。

27. 查询有职工的工资大于或等于x仓库中任何一名职工的工资的仓库号。

28. 查询有职工的工资大于或等于x仓库中所有职工的工资的仓库号。

29. 列出每人职工经手的具有最高金额的订购单信息。

30. 查询目前还没有职工的仓库的信息。

31. 查询目前至少有一个职工的仓库的信息。

(32)~(42)汇总和分组查询:

32. 查询目前仓库所在城市的数目。

33. 查询目前需要支付的职工工资的总数。

34. 查询x和y两个城市的仓库职工的工资总和。

35. 查询所有职工的工资都多于x元的仓库的平均面积。

36. 查询工资大于x元的职工所经手的订购单的最高金额。

37. 查询每个仓库的职工的平均工资。

38. 查询每个仓库的订购单的最高金额、最低金额和平均金额。

39. 查询至少有5个订购项目的每张订购单的平均金额。

40. 列出职工全部记录并计算各仓库的平均工资和工资小计,最后给出全体职工的平均工资和工资总和(使用COMPUTE…BY和COMPUTE)。

41. 列出全部订购单明细并计算各订购单的金额,最后给出所有订购单的平均金额和金额总计(使用COMPUTE…BY和COMPUTE)。

42. 列出全部订购单记录并计算所有订购单的平均金额和金额总计(使用COMPUTE)。

实验步骤

1.select工资from职工;

2.select*from仓库;

3.select职工号from职工where工资>9999;

4.select仓库号from仓库where仓库号in(select仓库号from职工where工资

>9999);

5.select职工号from职工where工资<10000 and仓库号='GH1111'or仓库号

='GH3333';

6.select*from职工where工资>9000 and工资<10000;

7.select*from供应商where供应商名like'%回报%';

8.select*from仓库where城市!='重庆';

9.select*from订购单where供应商号is NULL;

10.select*from订购单where供应商号is not NULL;

11.select*from职工order by工资asc;

12.select*from职工order by仓库号asc;

select*from职工order by工资desc;

13.select职工号,城市from职工join仓库on工资>10000;

14.select职工号,城市from职工join仓库on面积>300;

15.select经理,职工号from职工where经理='GH111111';

16.select distinct*from职工,仓库;

17.select distinct*from职工cross join仓库where substring(职工号,1,6)=仓库.仓库号;

18.select供应商.供应商号,供应商名,订购单号,订购日期from供应商join订购单on

供应商.供应商号=订购单.供应商号;

19.select供应商.供应商号,供应商名,订购单号,订购日期from供应商left join订购单on供应商.供应商号=订购单.供应商号;

20.select供应商.供应商号,供应商名,订购单号,订购日期from供应商right join订购单on供应商.供应商号=订购单.供应商号;

21.select供应商.供应商号,供应商名,订购单号,订购日期from供应商full join订购单on供应商.供应商号=订购单.供应商号;

22.select城市from仓库where仓库号in(select substring(职工号,1,6)from职工where工资=9999);

23.select*from仓库where not exists(select*from职工where工资<=9999

and仓库.仓库号=substring(职工号,1,6));

24.select*from职工where工资in(select工资from职工where职工号

='GH222222');

25.select城市from仓库where仓库号in(select substring(职工号,1,6)from订购单where供应商号in(select供应商号from供应商where地址='杭州'));

26.select供应商名from供应商where地址='杭州'and供应商号in(select供应商号from订购单where substring(职工号,1,6)in(select仓库号from仓库where城市='重庆'));

select distinct供应商名from供应商join订购单on供应商.供应商号=订购单.供应商号join仓库on substring(订购单.职工号,1,6)=仓库.仓库号where供应商.地址='杭州'and仓库.城市='重庆';

27.select substring(职工号,1,6)from职工where职工.工资>=any(select工资from职工where substring(职工号,1,6)='GH1111');

28.select substring(职工号,1,6)from职工where职工.工资>=all(select工资from职工where substring(职工号,1,6)='GH1111');

29.select*from订购单where金额in(select max(金额)from订购单group by职工号);

30.select*from仓库where仓库号not in(select substring(职工号,1,6)from 职工);

31.select*from仓库where仓库号in(select substring(职工号,1,6)from职工);

32.select count(城市)from仓库;

33.select sum(工资)from职工;

34.select sum(工资)from职工where substring(职工号,1,6)in(select仓库号from仓库where城市='北京'or城市='上海');

35.select avg(面积)from仓库where仓库号in(select substring(职工号,1,6) from职工where工资>10000);

36.select max(金额)from订购单where职工号in(select职工号from职工where 工资>10000);

37.select avg(工资)from职工where substring(职工号,1,6)in(select仓库号from仓库);

38.select max(金额)from订购单where substring(职工号,1,6)in(select仓库号from仓库);

select min(金额)from订购单where substring(职工号,1,6)in(select仓库号from仓库);

select avg(金额)from订购单where substring(职工号,1,6)in(select仓库号from仓库);

39.select avg(单价*数量)from订购单明细group by订购单号having count(序号)>=5;

40.select职工.职工号,经理,工资from职工join仓库on substring(职工号,1,6)=仓库.仓库号order by仓库.仓库号

compute avg(工资),sum(工资)by仓库.仓库号

compute avg(工资),sum(工资);

41.select订购单明细.订购单号,序号,产品名称,单价,数量,单价*数量from订购单明细

join订购单on订购单明细.订购单号=订购单.订购单号order by订购单.订购单号compute sum(单价*数量)by订购单.订购单号

compute avg(单价*数量),sum(单价*数量);

42.select订购单.职工号,供应商号,订购单号,订购日期,金额from订购单

compute avg(金额),sum(金额);

实验5 视图的应用

实验名称

视图的建立和应用。

实验内容

在实验三和实验三的基础上定义视图,并在视图上完成查询、插入、更新和删除操作。

实验目的

掌握视图定义和应用的方法,体会视图和基本表的异同之处。

实验方法

在实验二和实验三的基础上用CREATE VIEW命令定义视图,然后使用SELECT命令完成查询,使用INSERT,UPDA TE和DELETE命令分别完成插入、更新和删除操作。

实验要求

1、在实验二建立的基本表的基础上,按如下要求设计和建立视图:

a) 基于单个表按投影操作定义视图。

b) 基于单个表按选择操作定义视图。

c) 基于单个表按选择和投影操作定义视图。

d) 基于多个表根据连接操作定义视图。

e) 基于多个表根据嵌套查询定义视图。 f) 定义含有虚字段的视图。

2、分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。

3、在不同的视图上分别设计一些插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。

4、在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。

实验步骤

1.

create view view1

as

select职工号,工资from职工

2.

create view view2

as

select*from职工where工资>10000

3.

create view view3

as

select订购单号,金额from订购单where职工号='GH222222'

4.

create view view4

as

select仓库.仓库号,城市from仓库join职工on substring(职工号,1,6)=仓库.仓库号join订购单on订购单.职工号=职工.职工号where面积>200

5.

create view view5

as

select城市from仓库where仓库.仓库号in(select职工.仓库号from职工where职工.职工号in(select订购单.职工号from订购单where金额>10000))

6.create view view6

as

select订购单号,sum(单价*数量)金额from订购单明细group by订购单号

select view1.职工号from view1 join view2 on view1.职工号=view2.职工号where view2.工资>10000

select view4.城市from view4 where view4.仓库号in(select view2.仓库号from view2 where view2.工资>10000)

insert into view1 values('GH555533','9999.0000')

update view4 set城市='邯郸'where仓库号='GH3333'

delete view3 where订购单号='OR2223'

实验6 游标

实验名称

游标的设计和使用

实验内容

在SQL Server环境下使用T-SQL的游标功能完成指定的操作。

实验目的

理解和掌握游标的使用方法

实验方法

在SQL Server环境下使用游标完成指定的操作。

实验要求

1、定义一个游标,其内容是按单价升序列出的全部订购单及其明细信息。

2、逐一读出游标中的记录,并显示。

实验步骤

1. DECLARE @职工号nchar(8),@供应商号nchar(4), @订购单号nchar(6),@订购日期datetime,@金额money

DECLARE COMPUTER_CURSOR CURSOR

FOR SELECT职工号,供应商号,订购单号,订购日期,金额from订购单

OPEN COMPUTER_CURSOR

PRINT'职工号,供应商号,订购单号,订购日期,金额'

FETCH FROM COMPUTER_CURSOR INTO @职工号,@供应商号,@订购单号,@订购日期,@金额WHILE@@FETCH_STATUS=0

BEGIN

PRINT@职工号+' '+@供应商号+' '+@订购单号+' '+convert(nchar(17),@订购日期)+' '+convert(nchar(11),@金额)

FETCH FROM COMPUTER_CURSOR INTO @职工号,@供应商号, @订购单号,@订购日期,@金额

END

CLOSE COMPUTER_CURSOR

2. DECLARE@订购单号nchar(4),@序号tinyint,@产品名称nchar(20),@单价money,@数量int

DECLARE COMPUTER_CURSOR1 CURSOR

FOR SELECT订购单号,序号,产品名称,单价,数量from订购单明细order by单价asc OPEN COMPUTER_CURSOR1

PRINT'订购单号,序号,产品名称,单价,数量'

FETCH FROM COMPUTER_CURSOR1 INTO @订购单号,@序号, @产品名称,@单价,@数量WHILE@@FETCH_STATUS=0

BEGIN

PRINT @订购单号+' '+convert(nchar(2),@序号)+' '+ @产品名称+'

'+convert(nchar(9),@单价)+' '+convert(nchar(3),@数量)

FETCH FROM COMPUTER_CURSOR1 INTO @订购单号,@序号, @产品名称,@单价,@数量END

CLOSE COMPUTER_CURSOR1

实验7 存储过程

实验名称

存储过程的设计和使用

实验内容

在SQL Server环境下设计、创建并执行存储过程。

实验目的

理解和掌握数据库存储过程的创建和调用方法。

实验方法

在SQL Server环境下,按要求创建和调用存储过程完成指定的操作。

实验要求

1、建立如下存储过程

(1)查询工资范围在x元到y元范围内的职工信息。

(2)查询在某年某月某日之后签订的订购单的有关供应商信息。

(3)更新操作,将某仓库的订购单的订购日期统一修改为一个指定日期。

2、在客户端以存储过程和输入SQL语句的方式分别执行相同的查询或操作,比较使用和不使用存储过程的区别。

实验步骤

1.create procedure https://www.360docs.net/doc/8218464864.html,pgetallcourse11

@x int,@y int

as

select职工.仓库号,职工.职工号,职工.工资,仓库.城市from职工,仓库

where职工.工资>=@x and职工.工资<=@y

execute https://www.360docs.net/doc/8218464864.html,pgetallcourse11 9000,10000

2.create procedure https://www.360docs.net/doc/8218464864.html,pgetday12

@x datetime

as

select供应商.供应商号,供应商.供应商名,供应商.地址from供应商join订购单on

供应商.供应商号=订购单.供应商号

where订购单.订购日期>@x order by订购单号

execute https://www.360docs.net/doc/8218464864.html,pgetday12 '2014-4-10'

3.create procedure https://www.360docs.net/doc/8218464864.html,pgetday11

@x datetime

as

update订购单

set订购日期=@x

where substring(订购单.职工号,1,6)='GH1111'

execute https://www.360docs.net/doc/8218464864.html,pgetday11'2014-5-9 20:50:41'

实验8 触发器

实验名称

DML触发器的设计和应用

实验内容

在SQL Server环境下设计、创建DML触发器,并设定相关操作使触发器运行。

实验目的

理解和掌握数据库中触发器的创建方法,体会触发器执行的条件和作用。

实验方法

在SQL Server环境下,按要求设计DML触发器,并使用相关操作使触发器运行。

实验要求

1、为职工表建立一个更新触发器,当修改工资超过6%时给出警示信息。

2、为订购单表建立一个插入更新触发器,约束规则是:当订购单金额小于3000时必须使用本地供应商,如果不满足要求,则拒绝操作,并给出错误信息。

3、设计并执行相关的插入操作和更新操作,体会DML触发器的效果和作用。

实验步骤

1. CREATE TRIGGER tri1_insert_update1

ON职工

AFTER insert,update

AS

declare @工资money,@工资money

select @工资=工资from inserted

select @工资=工资from deleted

if abs(@工资-@工资)/@工资>0.06

BEGIN

rollback transaction

raiserror('修改工资超过%',1,16)

END

2.CREATE TRIGGER tri2_insert_update

ON订购单

AFTER insert,update

AS

declare @金额money

declare @仓库地址varchar(10)

declare @供应商地址varchar(30)

select @金额=金额from inserted

select @仓库地址=城市from仓库where仓库号in(select substring(职工号,1,6) from inserted)

select @供应商地址=地址from供应商where供应商号in(select供应商号from inserted)

if @金额<3000

BEGIN

if @仓库地址<>@供应商地址

begin

rollback transaction

raiserror('发出订购单的仓库和供应商不在同一个城市',1,16) end

END

3. update职工set工资=3000 where职工号='GH222222'

insert into订购单values('GH111111','S111','OR1111',getdate(), 2500)

实验12 数据库设计

实验名称

数据库设计

实验内容

下图显示一张交通违章处罚通知书,根据这张通知书所提供的信息,用PowerDesigner 完成概念数据模型设计、物理数据模型设计,并建立一个交通违章管理数据库。该数据库描述了被处罚人的基本信息、机动车的基本信息和处罚情况等。

实验目的

通过实践,掌握本章介绍的数据库设计方法。

学会使用PowerDesigner来完成数据库设计过程。

实验方法

1、根据实验内容明确要完成的系统功能。

2、运行PowerDesigner创建概念数据模型,建立实体、属性和联系。

3、讲检查无误的概念数据模型转换成物理数据模型,并对生成的物理数据模型做必要的修改。

4、选择一个实际的DBMS,根据物理数据模型,创建数据库及其对象。

实验要求

1、使用PowerDesigner或其他建模工具完成本实验。

2、建立满足需求的概念数据模型、物理数据模型,并实施。

3、提交实验报告和相关的CDM和PDM文件。

实验步骤

CDM:

PDM:

【最新大学期末考试题库答案】(SQLserver)大连理工大学城市学院SQLServer期末复习题库答案

数据库第一次作业 按照下表完成各个题目的SQL语句: 表1 学生信息表 学号姓名专业名性别出生时间总学分 081101 王林计算机男1990-02-10 50 081102 王燕计算机女1989-10-06 50 081103 韦严平计算机男1990-08-26 50 001218 孙研通信工程男1980-10-09 30 001219 吴薇华通信工程女1980-03-18 42 表2 课程信息表 课程号课程名类别学时学分 101 计算机导论 2 64 3 102 C++程序设计 1 100 4 203 国际贸易概论 2 72 3 206 系统工程 1 96 5 表3 成绩信息表 学号课程号成绩 081101 101 80 081101 102 78 081101 206 76 081102 101 62 081102 102 70 081102 206 81 081103 101 90 081103 102 84 081103 206 65 001218 102 78 001218 206 78 001219 101 65 001219 102 71 001219 206 80 1.用CREATE DA TABASE语句创建名为XSCJ的数据库,各文件参数如下: 文件名物理名初始大小最大大小增长Xscj_d1 D:\xuesheng\xscj1.mdf 1MB 20MB 10% Xscj_d2 D:\xuesheng\xscj2.ndf 2MB 30MB 2MB CSCJ_LOG1 D:\xuesheng\xscj.Ldf 3MB 20MB 1MB CREATE DATABASE XSCJ

sqlserver数据库综合实验报告格式

华北科技学院计算机系综合性实验 实验报告 课程名称数据库原理与应用 实验学期 2009 至 2010 学年第一学期学生所在系部管理系 年级三年级专业班级商务B071班 学生姓名李荣妹学号 4121 任课教师郭红 实验成绩 计算机系制

《数据库原理与应用》课程综合性实验报告

(3)建表如下图: 图书表的结构 读者表的结构罚款表的结构 借阅表的结构密码表的结构 输入数据:图书 读者 S只学生,t指老师,1指没有超期,0表示超期 借阅 罚款

密码: (4)、创建视图。以sa的身份登录数据库,创建视图V1,V2,V3 create VIEW V1 create VIEW V2 create VIEW V3 AS AS AS select * from 图书 select * from 借阅 select * from 罚款 建立视图V5,查看在库的图书:create view V5 as select *from 图书 where 借阅状态=‘在库’ 建立已被借出去的图书视图 create view V6 as

select * from 图书 where 借阅状态='出库' 建立逾期未还的图书的学生视图: create view V7 as select * from 借阅 where datediff(day,convert(smalldatetime,借出日期),getdate())>’30’ and 借书证号 in(select 借书证号 from 读者,借阅 Where 借阅.借书证号=读者.借书证号 and 读者类别=‘s’ 四、物理设计和自定义完整性 建立索引:为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是表中建立索引的表项: 图书表(图书编号,条形码号)读者(借书证号)借阅(借书证号,条形码号)罚款表(借书证号,条形码号)密码(借书证号) (2)建立触发器 a.对已有借书证的读者进行查询借书是否超期(这里归定30天): create trigger T1 on 读者 for insert as select 借阅.借书证号,读者.读者姓名,图书.图书编号,图书.书名,借阅.借出日期 from 读者,借阅,图书 where 读者.借书证号=借阅.借书证号 and 图书.条形码号=借阅.条形码号 and 读者类别='s' and Datediff(day,convert(smalldatetime,借出日期),getdate())>=30 b.建立触发器T2(还书时): create trigger T2 on 借阅 for insert as begin update 图书 set 借阅状态='在库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 归还日期=getdate(); update 读者 set 书数=书数-1 where 借书证号=(select 借书证号 from inserted) end c.建立触发器T3(借书书时): create trigger T3 on 借阅 for insert as begin update 图书 set 借阅状态='入库' where 条形码号=(select 条形码号 from inserted) update 借阅 set 借出日期=getdate(); update 读者 set 书数=书数+1 where 借书证号=(select 借书证号 from inserted) end d.建立触发器T4,实现超出借书数目时禁借(针对老师的): create trigger T4 on 读者 for insert

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

sqlserver2005实验

实验二 使用向导创建和删除数据库 ●实验指导——使用向导创建和删除数据库 (1) 使用向导创建上诉描述的数据库。 使用SQL Server Management Studio(简称SSMS)创建数据库。 1.启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio 单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。

2.建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。 (2)使用向导删除上面建立的数据库。 用SSMS删除添加建立的数据库EDUC1。

实验三 使用SQL语句创建和删除数据库 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 三. 实验要求 3、熟练使用查询分析器进行数据库的创建和删除操作 4、完成用sql语句建立和删除数据库的实验报告 四. 实验内容 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 2.根据步骤1的sql语句,写出创建实验二中数据库EDUC的sql语句,并建立数据库EDUC. 3.用SQL语句删除步骤一建立的数据库userdb1。

数据库原理与应用教程—sqlserver数据库考试题目

数据库原理与应用教程―SQL Server 10.3 习题 1.引入视图的主要目的是什么? 答:数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合用户的需求。SQL Server 2005可以根据用户需求重新定义表的数据结构,这种数据结构就是视图。视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,其结构和数据是建立在对表的查询基础上的。 2.当删除视图时所对应的数据表会删除吗? 答:不会。 3.简述视图的优点。 答:使用视图有很多优点,主要表现在: (1) 为用户集中数据,简化用户的数据查询和处理。 (2)保证数据的逻辑独立性。 (3) 重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中。 (4) 数据保密。 4.可更新视图必须满足哪些条件? 答:(1)任何修改(包括UPDATE、INSERT和DELETE语句)都只能引用一个基本表的列。 (2)视图中被修改的列必须直接引用表列中的基础数据。不能通过任何其他方式对这些列进行派生,如通过聚合函数、计算(如表达式计算)、集合运算等。 (3)被修改的列不受GROUP BY、HA VING、DISTINCT或TOP子句的影响。5.创建索引的必要性和作用是什么? 答:数据库的索引就类似于书籍的目录,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。相反,如果没有索引,则会导致SQL Server搜索表中的所有记录,以获取匹配结果。 索引的优点包括: (1)大大加快数据的检索速度,这是创建索引的最主要的原因。 (2)创建唯一性索引,保证表中每一行数据的唯一性。 (3)加速表和表之间的连接。 (4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 (5)查询优化器可以提高系统的性能,但它是依靠索引起作用的。 6.聚集索引和非聚集索引有何异同?

sql server实验指导书(学生版)

数据库实验指导书 信息安全专业 王爽 2009

一.概述 1.SQL Server 2000 组成 SQL Server是可缩放的高性能基于SQL和客户/服务器体系结构的关系数据库管理系统服务器软件包,是由Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。从图1 SQL Server 的体系结构示意图中看出,SQL Server 2000由4部分组成,在实验中,我们要求掌握基于SQL Server 2000的服务器的使用,也就是数据库管理员DBA的主要操作。 (注:本文所有内容均在SQLServer 2000上实现,读者也可在SQL Server 2005 上得到类似结果。) 图1 SQL Server 的体系结构示意图 2. SQL Server 2000 的安装 SQL Server 2000 的常见版本有:企业版、标准版、个人版、开发人员版等。对软硬件的最低需求为:CPU Pentium 166MHz,内存64MB,硬盘180 MB。SQL Server 2000企业版和标准版只能在windows2000 Server 版和Professional 版操作系统下运行。下面介绍SQL Server 2000企业版在本地机上的安装过程。 1)插入SQL Server 2000 光盘,自动安装程序启动,屏幕上出现如图2所示画面,按图2 所示选择SQL Server 2000 组件; 2) 选择安装数据库服务器,如图3所示,进入SQL Server2000 企业版安装向导; 3)在安装向导对话框中点击下一步,进入计算机名对话框; 4)选择本地安装,点击下一步,进入安装选择对话框;

(SQLServer)考试试题及答案

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书 (SQL Server)考试试卷 第一大题:单选题(30 分) 1. (1分) 数据模型的三要素不包括()。 (A) 数据结构(B) 数据操作(C) 数据完整性约 束(D) 数据恢复 2. (1分) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 ()。 (A) 结构独立性(B) 物理独立性(C) 逻辑独立 性(D) 分布独立性 3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联 系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。 (A) 1:1联系(B) 1:n联系(C) n:m联 系(D) 多种联系 4. (1分) 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。 (A) 元组(B) 关键字(C) 记 录(D) 属性 5. (1分) 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. (1分) SQL语言查询一次的结果是一个()。 (A) 元组(B) 表(C) 属性(D) 数据

库 7. (1分) 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。 (A) 平凡函数依赖 (B) 部分函数依赖 (C) 完全 函数依赖 (D) 传递函数依赖 8 . (1分) 在Transact-SQL中,下列命令能让程序完全跳出循环的是( )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINU E 9 . (1 分) 在Transact-SQL中,下列选项不属于数值型数据类型的是( )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是( )。 (A) 张 _ (B) 张 % (C) 张 ^ (D) 张& 1 1. (1 分) 下列聚合函数中正确的是( )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) AVG (*) 12. (1 分) 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是( )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13 . (1 分 ) 在SQL的SELECT语句中,与投影运算对应的子句是( )。 (A) SELECT (B) FROM (C) WHERE (D) GROU P BY 14. (1 分) 在SQL语言中,给表起别名应使用( )。 (A) AS (B) RENAME (C) SET (D) FOR 15. (1分) 在SELECT语句中使用GROUP BY SNO时,SNO必须() 。 (A) 在WHERE中出现 (B) 在FROM中出现

SQLServer实验三分解

实验七 (1)创建并运行存储过程student_grade,要求实现如下功能:查询studb数据库中每个学生各门课的成绩,其中包括每个学生的sno、sname、cname和score。 create procedure student_grade as select student.sno,student.sname,https://www.360docs.net/doc/8218464864.html,ame,student_course.score from student join student_course on student.sno=student_course.sno join course on https://www.360docs.net/doc/8218464864.html,o=student_https://www.360docs.net/doc/8218464864.html,o 运行结果代码: use Studb go execute student_grade go (2)创建并运行名为proc_exp的存储过程,要求实现如下功能:从student_course表中查询某一学生考试的平均成绩。 create procedure proc_exp @sname varchar(8) as begin select sname,AVG(score) from student join student_course on student.sno=student_course.sno where sname=@sname group by sname end 运行结果代码:

use Studb go execute proc_exp@sname='刘招香' go (3)修改存储过程proc_exp,要求实现如下功能:输入学生学号,根据该学生所选课程的平均成绩给出提示信息,即如果平均成绩在60分以上,显示“成绩合格,成绩为XX分”,否则显示“成绩不合格,成绩为XX分”;然后调用存储过程proc_exp,输入学号0705010131,显示成绩是否合格。 alter procedure proc_exp @student_sno varchar (20) as declare@avg varchar(20) set@avg=(select AVG(score) from student_course where sno=@student_sno) if@avg>=60 print'成绩合格,成绩为'+@avg+'分' else print'成绩不合格,成绩为'+@avg+'分' 运行结果代码: use Studb go declare@student_sno varchar (20) select@student_sno='0705010131' exec proc_exp@student_sno (4)创建名为proc_add的存储过程,要求实现以下功能:向student_course表中添加学生记录;然后调用存储过程proc_add,向student_course表中添加学生成绩记录。create procedure proc_add @sno char(10), @cno char(10), @score tinyint

sqlserver实验报告—数据库和表的创建

评分 签名 日期 数据库实验报告 课程名称信息系统数据库技术 实验名称数据表的管理 专业班级 姓名 学号 实验日期 实验地点 2012—2013学年度第一学期

一、实验目的 1、掌握Microsoft SQL Server 2005 Express Edition的安装过程 2、熟悉SQL Server 2005 Express Edition的基本菜单功能,界面。 3、掌握SQL Server 2005的启动、服务器注册等功能。 二、实验内容 1、数据库的创建 2、数据库的修改 3、数据的导入 4、数据的导出 5、数据库的分离 三、实验环境 Windows XP操作系统,Microsoft SQL Server 2005 Express Edition。 四、相关知识 1、数据库命令规则取决于数据库兼容的级别,而数据库级别可以用存储过程sp_helpdb 来查询。注意:其一由于在T-SQL中,“@”表示局部变量,“@@”表示全局变量,“##”表示全局临时对象,所以不建议用这些符号作为数据库名称的开头;其二虽然在SQL Server 2005中,保留字区分大小写,但也不建议用改过大小写的保留字作为数据库名。 2、数据库文件:每个SQL Server 2005的数据库至少包含二个文件:一个数据文件(.mdf)和一个日志文件(.ldf)。 3、数据库的创建命令:CREATE DATABASE 4、数据库的修改命令:ALTER DATABASE 只有数据库管到员或具有CREATE DATABASE权限的数据库所有者才有权执行ATER DATABASE语句。在实际操作中,ALTER DATABASE一次只能修改一种参数 5、数据库的删除命令:DROP DATABASE 6、数据库的分离命令:SP_DETACH_DB 'filename' 7、数据库的附加命令:CREATE DATABASE…FOR ATTACH 8、数据的导入是指从其他数据源中把数据复制到SQL Server数据库中。 9、数据的导出是指从SQL Server数据库中把数据复制到其他数据源中。 2

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

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

实验一 SQL SERVER 2008入门实验报告

实验一SQL SERVER 2008环境 一、实验目的 1、了解SQL SERVER 2008的安装过程中的关键问题; 2、掌握通过SQL Server Management Studio管理数据库服务器、操作数据库对象的方法; 3、掌握数据库的还原与备份操作。 二、实验过程 1、启动SQLSERVER服务 实验室机器上既安装了SQL Server 2008服务器端工具又安装了客户端工具,在使用客户端工具SQL Server Management Studio连接数据库引擎之前,需要将本地数据库引擎服务启动,启动方法如下: (1)打开配置管理器 开始菜单——>所有程序——> Microsoft SQL Server 2008——>配置工具——>SQL Server配置管理器 (2)启动SQL Server服务 单击左窗格的“SQL Server 服务”选项,在右窗格中就会显示所有的服务,找到“SQL Server(MSSQLSERVER)”服务,在服务上单击右键,选择“启动”,SQL Server数据库引

擎服务启动。 2、登录服务器 在使用SQL Server Management Studio管理数据库引擎服务器时,需要首先登录到服务器上,第一次登录时需要将登录界面的“服务器名称”选项修改为本地的计算机名。同时将身份验证方式改为“Windows身份验证” 获取本地计算机名:右键点击“我的电脑”——>属性——>“计算机名”标签页

3、创建数据库 建立名为“Student”的数据库。 4、建立基本表 在“Student”数据库下,建立学生表(S)、课程表(C)和学生选课表(SC),其逻辑结构描述,详见表1、表2和表3。

实验SqlServer的基本操作

§3.1实验一Sql Server2005的基本操作(2学时) 3.1.1 实验目的 1.熟悉SQL Server2005企业版的安装过程。 2.了解企业管理器的功能,掌握企业管理器的操作方法。 3.掌握数据库服务器的注册、配置、连接等操作。 3.1.2 实验内容和步骤 上机前先阅读本实验的详细内容,简要了解SQL SERVER2005,并完成以下操作: 1. SQL Server2005的安装 参考详细内容进行安装,在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库系统会有什么影响。 2.启动和停止服务 3.启动SQL Server Management Studio 4.查看数据库属性,了解数据文件、事务日志、权限 注意事项: 1.安装时选择混合方式登录; 2.赋予sa密码。

实验一Sql Server2005的基本操作(详解) 一、安装 下面以Windows xp平台为例,介绍如何安装SQL Server 2005个人开发版。 1.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例 2.将SQL Server 2005 DVD 插入DVD驱动器。如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到DVD的根目录然后启动splash.hta。 3.在自动运行的对话框中,单击“运行SQL Server 安装向导”。 4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。接受许可协议后即可激活“下一步”按钮。若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。如下图: 5.在“SQL Server 组件更新”页上,安装程序将安装SQL Server 2005 的必需软件。有关组件要求的详细信息,请单击该页底部的“帮助”按钮。若要开始执行组件更新,请单击“安装”。更新完成之后若要继续,请单击“完成”。

试验3SQLServer的视图存储过程和触发器

实验三 SQL Server的视图、存储过程和触发器 一、实验目的 本实验主要了解SQL Server视图、存储过程和触发器的基本概念和使用方法。通过本实验,读者将学会在企业管理器中创建、修改、执行和删除存储过程的操作以及在查询分析器中执行的T-SQL语句;掌握触发器的创建、修改和删除的操作方法和T-SQL语句。掌握视图的创建、修改和删除的操作方法和T-SQL语句。 二、实验环境 ●Microsoft SQL Server 2008 SSMS ●Book数据库 三、实验内容 1. 创建存储过程proc_book11和proc_book12,查询指定学院的教师预订教材的情况。要求显示教材名称(T_BookInfo.BookName)、教师姓名(T_Teacher.TeacherName)和教材数量(T_BookOrder.StuBookNum+T_BookOrder.TeaBookNum)。 (1) proc_book11的查询条件为:学院代码 (2) proc_book12的查询条件为:学院名称 2. 创建存储过程proc_book2,查询指定教材的预订数量。 3. 创建添加教材信息的存储过程proc_book3。 4. 创建触发器tri_book1,在对T_Teacher表进行插入、修改和删除记录时,都会自动显示表中的内容。 5. 创建触发器tri_book2,当修改T_Teacher表中的TeacherCode字段值时,该字段在T_BookOrder表中的对应值也作修改。 6. 创建触发器tri_book3,检查插入在T_BookInfo表中的教材库存(StockNum)是否大于等于0。 7. 创建视图view_book1,使其包含预订数量最高的20%的教材信息。要求显示教材代号(BookCode)、教材名称(BookName)、ISBN号(ISBNCode)和出版社名称(Publisher)。 8. 创建视图view_book2,查询预订了教材名中含有“程序”一词的教师姓名(TeacherName)和所在学院名称(AcadName)。 9. 创建视图view_book3,使其包含“学院名称(AcadName)”、“教师姓名(TeacherName)”、“预订书名(BookName)”、“是否领走(TakeAway)”。 四、实验报告要求 1. 给出实现每个小题功能的SQL语句。请注意SQL语句也应有合适的缩进,对复杂的语句应加上注释,说明语句段的功能。 2. 对存储过程和视图给出执行语句以及执行结果(屏幕截图)。对触发器,请给出可以触发

《SQLServer数据库》模拟试卷三考卷及答案

《SQL Server数据库》模拟试卷三 班级姓名学号成绩 一、选择题:本大题共20小题,每小题2分,共40分。 1、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是。 A.多对多 B.一对一 C.多对一 D.一对多 2、在Transact-SQL语法中,用来插入数据的命令是__ _,用于更新的命令是___ 。 A.INSERT,UPDATE B.UPDATE,INSERT C.DELETE,UPDATE D.CREATE,INSERT INTO 3、SQL server数据库文件有三类,其中主数据文件的后缀为: A..ndf B..ldf C..mdf D..idf 4、部分匹配查询中有关匹配符"_"的正确的叙述是。 A. "_"代表任意单个字符 B. "_"可以代表零个或多个字符 C. "_"不能与"%"一同使用 D. "_"代表一个字符 5、SQL Server安装程序创建4个系统数据库,下列哪个不是。 A.master B.model C.pub D. msdb 6、不允许在关系中出现重复记录的约束是通过。 A.外部关键字实现 B.索引实现 C.主关键字实现 D.惟一索引实现7、创建视图的语句格式为。 A. CREATE TABLE <视图名〉 B. CREATE INDEX <视图名〉 C. CREATE VIEW <视图名〉 D. DROP VIEW <视图名〉 8、模式查找like '_a%',下面结果是可能的。 A.aili B. bai C.bba https://www.360docs.net/doc/8218464864.html,a 9、在MS SQL Server中,用来显示数据库信息的系统存储过程是 A. sp_dbhelp B. sp_db C. sp_help D. sp_helpdb 10、在“连接”组中有两种连接认证方式,其中在方式下,需要客 户端应用程序连接时提供登录时需要的用户标识和密码。 A.Windows身份验证B.SQL Server 身份 验证 C.以超级用户身份登录时 D.其他方式登录时 11、为数据表创建索引的目的是。 A.提高查询的检索性能B.创建唯一索引 C.创建主键 D.归类 12、SQL的视图是从中导出的。 A.基本表 B. 视图 C. 基本表或视图 D. 数据库 13、连接有内连接、外连接和交叉连接,其中外连接只能对表进行。 A.两个 B.三个 C.四个 D.任意个 14、将多个查询结果返回一个结果集合的运算符是。 A.JOIN B.UNION C.INTO D.LIKE 15、声明了变量:declare @i int,@c char(4),现在为@i赋值10,为@c赋 值'abcd',正确的语句是。 A.set @i=10,@c='abcd' B.set i=10 , set @c='abcd' C.select @i=10,@c='abcd' D.select @i=10, select

sqlserver实验报告

SQL Server实验报告 学院: 班级: 姓名: 学号:

实验1 SQL Server 2005 环境 1、目的与要求 (1)掌握SQL Server Management Studio 对象资源管理器的使用方法; (2)掌握SQL Server Management Studio查询分析器的使用方法; (3)对数据库及其对象有一个基本了解。 2、实验准备 (4)了解SQL Server 2005各种版本安装的软、硬件要求;(5)了解SQL Server 2005支持的身份验证模式; (6)对数据库、表及其他数据库对象有一个基本的了解。 3、实验内容 (1)SQL Server 2005 的安装。 检查软、硬件配置是否达到SQL Server 2005的安装要求,熟悉SQL Server 2005的安装方法。 (2)对象资源管理器的使用。 ①进入SQL Server Management Studio。 从“开始”中选择“程序”,再选择“Microsoft SQL Server 2005”单击进入,打开“连接到服务器”窗口,如图所示。 在此窗口中使用系统默认设置连接服务器,单击“连接”,系统显示

“SQL Server Management Studio”窗口。 ②了解系统数据库和数据库的对象。 在SQL Server 2005安装后,系统生成4个数据库:master、model、msdb和tempdb。 在对象资源管理器中右边显示的是4个系统数据库,如图所示。选择系统数据库master,观察SQL Server 2005对象资源管理器中数据库对象的组织方式。其中,表、视图在“数据库”节点下,储存过程、触发器、函数、类型、默认值、规则等在“可编辑性”中,用户、角色、架构等在“安全性”中。 ③试试不同数据库对象的操作方法。 展开系统数据库“master”,选择“”,单击右键。

sqlserver数据库笔试题和答案

一单词解释(2分/个) 34分 Data 数据 Database 数据库 RDBMS 关系数据库管理系统 GRANT 授权 REVOKE 取消权限 DENY 拒绝权限 DECLARE 定义变量 PROCEDURE存储过程 事务 Transaction 触发器 TRIGGER 继续 continue 唯一 unqiue 主键 primary key 标识列 identity 外键 foreign key 检查 check 约束 constraint 二编写SQL语句(5分/题) 50分(包含笔试题问题和解答答案) 1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话 Create table stu (学号 int , 姓名 varchar(8), 年龄 int, 性别 varchar(4), 家庭地址 varchar(50), 联系电话 int ); 2) 修改学生表的结构,添加一列信息,学历 Alter table stu add 学历 varchar(6); 3) 修改学生表的结构,删除一列信息,家庭住址 Alter table stu drop column 家庭地址 4) 向学生表添加如下信息: 学号姓名年龄性别联系电话学历 1A22男123456小学 2B21男119中学 3C23男110高中 4D18女114大学 Insert into stu values(1,’A’,22,’男’,123456,’小学’) Insert into stu values(2,’B’,21,’男’,119,’中学’) Insert into stu values(3,’C’,23,’男’,110,’高中’) Insert into stu values(4,’D’,18,’女’,114,’大学’) 5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set 学历=’大专’ where 联系电话like ‘11%’ 6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delect from stu where 性别=’男’ and 姓名like ‘c%’ 7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来 Select 姓名,学号 from stu where 年龄<22 and 学历=’大专’

基于VB及SQLSERVER的管理系统实训指导书

基于VB及SQLSERVER的管理系统 实训指导书 计算机软件技术专业适用 大连职业技术学院 信息技术系 计算机软件技术教研室

实验(训)一连接数据库及调用存储过程(15学时) 一、创建数据库及其表 1.新建个人信息管理系统数据库“Pinformation”。 2.建表Contacts、ContactPhones、Reminders表。 (1) Contacts(联系人表) 字段名字段数据类型主键标识列说明 ContactID Int Yes Yes 联系人编号Name Varchar(50) 联系人姓名 Address Varchar(100) 联系人所在城市 ZipCode Varchar(20) 邮编EmailAddress Varchar(50) 电子邮箱 ContactNote Varchar(50) 备注 (2) ContactPhones(联系人电话表) 字段名字段数据类型主键标识列说明ContactPhoneID Int Yes Yes 联系人电话编号ContactID Int 联系人编号 PhoneType Varchar(50) 电话类型 PhoneNumber Varchar(50) 电话号码 (3) Reminders(提示信息表) 字段名字段数据类型主键标识列说明ReminderID Int Yes Yes 联系人电话编号 AlarmOn Bit 报警标识 AlarmTime datetime 报警时间 ReminderNote Varchar(1000) 提示内容 二、在VB中查看数据库对象 新建工程,在VB界面中,执行“视图” 菜单的“数据视图窗口”菜单项,或者在ADO 控件属性中操作,创建数据库的连接。 1.在图一的属性页中选择“通用”选项 卡,选择“使用连接字符串”,点击“生成” 按钮,弹出图二。 2.在图二中选择“提供者”选项卡,选 择为SQL Server提供的数据驱动,点击“下 一步”按钮,弹出图三。(图一)

SQLSERVER数据库实验

SQL SERVER 数据库应用技术 实验报告 选课序号: 班级: 学号: 姓名: 指导教师: 成绩:

目录 1.实验目的 (1) 2.实验内容 (1) 2.1创建数据库OrderDB(杂志订购数据库) (1) 2.2 T-SQL查询 (1) 2.3存储过程、自定义函数和触发器编程 (2) 3.实验步骤 (2) 3.1创建数据库OrderDB(杂志订购数据库) (2) 3.2 T-SQL查询 (5) 3.3存储过程、自定义函数和触发器编程 (5) 4.总结与体会 (8)

1.实验目的 (1)创建与使用数据库。了解数据库及其各类逻辑对象、数据库的文件与文件组的概念;实践数据库的设计、创建、查看和维护等的操作,。 (2)T-SQL查询。掌握SELECT查询命令,INSERT、UPDATE和DELETE等更新命令,及T-SQL对查询与更新命令的增强功能操作。 (3)自定义函数、存储过程与触发器。实践练习自定义函数、存储过程和触发器的使用方法。 2.实验内容 2.1创建数据库OrderDB(杂志订购数据库) 以下各表中的代码或编号列为char(6),名称或类别列为varchar(20),单价或金额列为numeric(10,2),数量列为int,订购日期为日期类型datetime,所在城市列为varchar(16)。(1)杂志表Magazine(杂志代码Mno,杂志名称Mname,杂志类别Mtype,出版商所在城市Mcity,进货单价Miprice,订购单价Moprice),其中,订购价格>进货价格,杂志类别:文学类、历史类、科技类。主键为(杂志代码Mno)。 (2)客户(杂志的订购单位信息)表Customer(客户代码Cno,客户名称Cname,客户所在城市Ccity,上级主管单位代码Sno,客户类别Ctype),客户(单位)类别:政府单位、事业单位、企业单位。主键为(客户代码Cno)。 (3)杂志订购情况主表OrderH(订单编号Ono,客户代码Cno,订购日期Odate,订单货款金额合计OMsum,订单盈利金额合计OPsum),主键为订单编号Ono。 (4)杂志订购情况明细表OrderList(订单编号Ono,杂志代码Mno,订购数量Onum,进货单价Miprice,订购单价Moprice,订购金额Omoney,盈利金额Oprofit),主键为(订单编号Ono,杂志代码Mno),订购金额=订购单价×订购数量,盈利金额=(订购单价-进货单价)×订购数量。 2.2 T-SQL查询 实现如下查询功能前,请向所有数据表添加足够多的演示数据。求年份的函数为year( ),返回类型为int,年份=year(订购日期Odate)。 (1)使用WITH公用表表达式查看客户名称为’珠江航运公司’在广州市的所有上级主管单

相关文档
最新文档