数据库实验报告

数据库实验报告
数据库实验报告

《数据库系统概论》实验报告书

专业班级软件

学号16677777

姓名哈哈

指导教师陈业斌

安徽工业大学计算机学院

实验一:数据定义/数据操纵语言

[ 实验日期 ] 2016 年 9 月 24 日

[ 实验目的 ]

熟悉Oracle上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。

[ 实验内容 ]

1.SQL数据定义语句:

例1-1: (建立如附录一所示的四张数据表) 按要求建立教学数据库表结构及其完整性约束关系,并将数据分别插入到教学数据库的四个数据库表中。

例1-2: (修改表结构) 在Student表中将SSEX字段修改为char(2),观察返回结果,分析原因。显示:alter table STUDENT modify (SSEX char(2))

错误报告 -

SQL 错误: ORA-01441: 无法减小列长度, 因为一些值过大

01441. 00000 - "cannot decrease column length because some value is too big"

例1-3: (修改表结构) 在Student表中增加BirthDay(date) 字段。

alter table STUDENT add BirthDay DATE;

例1-4: (修改表结构) 在Student表中删除BirthDay字段。

alter table STUDENT drop column BirthDay;

例1-5: (修改表结构) 在Student表中增加一个默认值约束,约束’性别’的默认值为’男’。alter table STUDENT modify (SSEX default '男');

2. SQL数据操纵语句:

例2-1: (插入数据) 执行如下语句向student表中插入一条数据。

insert into student(sno,sname,sdept) values('96001','张三','SC');

(1)根据返回信息解释其原因;

显示:

在行: 5 上开始执行命令时出错 -

insert into student(sno,sname,sdept) values('96001','张三','SC')

错误报告 -

SQL 错误: ORA-01400: 无法将 NULL 插入 ("STU"."STUDENT"."SCLASS")

01400. 00000 - "cannot insert NULL into (%s)"

原因:在定义表结构时已将SCLASS约束为NOT NULL。并且学号是主键,表里已经有学号为96001的学生,违反了主键的唯一性约束条件。

(2)修改上面插入语句,让其能正确地插入一条记录。

正确的为:insert into student(sno,sname,sdept,sclass) values('97006','张三','SC','02');

例2-2:(插入数据) 执行如下语句向Score表中插入一条数据。

insert into Score values('96006','001',85);

(1)根据返回信息解释其原因;

显示:在行: 6 上开始执行命令时出错 -

insert into Score values('96006','001',85)

错误报告 -

SQL 错误: ORA-02291: 违反完整约束条件 (STU.FK_STUDENT_SCORE) - 未找到父项关键字

02291. 00000 - "integrity constraint (%s.%s) violated - parent key not found"

原因:在表SCORE中,sno作为其外键,在表STUDENT中学号为96006的学生,所以自然插不进去。

(2)修改上面插入语句,让其能正确地插入一条记录。

修改为:insert into Score values('96002','002',85);

例2-3: (修改数据) 将Student表中所有学生的年龄加2。

update STUDENT set SAGE=SAGE+2;

例2-4: (修改数据) 将Course表中‘程序设计’课时数修改成50。

update COURSE set CTIME=50 where CNAME='程序设计';

例2-5: (修改数据) 将Student表中的学号’96001’改为‘96010’,根据返回信息解释其原因。

update STUDENT set SNO='96010' where SNO='96001';

显示:在行: 10 上开始执行命令时出错 -

update STUDENT set SNO='96010' where SNO='96001'

错误报告 -

SQL 错误: ORA-02292: 违反完整约束条件 (STU.FK_STUDENT_SCORE) - 已找到子记录

02292. 00000 - "integrity constraint (%s.%s) violated - child record found"

原因:学号为96001的学生已经出现在成绩表SCORE中,不可更改

例2-6: (删除数据) 删除Student表中学号为‘96001’的成绩信息,根据返回信息解释其原因。delete from STUDENT where sno='96001';

显示:在行: 11 上开始执行命令时出错 -

delete from STUDENT where sno='96001'

错误报告 -

SQL 错误: ORA-02292: 违反完整约束条件 (STU.FK_STUDENT_SCORE) - 已找到子记录02292. 00000 - "integrity constraint (%s.%s) violated - child record found"

原因:在表SCORE中已经有学号为96001的成绩记录。

例2-7: (创建表) 利用Student表的查询结果创建Sc表,表中记录与Student表相同。create table Sc

as

select * from STUDENT;

例2-8: (删除数据) 删除Sc表中性别为’男’的所有学生。

delete from Sc where SSEX='男';

例2-9: (删除数据) 删除数据库表Sc中所有学生的数据。

truncate table Sc;

例2-10: (删除表) 删除数据库表Sc。

drop table Sc;

[ 实验要求 ]

①熟悉SQL Server上机环境;

②建立数据库表,修改数据库表结构;

③对数据库表进行插入、修改和删除数据的操作。

[ 实验方法 ]

①执行SQL语句;

②将实验需求用SQL语句表示;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结 ]

① SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

附录一. 教学管理数据库设计

各表的数据结构和数据如下:

1. 学生情况表 Student

主关键字:SNO 非空字段:SNAME ,SDEPT ,SCLASS

2. 课程名称表 Course 3. 教师授课表 Teach

主关键字:CNO 候选关键字:CNAME 主关键字:TNAME ,CNO ,TDEPT 参照关系:Course(CNO)

4. 成绩表 Score

主关键字:SNO ,CNO 参照关系:Student(SNO),Course(CNO)

IS :信息系

CS :计算机系 MA :数学系

附录二:《数据库概论》实验操作指导

创建一个新的方案:SHIYAN

在方案中建立基本数据表的SQL

1.建立学生表。

create table Student

