数据库实验报告
《数据库系统概论》实验报告书
专业班级软件
学号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