( SNO char(5) primary key,

SNAME varchar2(20) not null,

SDEPT char(2) not null,

SCLASS char(2) not null,

SSEX char(3),

SAGE number(2,0)

);

insert into Student values('96001','马小燕','CS','01','女',21); insert into Student values('96002','黎明','CS','01','男',18); insert into Student values('96003','刘东明','MA','01','男',18); insert into Student values('96004','赵志勇','IS','02','男',20); insert into Student values('97001','马蓉','MA','02','女',19); insert into Student values('97002','李成功','CS','01','男',20); insert into Student values('97003','黎明','IS','03','女',19); insert into Student values('97004','李丽','CS','02','女',19); insert into Student values('96005','司马志明','CS','02','男',18); commit;

2.建立课程表

create table Course

(CNO char(3) primary key,

CNAME varchar2(50),

CTIME number(3,0)

);

insert into COURSE values('001','数学分析',144);

insert into COURSE values('002','普通物理',144);

insert into COURSE values('003','微机原理',80);

insert into COURSE values('004','数据结构',72);

insert into COURSE values('005','操作系统',80);

insert into COURSE values('006','数据库原理',80);

insert into COURSE values('007','编译原理',60);

insert into COURSE values('008','程序设计',40);

commit;

3.建立教师表

create table Teach

(TNAME VARCHAR2(20),

TSEX CHAR(3),

CNO CHAR(3),

TDATE date,

TDEPT CHAR(2),

CONSTRAINT PK_STUDENT PRIMARY KEY(TNAME,CNO,TDEPT),

CONSTRAINT FK_C_T FOREIGN KEY (CNO ) REFERENCES Course(CNO)

);

insert into TEACH values('王成刚','男','004','9-5月-99','CS');

insert into TEACH values('李正科','男','003','09-5月-99','CS');

insert into TEACH values('严敏','女','001','09-5月-99','MA');

insert into TEACH values('赵高','男','004','09-5月-99','MA');

insert into TEACH values('刘玉兰','女','006','23/2月/00','CS');

insert into TEACH values('王成刚','男','004','23/2月/00','IS');

insert into TEACH values('马悦','女','008','6/9月/00','CS');

COMMIT;

4.建立成绩表

create table Score

(sno char(5),

cno char(3),

Score number(4,1),

CONSTRAINT PK_Score primary key(sno,cno),

CONSTRAINT FK_Student_Score FOREIGN KEY (sno ) REFERENCES student(sno),

CONSTRAINT FK_Sourse_Score FOREIGN KEY (cno) REFERENCES Course(cno) );

insert into Score values('96001','001',77.5);

insert into Score values('96001','003',89);

insert into Score values('96001','004',86);

insert into Score values('96001','005',82);

insert into Score values('96002','001',88);

insert into Score values('96002','003',92.5);

insert into Score values('96002','006',90);

insert into Score values('96005','004',92);

insert into Score values('96005','005',90);

insert into Score values('96005','006',89);

insert into Score values('96005','007',78);

insert into Score values('96003','001',69);

insert into Score values('97001','001',96);

insert into Score values('97001','008',95);

insert into Score values('96004','001',87);

insert into Score values('96003','003',91);

insert into Score values('97002','003',91);

insert into Score values('97002','004', null);

insert into Score values('97002','006',92);

insert into Score values('97004','005',90);

insert into Score values('97004','006',85);

COMMIT;

实验二:数据查询语言

[ 实验日期 ] 年月日

[ 实验目的 ]

体会SQL语言数据查询功能的丰富和复杂。

[ 实验内容 ]

3. SQL数据查询语句:

例3-1: (选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

select SSEX,SAGE,SNO,SNAME from student;

例3-2: (不选择重复行) 求选修了课程的学生学号。

select distinct sno from score where sno=score.sno;

例3-3: (选择表中的所有列) 求全体学生的详细信息。

select * from student;

例3-4: (使用表达式) 求全体学生的学号、姓名和出生年份。

select sno,sname,sage from student;

例3-5: (使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。 select sno as 学号,sage as 出生年份 from student;

例3-6: (比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

select sname,sage from student where sage>19;

例3-7: (比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。

select sname,sage,sdept from student where sdept='CS' or sdept='IS'and sage>18;

例3-8: (确定范围条件) 求年龄在19岁与22岁(含19岁和22岁)之间的学生的学号和年龄。

select sno,sage from student where sage between 19 and 22;

例3-9: (确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。

select sno,sage from student where sage not between 19 and 22;

例3-10:(确定集合条件) 求在下列各系的学生信息:数学系和计算机系。

select * from student where sdept in('MA','CS');

例3-11:(确定集合条件) 求不是数学系和计算机系的学生信息。

select * from student where sdept not in('MA','CS');

例3-12:(匹配查询) 求姓名是以“李”打头的学生。

select * from student where sname like '李%';

例3-13:(匹配查询) 求姓名中含有“志”的学生。

select * from student where sname like '%志%';

例3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。

select * from student where sname like '%马__';

例3-15:(匹配查询) 求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、课程号和成绩。

select sno,cno,score from score where cno in('001','003')and score between 80 and 90 and sno like '96__';

例3-16:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。

select sno,cno from score where score is null;

例3-17:(控制行的显示顺序) 求选修003课程学生的学号、课程号和分数,并按分数的降序进行排列。

select sno,cno,score from score where cno='003'order by score desc;--升序是asc

例3-18:(组函数) 求学生总人数。

select count(sno) as 总人数 from student;

例3-19:(组函数) 求选修了课程的学生人数。

select count(sno) as 总人数 from score;

例3-20:(组函数) 求计算机系学生的平均年龄。

select avg(sage) as 平均年龄 from student where sdept='CS';

例3-21:(组函数) 求选修了课程001的最高、最低与平均成绩。

select max(score) as 最高成绩,min(score) as 最低成绩,avg(score) as 平均成绩 from score where cno='001';

例3-22:(分组查询) 求各门课程的平均成绩与总成绩。

select cno,avg(score) as 平均成绩,sum(score) as 总成绩 from score group by cno;

例3-23:(分组查询) 求各系、各班级的人数和平均年龄。

select count(sno) as 总人数,avg(sage) as 平均年龄from student group by sdept,sclass;

例3-24:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。

SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT GROUP BY SDEPT;

Sname字段具有唯一性,不可叠加

例3-25:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。

SELECT SAGE FROM STUDENT GROUP BY SNO;

例3-26:(分组查询) 求学生人数不足3人的系及其相应的学生数。

例3-27:(分组查询) 求各系中除01班之外的各班的学生人数。

select count(sno)as 总人数,sdept as 系,sclass as 班from(select * from student where sclass!='01') group by sdept,sclass;

例3-28:(自然连接查询) 求学生学号、姓名以及其选修课程的课程号和成绩,但查询结果中只能

有一个SNO字段。

select sno,cno,score from score where sno in(select sno from score group by score,sno having

count(*)=1);

例3-29:(连接查询) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课

程名称和成绩。

select sname,cname,score from student,course,score where student.sno=score.sno and

https://www.360docs.net/doc/1314636015.html,o=https://www.360docs.net/doc/1314636015.html,o and https://www.360docs.net/doc/1314636015.html,o='001' and not score between 70 and 90;

例3-30:(连接查询与表的别名) 求选修了课程的学生姓名、课程号和成绩。

select sname,cno,score from student st,score sc where st.sno=sc.sno;

例3-31:(自身连接查询) 求年龄大于’李丽’ 的所有学生的姓名、系和年龄。

select sname,sdept,sage from student where sage>(select sage from student where sname='李

丽');

例3-32:(外部连接查询) 求未选修了任何课程的学生的学号、姓名。

select sname,sno from student where sno not in (select distinct student.sno from student

right outer join(select distinct sno s from score,course where https://www.360docs.net/doc/1314636015.html,o=https://www.360docs.net/doc/1314636015.html,o) on student.sno=s)

例3-33:(子查询) 求与‘李丽’ 年龄相同的学生的姓名和系。

select sname,sdept from student where sage=(select sage from student where sname='李丽');

例3-34:(子查询) 求选修了课程名为’数据结构’ 的学生的学号和姓名。

select sno,sname from student where sno in(select sno from score where https://www.360docs.net/doc/1314636015.html,o=(select cno

from course where cname='数据结构'));

例3-35:(子查询ANY) 求比数学系中某一学生年龄大的学生的姓名和系。

select sname,sdept from student where sage>any (select sage from student where sdept='MA');

例3-36:(子查询ALL) 求比数学系中全体学生年龄大的学生的姓名和系。

select sname,sdept from student where sage>all(select sage from student where sdept='MA');

例3-37:(子查询EXISTS) 求选修了课程004的学生的姓名和系。

select sname,sdept from student where exists ( select * from score where cno='004');

例3-38:(返回多列的子查询) 求与‘李丽’ 同系且同龄的学生的姓名和系。

select sname,sdept from student where (sdept , sage )= (select sdept,sage from student where

sname='李丽');

例3-39: (相关子查询) 求未选修课程004的学生的姓名。

select sname from student where not exists (select * from score where cno='004');

例3-40 (from子查询)求总成绩排名前五的学生学号和总成绩。

select * from (select sno,sum(score) as 总成绩 from score group by sno order by sum(score)

desc) where rownum<6;

实验三:视图、授权控制与事务处理

[ 实验日期 ] 年月日

[ 实验目的 ]

通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。

[ 实验内容 ]

4. SQL视图的定义与操纵:

例4-1: (建立视图) 建立计算机系的学生的视图STUDENT_CS。

create view student_cs as select * from student where sdept='CS';

例4-2: (建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。

create view student_gr as select sno as 学号,avg(score) as 平均成绩 from score group by sno;

例4-3: (视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。

select * from student_cs where sage>19;

例4-4: (视图查询) 利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。

select 学号,平均成绩 from student_gr where 平均成绩>88;

例4-5: (视图更新) 利用视图STUDENT_CS,增加学生( ‘96006’,‘张然’,‘CS’,‘02’,‘男’,19 )。

insert into student_cs values('96006','张然','CS','02','男',19);

例4-6: (视图更新) 利用视图STUDENT_CS,将学生年龄增加1岁。观察其运行结果并分析原因。

update student_cs set sage=sage+1;

对视图的更新改变了基本表

例4-7: (视图更新) 利用视图STUDENT_GR,将平均成绩增加2分。观察其运行结果并分析原因。

update student_gr set 平均成绩=平均成绩+2;

不能对含有聚合函数的视图进行更新操作,因为更新操作的结果是会反映到基本表上的,而更新聚合函数无法得知更新基本表的那个元件

例4-8: (视图更新) 删除视图STUDENT_CS中学号为‘96006’ 的学生的全部数据。

delete from student_cs where sno='96006';

例4-9: (视图更新) 删除视图STUDENT_GR的全部数据。

delete from student_gr;

例4-10:(删除视图) 删除视图STUDENT_CS和STUDENT_GR。

drop view student_cs;

drop view student_gr;

5. SQL数据控制语句:

例5-1: (授权) 给左右邻近同学(用户)授予在表Student上的SELECT权限,并使这两个用户具有给其他用户授予相同权限的权限。

create user user1 identified by user1;

grant select on student to user1 with grant option;

例5-2: (授权) 给邻近同学(用户)授予Teach表上的所有权限。

grant all on teach to user1;

例5-3: (授权) 给所有用户授予Score表上的SELECT权限。

grant select on score to public;

例5-4: (收回授权) 收回上面例子中的所有授予的权限。

revoke all on teach from user1;

revoke select on score from public;

revoke select on student from user1;

6. SQL事务处理:

例6-1: (事务回退) 将Course表中的‘程序设计’课程学时数修改为80、‘编译原理’课程学时数修改为70学时,查询全部课程的总学时数后,取消所有修改(ROLLBACK)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。

update course set ctime=80 where cname='程序设计';

update course set ctime=70 where cname='编译原理';

select cname as 课程,ctime as 课时 from course ;

rollback;

select cname as 课程,ctime as 课时 from course ;

例6-2: (事务提交) 将Course表中的‘程序设计’课程学时数修改为80、‘编译原理’课程学时数修改为70学时,查询全部课程的总学时数后,确认所有修改(COMMIT)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。

update course set ctime=80 where cname='程序设计';

update course set ctime=70 where cname='编译原理';

select cname as 课程,ctime as 课时 from course ;

commit;

select cname as 课程,ctime as 课时 from course ;

实验四:存储过程与触发器

[ 实验日期 ] 年月日

[ 实验目的 ]

通过实验进一步理解和掌握数据库的存储过程和触发器。

[ 实验内容 ]

7.索引与数据库完整性

例7-1: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。create unique index sc_grade on score(sno asc,score desc);

例7-2: (删除索引) 删除索引SC_GRADE。

drop index sc_grade;

例7-3: (修改数据库表) 添加成绩表Score的参照完整性约束关系。

alter table score add constraint fk_sno foreign key(sno) references

student(sno) on delete cascade;

例7-4: (修改数据库表) 删除成绩表Score的参照完整性约束关系。

alter table score drop constraint fk_sno;

8.存储过程与触发器:

例8-1:(存储过程) 创建显示学生信息的存储过程Student_List。

create or replace procedure Student_List

as

stu Student%rowtype;

cursor CUR_VAR is select * from Student;

begin

open CUR_VAR;

loop

fetch CUR_VAR INTO stu;

exit when CUR_VAR%notfound;

DBMS_output.put_line(stu.SNO||stu.Sname||stu.SDEPT||stu.Sclass||stu.Ssex||stu.Sage); end loop;

end;

END;例8-2:(存储过程) 创建一个显示学生平均成绩的存储过程Student_Avg。

create or replace procedure Student_Avg

as

AvgGrade number(5,2);

cursor CUR_AVG is select avg(score) from score group by sno;

begin

open CUR_AVG;

loop

fetch CUR_AVG INTO AvgGrade;

exit when CUR_AVG%notfound;

DBMS_output.put_line(AvgGrade);

end loop;

close CUR_AVG;

END;例8-3:(存储过程) 创建一个对学生姓名进行模糊查找的带参存储过程Student_Name。

create or replace procedure Student_List

as

stu Student%rowtype;

cursor CUR_VAR is select * from Student;

begin

open CUR_VAR;

loop

fetch CUR_VAR INTO stu;

exit when CUR_VAR%notfound;

DBMS_output.put_line(stu.SNO||stu.Sname||stu.SDEPT||stu.Sclass||stu.Ssex||stu.Sage);

end loop;

end;

例8-4: (触发器) 创建满足下列要求的触发器,对Student、Score和Course表进行模仿参照完整性关系的维护。

(1)在Student上创建一个删除TR_Student_Del,对Student表进行删除操作,则删除Score表中

对应学号的所有记录;

create or replace trigger TR_Student_Del after delete on student

referencing new as new old as old for each row

begin

if deleting then

delete from score where sno=:old.sno;

end if;

end;

(2)在Score上创建一个插入触发器TR_Score_insert,当在Score表中插入一条记录时,要检查其

学号在Student表和课程号在Course表中是否存在,若不存在则不允许插入;

create or replace trigger TR_Score_insert before insert ON score

referencing old as new old as old

for each row

declare

psno student.sno%type;

pcno https://www.360docs.net/doc/1314636015.html,o%type;

begin

select sno into psno from student where sno=:new.sno;

select cno into pcno from course where cno=:https://www.360docs.net/doc/1314636015.html,o;

if(psno is null and pcno is null)

then

rollback;

end if;

end;

(3)在Course上创建一个更新触发器TR_Course_Upd,对Course表的课程号进行更新操作,则更新

Score表中对应的课程号。

create or replace trigger TR_Course_Upd after update on COURSE

referencing new as new old as old for each row

begin

if updating then

update SCORE set cno=:https://www.360docs.net/doc/1314636015.html,o where cno=:https://www.360docs.net/doc/1314636015.html,o;

end if;

end;

数据库实验报告

课程设计报告题目:数据库实验上机实验报告 专业班级:计算机科学与技术1210班 学号: U9 姓名:候宝峰 指导教师: 报告日期: 2015-06-04 计算机科学与技术学院

目录 一、基本SQL操作(部分选做)............. 错误!未定义书签。 1)数据定义........................... 错误!未定义书签。 2)数据更新........................... 错误!未定义书签。 3)用SQL语句完成下述查询需求:....... 错误!未定义书签。 二、DBMS综合运用(部分选做)............. 错误!未定义书签。 1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。......... 错误!未定义书签。 2)学习系统的身份、权限配置操作....... 错误!未定义书签。 3)了解SQLSERVER的存储过程、触发器、函数实现过程错误!未定义书签。 三、实验总结............................. 错误!未定义书签。 1)实验问题及解决..................... 错误!未定义书签。 2)实验心得........................... 错误!未定义书签。

一、基本SQL操作(部分选做) 1)数据定义 参照下面的内容建立自己实验所需的关系数据 创建三个关系: 商品表【商品名称、商品类型】 GOODS【GNAME char(20),GTYPE char(10)】 主关键字为(商品名称)。商品类型为(电器、文具、服装。。。) 商场【商场名称,所在地区】 PLAZA【PNAME char(20),PAREA char(20)】 主关键字为商场名称。所在地区为(洪山、汉口、汉阳、武昌。。。) 销售价格表【商品名称、商场名称、当前销售价格、目前举办活动类型】 SALE【GNAME char(20),PNAME char(20),PRICE FLOAT,ATYPE char(10)】主关键字为(商品名称、商场名称)。举办活动类型为(送券、打折),也可为空值,表示当前未举办任何活动。表中记录如(‘哈森皮靴’,‘亚贸广场’,200,‘打折’),同一商场针对不同的商品可能采取不同的促销活动。 create table goods(gname char(20) primary key,gtype char(10)); create table plaza(pname char(20) primary key,parea char(20)); create table sale (gname char(20), pname char(20), price FLOAT, atype char(10)check (atype in('送券','打折','')), primary key(gname,pname), foreign key(gname)references goods(gname), foreign key(pname)references plaza(pname)); 图1 goods表 图2 plaza表 图3 sale表 2)数据更新 (1)向上述表格中用sql语句完成增、删、个、改的操作;

网络数据库实训报告(一)

网络数据库应用实训报告 日期:2016年3月18日班级:物联1411 一、实训目的和要求 1、掌握采用界面方式创建、修改、删除数据库; 2、掌握采用T-SQL 语句创建、修改、删除数据库; 二、实训所需仪器、设备 硬件:计算机软件:操作系统Windows7、SQLServer2008 三、实训内容 1)在管理平台中管理数据库。 (1)创建数据库“studentsdb”。 (2)查看studentsdb数据库的属性。 (3)修改数据文件大小为2MB,指定“最大文件大小”为5MB。日志文件的大小在每次填满时自动递增5%。 (4)将studentsdb数据库的名称更改为student_db。 2)使用T-SQL 语句管理数据库 (1)使用CREATE DATABASE 创建studb数据库,然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (2)使用ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。(3)

为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (4)将studb数据库的名称更改为my_studb。 (5)使用DROP DATABASE 删除my_studb数据库。 四、实训步骤 (内容说明:1.大致的操作步骤;2.参数设置) 1)在管理平台中管理数据库。 (1)数据库右击→新建数据库→数据库名称“studentsdb”; (2)数据文件→初始大小→2MB (3)数据文件→点击自动增长下的→最大文件大小→限制文件大小→5MB; (4)日志文件→点击自动增长下的→文件增长→按百分比→5% (5) studentsdb右击→属性; (6) studentsdb右击→重命名→student_db; 2)使用T-SQL 语句管理数据库 命令如下: CREATEDATABASE studb on PRIMARY ( NAME='student_db', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA', size=4MB, MAXSIZE=20MB, FILEGROWTH=1 ) log on ( NAME='stusb_log2', FILENAME='C:\Program Files\Microsoft SQL

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

《mysql数据库技术》实验报告常赵有

MySQL数据库技术实验报告 系别班级学号姓名地点 计算机科学系计科110211150004常赵有C111机房 课程名称MySQL数据库技术实验名称实验1 MySQL的使用 实验过程 目的要求: (1)掌握MySQL服务器安装方法 (2)掌握MySQL Administrator的基本使用方法 (3)基本了解数据库及其对象 实验准备: (1)了解MySQL安装的软硬件要求 (2)了解MYSQL支持的身份验证模式 (3)了解MySQL各组件的主要功能 (4)基本了解数据库、表、数据库对象 实验内容: 1.安装MySQL服务器和MySQL界面工具 安装MySQL界面工具。(插入安装好的界面工具截图即可) 2.利用MySQL客户端访问数据库 (1)打开开始,程序,MySQL,MySQL server 5.1,MySQL command line client,进入MySQL 客户端界面,输入管理员密码登录。 (2)在客户端输入“help”或“\h”,查看MySQL帮助菜单,仔细阅读帮助菜单的内容。(3)实用show语句查看系统自动创建的数据库。

MySQL数据库技术实验报告 系别班级学号姓名地点 计算机科学系计科110211150004常赵有C111机房 课程名称MySQL数据库技术实验名称实验2 创建数据库和表 实验过程 目的和实验要求: (1)了解MySQL数据库中的存储引擎分类 (2)了解表的结构特点 (3)了解MySQL的基本数据类型 (4)了解空值的概念 (5)学会在MySQL界面工具中创建数据库和表 (6)学会使用SQL语句创建数据库和表 实验内容: 1.实验题目 创建用于企业用于管理的员工管理数据库,数据库名为YGGL,包含员工的信息,部门信息,及员工的薪水信息。数据库YGGL包含下列三个表: (1)Employees:员工信息表 (2)Departments:部门信息表 (3)Salary:员工薪水情况表 表实验2.1 Employees表结构 列名数据类型长度是否允许空值说明 Employees char 6 否员工编号,主键 name char 10 否姓名 education char 4 否学历

数据库实验报告

. . 《数据库原理与技术》实验报告 实验一、数据定义及更新语句练习 一、实验容 建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(《数据库系统概论》第二章习题5中的四个表),要现关系的三类完整性。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 二、完成情况

附上按照实验容编写的程序代码。(小四号字,宋体) 三、实验结果 1、插入一条记录 2、①将p表中的所有红色零件的重量增加5。 ②将spj表中所有供应商的QTY属性值减少10。用子查询。

3.利用Delete语句删除p表中的所有红色零件的记录。 附上各个步骤所用的实验用例与结果显示(小四号字,宋体) 四、问题与解决 (小四号字,宋体) 1 .实验中遇到的问题及解决过程 2 .实验中产生的错误及原因分析 首先写出执行语句不成功的时候系统报告的错误信息。然后分析错误原因,并给出解决办法。

实验二简单查询和连接查询 一、实验容 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积。 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 二、完成情况 (一)完成下面的简单查询: ①查询所有“”的供应商明细; ②查询所有“红色”的14公斤以上的零件。

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

福建农林大学数据库实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:数据库原理及应用 姓 名: 系: 专业:计算机科学与技术 年级: 学号: 指导教师:李金铭 副教授 职 称: 2015年月日

实验目录:

福建农林大学计算机与信息学院实验报告 实验名称:数据库得定义实验 一、实验目得与要求 (1)要求学生熟练掌握与使用SQL、Transact-SQL、SQL Server企业管理器创建数据库、表、索引与修改表结构. (2)学会使用SQL Server查询分析器接收Transact-SQL语句与进行结果分析。 二、实验内容与原理 1、基本操作实验 (1)使用企业管理器按教材中得内容建立图书—读者数据库。 (2)在企业管理器中查瞧图书读者数据库得属性,并进行修改,使之符合要求. (3)通过企业管理器,在建好得图书借阅数据库中建立图书、读者与借阅3个表,其结构为; 图书(书号,类别,出版社,作者,书名,定价); 读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期) 要求为属性选择合适得数据类型,定义每个表得主码,就是否允许空值与默认值等列级数据约束。 (4)在企业管理器中建立图书、读者与借阅3个表得表级约束:每个表得主码约束;借阅表与图书表间、借阅表与读者表之间得外码约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表得书号与读者编号得惟一性约束:实现读者性别只能就是“男”或“女”得Check(检查)约束. 三、实验环境 硬件:计算机 软件:Windows 2000与SQL Server 2000 四、算法描述及实验步骤 l.通过企业管理器,建立图书借阅数据库 在数据库图标上右击,选择“新建数据库”,输入“图书_读者",单击“确定”按钮,关闭对话框。在企业管理器窗口中出现“图书-读者”数据库标志,这表明建库工作已经完成。2.在建好得图书借阅数据库中建立图书、读者与借阅3个表 (1)建立“图书”表。 选中图书_读者数据库中得表文件夹,单由鼠标右键,在弹出得菜单中选择“新建表”,如图2所示。 (2)输入结构 书号:char长度10,不允许空值。并设置为主键。 类别:char长度12,允许空值。 出版社:varchar 长度50,不允许空值。 作者:varchar长度50,允许空值。 名称:varchar 长度50,不允许空值。 定价:char长度10,允许空值。 建立表格如图3所示。 (3)建立“读者"表与“借阅"表。 与建立“图书"表得形式一致,如表2。

西北工业大学数据库实验报告

1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) ●数据库和表的要求(第五版教材第二章习题 6 要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 ●完成以下具体操作: (1)创建SPJ数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方 式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 S表: P表: J表: SPJ表:

(3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示: 最好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 原位置: 新的位置: (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据 库对应的mdf,ldf文件是否存在) 删除过后文件不存在 (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库)

(8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类 型。 2.利用SQL语言创建和删除数据库和数据表(50分,每小题5分) ●数据库和表的要求 数据库名:Student,其中包含三个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。 ●完成以下具体操作: (1)用SQL语句创建如图2.5-图2.7要求的数据库Student,初始大小为20MB, 最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初

数据库实验报告5

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;

中文数据库的检索实验报告

实验报告 课程名称计算机信息检索 实验项目名称 班级与班级代码 实验室名称(或课室) 专业 任课教师 学号: 姓名: 实验日期:

姓名实验报告成绩评语: 指导教师(签名)

年月日说明:指导教师评分后,学年论文交院(系)办公室保存。

实验一 一、实验目的 掌握常见中文数据库的检索方式。利用所学理论知识,结合实验分析不同数据库在信息组织、检索分式等方面的特点。 二、实验内容: 用一专题在六个中文数据库、检索结果主要也目录和摘要为主。 检索专题自选。 1、中国期刊网 2、维普中文科技期刊数据库 3、万方数据资源系统 4、国研网 5、中宏数据库 6、人大复印资料 7、高校财经数据库 三、实验环境 CPU:Intel(R) core?2 CPU 内存:1G 软件: IE 资源:互联网 四、实验步骤 1.进入广东商学院图书馆网页,点击数字资源,进入中国期刊数据库。 2. 根据自己检索课题的要求,采用分类检索与主题检索在加上 3.鉴于以上检索的结果记录数较多,而且与需求的相关性低,采用以下缩减手段:

(1)在检索导航中更改默认分类:只选择“经济与管理”类 (2)更改更新时间(2005~2009),得到结果; (3)把模糊匹配改为精确匹配得到结果; 4. 通过亲自查看其摘要,全文的方式,剔除一些不相关的文献,并归纳出剔除文章的原则。 5. 将最后的所得的与主题密切相关的文献题录信息拷贝下来,保存在作业文件夹中。并在实验报告中体现出来。 6. 把最后所得的期刊论文的全文都一一拷贝下来。保存在自己的移动硬盘中。作为后期撰写文献综述的依据之一。 7. 登陆到学校的重庆维普数据库、人大报刊索引全文数据库,万方全文数据库期刊、国研网子系统,重复2,3,4,5,6,将所得检索结果拷贝下来,放在作业文件夹 五、试验结果 实验步骤3(2)(3)的结果如下,其它数据库结果类似 六、实验分析 期刊网的主页上免费的资源有:学术研究、工具书检索、党和国家大事、文化与生活、学习教育、行业知识仓库等,在相应领域的信息检索中起着重要作用。

数据库实验报告1

《数据库系统原理》实验报告 专业:___信息安全____ 班号:_______ 学号:______ 姓名:________ 实验日期:_________ 上机地点:_________ 实验环境: 报告日期:2012年 4月26日

一、实验内容、过程及完成情况(必须有所用的SQL 语句、语句执行效果) 1、第三章习题3(P127):用SQL语句建立第二章习题5 (P74)中四个表,创建的基本表应考虑数据完整性 (1)打开cmd,进入mysql.exe文件所在的文件夹。 然后以用户名root密码123456登录。 如下图所示 图1 (2)执行创建数据库语句:create database mytest1; 然后执行语句:show databases查看库,发现mytest1库建立成功。 如下图所示 图2

(3)选择数据库mytest1,然后执行创建表S的语句:CREATE TABLE S ( SNO CHAR(2), SNAME VARCHAR(8), STATUS SMALLINT, CITY VARCHAR(8), PRIMARY KEY (SNO) ); 如下图所示 图3 (4)执行语句describe S; 显示表S的结构。如下图所示 图4 (5)在mytest1中,执行创建表P的语句: CREATE TABLE P( PNO CHAR(2), PNAME VARCHAR(8), COLOR CHAR(2), WEIGHT SMALLINT, PRIMARY KEY (PNO) ); 如下图所示

图5 (6)显示表P的结构,如下图所示 图6 (7)在mytest1中,执行创建表J的语句:CREATE TABLE J( JNO CHAR(2), JNAME VARCHAR(8), CITY VARCHAR(8), PRIMARY KEY (JNO) ); 如下图所示 图7 (8)显示表J的结构,如下图所示

数据库实验报告

北京邮电大学国际学院 _11-12_学年第_二_学期实验报告 课程名称:数据库技术与应用 项目名称:基本SOL语句的用法 项目完成人: 姓名:武学超学号: 指导教师:____ ____韩祥斌_____________ 日期: 2012 年 3 月 16 日

目录 一、实验目的............................................. 错误!未定义书签。 1. 结合数据库技术与应用教学的基本知识,理解并掌握基本SQL语句的用法。错误! 未定义书签。 二、实验内容............................................. 错误!未定义书签。 1. 回顾基本SQL语句的语法............................... 错误!未定义书签。 2. 回顾MySQL的基本用法................................. 错误!未定义书签。 3. 初始化数据库,将文件中的内容复制并粘贴到MySQL-Front 的SQL编辑器中,然 后点击“运行”........................................... 错误!未定义书签。 4. 了解实验用例的背景,并进行如下SQL语句的训练:....... 错误!未定义书签。 三、实验环境............................................. 错误!未定义书签。 1. 32位Xp系统下 Mysql 程序(命令行).................. 错误!未定义书签。 四、实验结果............................................. 错误!未定义书签。 1. 问题讨论............................................. 错误!未定义书签。 2. 试验心得............................................. 错误!未定义书签。

数据库原理实验报告册

实验名称课时实验报告成绩实验(一)——数据库基本操作 2 实验(二)——SQL语句 6 实验(三)——数据库完整性与 4 安全性实验 实验(四)——数据库编程 4 备注:

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

单击STU数据库,选择表,然后新建,依次用相同的步骤建立STU、COURSES 和SC表,见图B B.新建表 数据录入:

数据库实验报告

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

课程名称:数据库原理与应用 实验内容:数据库安全性管理 作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级: B13521 作者姓名:李文阳 作者学号: 指导教师姓名:王振夺 北华航天工业学院教务处制 实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色 管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。

(三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。 4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。 4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

数据库实验报告

实验一 SQL Server基本使用与数据定义一.实验目的 1.掌握“服务管理器”、“企业管理器”及“查询分析器”基本使用方法;2.熟悉数据库建模及E/R图的画法; 3.掌握SQL Server 中数据库、及数据表的建立与管理方法; 4.掌握数据的导入/导出及数据库备份/还原方法。 二.实验内容 一、SQL Server 基本使用 1.启动SQL SERVER。 2.注册服务器 3.企业管理器属性 4.查询分析器介绍 5.查看数据库及浏览表中记录 二、数据库的建立与管理 1.数据库建模 2.启动、并打开SQL Server 3.使用图形界面创建数据库和表 4.使用查询分析器创建表 5.数据库的备份与还原

实验二 SQL查询 一.实验目的: 1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚焦函数的使用方法。 4.掌握集合查询方法。 二.实验内容: 1.建立与删除[索引]的方法。 在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。 CREATE INDEX 代理商No ON 代理商(代理商编号) CREATE INDEX 客户No ON 客户(客户编号) CREATEINDEX产品No ON产品(产品编号) CREATEINDEX订单No ON订单(订单编号) 2.单表查询, ①从产品表中查询现有产品的库存量。 SELECT COUNT(*) FROM产品 ②从客户表中查询“王五”的地址及代理商编号。 SELECT地址,代理商编号 FROM客户 WHERE姓名='王五' ③从代理商表中查询代理商“惠普”的提成金额。 SELECT提成金额 FROM代理商 WHERE姓名='惠普' ④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。 SELECT产品编号,订购数量 FROM订货项目 WHERE订单编号='444' ⑤分别求代理商和客户的总数。 SELECT COUNT(*)代理商数 FROM代理商 SELECT COUNT(*)客户数 FROM客户 ⑥从订货项目表中,查询编号为0033的产品定货总数量。 SELECT COUNT(*)订货总数量 FROM订货项目 WHERE订单编号='0033' 3.多表查询 ①查询编号为300的客户通过的代理商的姓名和地址。 SELECT代理商.姓名,代理商.地址

大数据实验报告

学生实验报告册 (理工类) 课程名称:大型数据库技术专业班级:12计算机科学与技术(1)学生学号:学生姓名: 所属院部:计算机工程学院指导教师:陈爱萍

2014——20 15学年第2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:Oracle数据库安装与配置实验学时: 1 同组学生姓名:实验地点:1316 实验日期:2015/3/27 实验成绩: 批改教师:陈爱萍批改时间:

实验1:Oracle数据库安装与配置 一、实验目的和要求 (1)掌握Oracle数据库服务器的安装与配置。 (2)了解如何检查安装后的数据库服务器产品,验证安装是否成功。 (3)掌握Oracle数据库服务器安装过程中出现的问题的解决方法。 (4)完成Oracle 11g数据库客户端网路服务名的配置。 (5)检查安装后的数据库服务器产品可用性。 (6)解决Oracle数据库服务器安装过程中出现的问题。 二、实验设备、环境 设备:奔腾Ⅳ或奔腾Ⅳ以上计算机 环境:WINDOWS 7、ORACLE 11g中文版 三、实验步骤 (1)从Oracle官方网站下载与操作系统匹配的Oracle 11g数据库服务器和客户机安装程序。 (2)解压Oracle 11g数据库服务器安装程序,进行数据库服务器软件的安装。

数据库实验报告

南华大学计算机科学与技术学院 实验报告 (2013 ~2014 学年度第二学期) 课程名称:数据库原理与技术实验名称:认识DBMS 姓名:学号: 专业:软件工程班级:2班 地点:教师:刘征海

实验一认识DBMS 一、实验要求 1、利用管理工具创建数据库、表和表间关系 (1) 利用SQL Server Management Studio 创建数据库,名称为【学生选课YYXXXX】。其中YY为专业代号,计算机为JS,软件工程为RJ,网络为WL,数媒为SM;XXXX为各位同学的学号中的最后四位 (2) 在【学生选课YYXXXX】中建立数据表,表的定义如下所示。 学生YYXXXX(学号,姓名,性别,出生日期,院系名称,备注); 课程YYXXXX(课程号,课程名,先行课,学分); 选修YYXXXX(学号,课程号,分数)。 要求定义每张表的主码,为属性选择合适的数据类型,决定是否允许为空, 为【性别】和【学分】属性定义默认值。 (3) 定义表之间的关系。 (4) 分别为表录入几行数据记录,同时练习数据的修改和删除操作。

1)实验操作过程截图如下:

2、利用SQL 语句创建数据库、表和表间关系 在SQL Server Management Studio 中新建查询,实现以下操作。 (1) 用SQL 语句创建数据库,名称为“StudentCourseYYXXXX”。其中YYXXXX 为各位同学的学号中的最后四位。 (2) 用SQL 语句创建StudentCourseYYXXXX 中的3 张表,同时指定主码、外码、默认值等。 (3) 比较“学生选课YYXXXX”和StudentCourseYYXXXX 两个数据库是否一致。 二、实验代码及操作结果显示 新建数据库: create database StudentCourseRJ0214 新建StudentsRJ0214表: create table StudentsRJ0214( Sno nchar(10) primary key, Sname nchar(10) not null, Ssex nchar(10) , Sbirthday date , Sdept nchar(10) , Memo nchar(10) ) 新建CoursesRJ0214表: create table CoursesRJ0214( Cno nchar(10) ,

数据库实验报告册

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

实验一——数据库基本操作 一、实验目的 1.熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。 2.掌握界面操作方法完成用户数据库建立、备份和还原。 3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。 二、实验预习内容 在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。 2.使用SQL SERVER 2000 中的企业管理器完成以下任务。 数据库名称:STC 表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) ); COURSE(cno char(3), cname varchar(50), cpno char(3), credit int ); SC(sno char(9), cno char(3), grade int ); 说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。 1)建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。 create table stu (sno char(9) primary key, sname varchar(50),ssex char(2),sage int,sdept char(2) ); select* from course create table course ( cno char(3) primary key,cname varchar(50),cpno char(3),credit int , foreign key (cpno) references course(cno) ); create table sc (sno char(9),cno char(3),grade int, primary key(sno,cno), foreign key (sno) references stu(sno), foreign key (cno) references course(cno) ); insert into stu values('95001','李勇','男','20','cs'); Stu表:

数据库实验报告

北京科技大学实验报告 课程:数据库技术与应用实验名称:数据库查询 系别:通信工程实验日期:2015年12月9日 专业班级提交日期: 学号:姓名: 教师审批签字: 实验2 数据库和表的创建及维护 一.实验目的 1.了解Microsoft SQL Server 2008数据库的逻辑结构和物理结构。 2.熟练掌握在Microsoft SQL Server 2008 环境下建立数据库,修改数据库和删除数据库。 3.熟练掌握在Microsoft SQL Server 2008 环境下建立和修改数据表并向表中插入数据,操作的同时理解数据库,数据表,属性,关键字等关系数据库中的基本概念。 4.掌握在Microsoft SQL Server 2008 的“对象资源管理器”中对数据表中的数据进行更新操作。 5.了解各种约束的作用,了解Microsoft SQL Server 2008 的常用数据类型。 6.掌握使用Transact-SQL语句创建数据库和表 7.掌握Transact-SQL中用于对表数据进行插入,修改和删除命令的用法。 8.熟悉使用Microsoft SQL Server 2008d的“对象资源管理器”进行分离数据库,附加数据库,备份数据库和还原数据库等操作。 二.实验步骤 1.在Microsoft SQL Server 2008 的“对象资源管理器”中创建StudentMIS数据库。 SQL语句: Create database studentmis On (name=stdentmis,filename=’c:\programfiles\microsoftsqlserver\mssql10.mssqlserver\mssql\data \studentmis.mdf’,size=100mb,maxsize=1gb,filegrowth=10%) Log on (name=studentmis_log’, filec:\programfiles\microsoftsqlserver\mssql10.mssqlserver\mssql\data\studentmis.mdf’,size=10 0mb,maxsize=50mb,filegrowth=5mb) go

相关文档
最新文档