数据库实验源代码大全

数据库实验源代码大全
数据库实验源代码大全

数据库实验源代码大全

实验一:数据定义语言

create user U099074235 IDENTIFIED BY XHM123 DEFAULT TABLESPACE DXPDA TASPACE

1,创建表Student

CREATE TABLE Student (

SNO CHAR(5) ,

SNAME CHAR(10) NOT NULL,

SDEPT CHAR(2) NOT NULL,

SCLASS CHAR(2) NOT NULL,

SAGE NUMBER(2),

SSEX CHAR(2),

CONSTRAINT SNO_PK PRIMARY KEY(SNO));

2,创建表Course

CREATE TABLE Course(

CNO CHAR(3),

CNAME V ARCHAR2(16) ,

CTIME NUMBER(3),

CONSTRAINT CNO_PK PRIMARY KEY(CNO)

)

3,创建表Teach

CREATE TABLE Teach(

TNO V ARCHAR(6),

TNAME V ARCHAR(8),

TSEX CHAR(2),

CNO CHAR(3),

TDA TE DATE,

TDEPT CHAR(2),

CONSTRAINT TT_PK PRIMARY KEY(TNO),

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

)

CREATE TABLE Teach(

TNO V ARCHAR(6),

TNAME V ARCHAR(8),

TSEX CHAR(2),

CNO CHAR(3),

TAGE NUMBER(2),

TDEPT CHAR(2),

CONSTRAINT TT_PK PRIMARY KEY(TNO),

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

)

4,创建表Score

CREATE TABLE Score(

SNO CHAR(5),

CNO CHAR(3),

SCORE NUMBER(5,2),

CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),

CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)

)

二、插入数据

1,Student

INSERT INTO Student V ALUES('96001','马小燕','CS','01',21,'女');

INSERT INTO Student V ALUES('96002','黎明','CS','01',18,'男');

INSERT INTO Student V ALUES('96003','刘东明','MA','01',18,'男');

INSERT INTO Student V ALUES('96004','赵志勇','IS','02',20,'男');

INSERT INTO Student V ALUES('97001','马蓉','MA','02',19,'女');

INSERT INTO Student V ALUES('97002','李成功','CS','01',20,'男');

INSERT INTO Student V ALUES('97003','黎明','IS','03',19,'女');

INSERT INTO Student V ALUES('97004','李丽','CS','02',19,'女');

INSERT INTO Student V ALUES('96005','司马志明','CS','02',18,'男');

2,Course

INSERT INTO Course V ALUES('001','数学分析',144);

INSERT INTO Course V ALUES('002','普通物理',144);

INSERT INTO Course V ALUES('003','微机原理',72);

INSERT INTO Course V ALUES('004','数据结构',72);

INSERT INTO Course V ALUES('005','操作系统',64);

INSERT INTO Course V ALUES('006','数据库原理',64);

INSERT INTO Course V ALUES('007','DB_Design',48);

INSERT INTO Course V ALUES('008','程序设计',56);

3,Teach

INSERT INTO Teach V ALUES('9401','王成钢','男','004',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');

INSERT INTO Teach V ALUES('9402','李正科','男','003',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');

INSERT INTO Teach V ALUES('9403','严敏','女','001',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'MA');

INSERT INTO Teach V ALUES('9404','赵高','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'IS');

INSERT INTO Teach V ALUES('9405','李正科','男','003',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'MA');

INSERT INTO Teach V ALUES('9406','李玉兰','女','006',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'CS');

INSERT INTO Teach V ALUES('9407','王成钢','男','004',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'IS');

INSERT INTO Teach V ALUES('9408','马悦','女','008',TO_DATE( '2000-09-06', 'YYYY-MM-DD'),'CS');

INSERT INTO Teach V ALUES('9409','王成钢','男','007',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');

INSERT INTO Teach V ALUES('9401','王成钢','男','004',35,'CS');

INSERT INTO Teach V ALUES('9402','李正科','男','003',40,'CS');

INSERT INTO Teach V ALUES('9403','严敏','女','001',33,'MA');

INSERT INTO Teach V ALUES('9404','赵高','男','004',28,'IS');

INSERT INTO Teach V ALUES('9405','李正科','男','003',32,'MA');

INSERT INTO Teach V ALUES('9406','李玉兰','女','006',43,'CS');

INSERT INTO Teach V ALUES('9407','王成钢','男','004',49,'IS');

INSERT INTO Teach V ALUES('9408','马悦','女','008',35,'CS');

INSERT INTO Teach V ALUES('9409','王成钢','男','007',48,'CS');

to_date( '05-09-1999', 'DD-MM-YYYY' );

4,Score

INSERT INTO Score V ALUES('96001','001',77.5);

INSERT INTO Score V ALUES('96001','003',89);

INSERT INTO Score V ALUES('96001','004',86);

INSERT INTO Score V ALUES('96001','005',82);

INSERT INTO Score V ALUES('96002','001',88);

INSERT INTO Score V ALUES('96002','003',92.5);

INSERT INTO Score V ALUES('96002','006',90);

INSERT INTO Score V ALUES('96005','004',92);

INSERT INTO Score V ALUES('96005','005',90);

INSERT INTO Score V ALUES('96005','006',89);

INSERT INTO Score V ALUES('96005','007',76);

INSERT INTO Score V ALUES('96003','001',69);

INSERT INTO Score V ALUES('97001','001',96);

INSERT INTO Score V ALUES('97001','008',95);

INSERT INTO Score V ALUES('96004','001',87);

INSERT INTO Score V ALUES('96003','003',91);

INSERT INTO Score V ALUES('97002','003',91);

INSERT INTO Score V ALUES('97002','004','');

INSERT INTO Score V ALUES('97002','006',92);

INSERT INTO Score V ALUES('97004','005',90);

INSERT INTO Score V ALUES('97004','006',85);

INSERT INTO Score V ALUES('97004','008',75);

INSERT INTO Score V ALUES('97003','001',59);

INSERT INTO Score V ALUES('97003','003',58)

实验一、

1,(建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,

Sname 字段为Sname(C,8)且可为空

ALTER TABLE Student DROP COLUMN SSEX

ALTER TABLE Student MODIFY SNAME VARCHAR(8) NULL

例1-2:(修改数据库表) 在Student表中增加SEX(C,2) 字段。

ALTER TABLE Student ADD SEX CHAR(2)

例1-3:(修改列名) 将Student表中列名SEX修改为SSEX。

ALTER TABLE Student RENAME COLUMN SEX TO SSEX;

例1-4;(修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。ALTER TABLE Student MODIFY SNAME V ARCHAR(10) NOT NULL

例1-5:(建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE CREATE INDEX SC_GRADE ON Score(CNO ASC,SCORE DESC)

例1-6:(删除索引) 删除索引SC_GRADE。

DROP INDEX SC_GRADE

例1-7:(建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student 表中的

相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同

CREATE TABLE S1(

SNO CHAR(5) ,

SNAME CHAR(10) NOT NULL,

SD CHAR(2) NOT NULL,

SA NUMBER(2))

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

ALTER TABLE Score DROP CONSTRAINT SNO_FK ;

ALTER TABLE Score DROP CONSTRAINT CNOM_FK;

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

ALTER TABLE Score ADD CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO)

ALTER TABLE Score ADD CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)

例1-10:(修改数据库表名) 将数据库表S1改名为Student_Temp

RENAME S1 TO Student_Temp

实验二:数据操纵语言

例2-2:(多行插入) 将表Student中在计算机系(‘CS’)的学生数据插入到表Student_Temp 中。

INSERT INTO Student_Temp(SNO,SNAME,SD,SA)

SELECT SNO,SNAME,SDEPT,SAGE FROM Student

例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,

把结果存入数据库表Student_Gr中。

CREATE TABLE Student_Gr(

SNO CHAR(8) NOT NULL,

SA VG NUMBER(5,2)

)

INSERT INTO Student_Gr(SNO,SA VG)

SELECT SNO,A VG(SCORE)

FROM Score

GROUP BY SNO

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

UPDATE Student_Temp SET SA=SA+2

例2-5:(修改数据) 将Course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。

UPDATE Course SET CTIME= ( SELECT CTIME FROM Course WHERE CNAME='数据结构')

WHERE CNAME='程序设计'

例2-6:(插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。

INSERT INTO Score VALUES('98001','001',95)

因为Score表中的SNO字段是根据Student中的SNO建立的

例2-7:(插入数据) 向Score表中插入数据(‘97001’, ‘010’, 80),根据返回信息解释其原因。

因为Score表中的CNO字段是根据Course中的CNO建立的,Course表中并没有课程号是010的

例2-8:(删除数据) 删除Student表中学号为‘96001’的学生信息,根据返回信息解释其原因。

例2-9:(删除数据) 删除Course表中课程号为‘003’的课程信息,根据返回信息解释其原因。

例2-10:(删除数据) 删除学生表Student_Temp中学号以96打头的学生信息。

(此操作后,注意用ROLLBACK回退可能更新的数据)

DELETE FROM Student_Temp WHERE SNO LIKE '96%'

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

DELETE FROM Student_Temp WHERE 1!=0;

例2-12:(删除表) 删除数据库表Student_Temp和Student_Gr。

DROP TABLE Student_Temp

DROP TABLE Student_Gr;

实验三:数据查询语言

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

SELECT SNO,SNAME,SSEX,SAGE FROM Student

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

SELECT DISTINCT SNO FROM Score WHERE CNO IS NOT NULL

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

SELECT * FROM Student

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

SELECT SNO,SNAME,2011-SAGE AS "YEAR OF BIRTH" FROM Student

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

SELECT SNO AS"学号",2011-SAGE AS "出生年份" FROM Student

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

SELECT SNAME,SAGE FROM Student WHERE SAGE>19

例3-7:(比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。SELECT SNAME,SDEPT,SAGE FROM Student WHERE SDEPT IN('CS','IS')

例3-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和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 SNAME FROM Student WHERE SNAME LIKE '李%'

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

SELECT SNAME FROM Student WHERE SNAME LIKE '%志%'

例3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。SELECT SNAME 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 CNO,CNAME,CTIME FROM Course WHERE CNAME LIKE '%A_%' ESCAPE'A'

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

SELECT SNO,CNO FROM Score WHERE SCORE IS NULL

例3-18:(控制行的显示顺序) 求选修003课程或004课程的学生的学号、课程号和分数,要求按课程号升序、

分数降序的顺序显示结果。

SELECT * FROM Score

WHERE CNO IN('003','004')

ORDER BY CNO ,SCORE DESC

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

SELECT COUNT(*) FROM Student

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

SELECT COUNT(DISTINCT SNO) FROM Score

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

SELECT A VG(SAGE) FROM Student WHERE SDEPT='CS'

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

SELECT MAX(SCORE),MIN(SCORE),A VG(SCORE) FROM Score

WHERE CNO='001'

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

SELECT A VG(Score),SUM(SCORE) FROM Score

GROUP BY CNO

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

SELECT COUNT(SNO),A VG(SAGE) FROM Student

GROUP BY SDEPT,SCLASS

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

SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT

WHERE SDEPT=’CS’GROUP BY SDEPT;

SELECT SNAME,SDEPT,COUNT(*) FROM Student

WHERE SDEPT='CS' GROUP BY SDEPT;

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

SELECT SAGE FROM STUDENT GROUP BY SNO;

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

SELECT SDEPT,COUNT(SNO) FROM Student

GROUP BY SDEPT

HA VING COUNT(SNO)<3

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

SELECT SDEPT,SCLASS,COUNT(SNO) FROM Student

WHERE SCLASS!='01'

GROUP BY SDEPT,SCLASS

例3-29:(涉及空值的查询) 分别观察各组函数、行的显示顺序以及分组查询与空值的关系。

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

SELECT SNAME,CNAME,SCORE FROM Student,Course,Score

WHERE https://www.360docs.net/doc/3d11609122.html,O='001'

AND (SCORE>90 OR SCORE<70)

AND https://www.360docs.net/doc/3d11609122.html,O=https://www.360docs.net/doc/3d11609122.html,O

AND Student.SNO=Score.SNO

例3-31:(连接查询与表的别名) 求选修了课程的学生的学生姓名、课程号和成绩。SELECT SNAME,CNO,SCORE FROM Student,Score

WHERE Student.SNO=Score.SNO

例3-32:(自身连接查询) 求年龄大于’李丽’的所有学生的姓名、系和年龄。SELECT X.SNAME,X.SDEPT,X.SAGE FROM Student X,Student Y

WHERE X.SAGE>Y.SAGE

AND Y.SNAME='李丽'

例3-33:(外部连接查询) 求选修了课程002或003的学生的学号、课程号、课程名和成绩,

要求必须将002和003课程的相关信息显示出来。

SELECT Score.SNO,https://www.360docs.net/doc/3d11609122.html,O,https://www.360docs.net/doc/3d11609122.html,AME,SCORE,CTIME FROM Course,Score WHERE https://www.360docs.net/doc/3d11609122.html,O IN ('002','003')

AND https://www.360docs.net/doc/3d11609122.html,O=https://www.360docs.net/doc/3d11609122.html,O(+)

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

SELECT SNAME,SDEPT FROM Student

WHERE SAGE IN (

SELECT SAGE FROM Student WHERE SNAME='黎明')

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

SELECT SNO,SNAME FROM Student

WHERE SNO IN(

SELECT SNO FROM Score

WHERE CNO=(

SELECT CNO FROM Course

WHERE CNAME='数据结构') )

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

SELECT SNAME,SDEPT FROM Student

WHERE SAGE>ANY(SELECT SAGE FROM Student WHERE SDEPT='MA')

AND SDEPT<>'MA'

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

SELECT SNAME,SDEPT FROM Student

WHERE SAGE>ALL(SELECT SAGE FROM Student WHERE SDEPT='MA')

AND SDEPT<>'MA'

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

例3-39:(返回多列的子查询) 求与‘李丽’同系且同龄的学生的姓名和系。SELECT SNAME,SDEPT FROM Student

WHERE SDEPT=(

SELECT SDEPT FROM Student

WHERE SNAME='李丽' )

AND SAGE=(

SELECT SAGE FROM Student

WHERE SNAME='李丽' )

例3-40:(多个子查询) 求与‘‘黎明’同系,且年龄大于‘李丽’的学生的信息。SELECT * FROM Student

WHERE SDEPT IN(

SELECT SDEPT FROM Student

WHERE SNAME='黎明')

AND SAGE=(

SELECT SAGE FROM Student

WHERE SNAME='李丽')

例3-41:(子查询中使用表连接) 求数学系中年龄相同的学生的姓名和年龄。

SELECT X.SNAME,X.SAGE FROM STUDENT X,STUDENT Y

WHERE X.SAGE=Y.SAGE

AND X.SDEPT='MA'

AND Y.SDEPT='MA'

AND X.SNO<>Y.SNO

例3-42:(连接或嵌套查询) 检索至少选修王成刚老师所授课程中一门课程的女学生姓名。

SELECT SNAME FROM STUDENT

WHERE SNO IN(

SELECT SNO FROM SCORE

WHERE CNO IN (

SELECT CNO FROM Teach

WHERE TNAME='王成钢')

AND SSEX='女'

)

例3-43:(嵌套与分组查询) 检索选修某课程的学生人数多于3人的教师姓名。SELECT TNAME FROM TEACH

WHERE CNO IN (

SELECT CNO FROM SCORE

GROUP BY CNO

HA VING 3

)

例3-44:(集合查询) 列出所有教师和同学的姓名和性别。

SELECT SNAME AS "NAME",SSEX AS "SEX" FROM STUDENT

UNION

SELECT TNAME,TSEX FROM TEACH

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

SELECT SNAME FROM STUDENT

WHERE NOT EXISTS

( SELECT * FROM SCORE

WHERE CNO='004'

AND SNO=STUDENT.SNO

)

例3-46:(相关子查询) 求选修了全部课程的学生的姓名。

SELECT SNAME FROM STUDENT

WHERE NOT EXISTS

( SELECT * FROM COURSE

WHERE NOT EXISTS

( SELECT * FROM SCORE

WHERE SNO=STUDENT.SNO

AND CNO=https://www.360docs.net/doc/3d11609122.html,O

)

)

例3-47:(相关子查询) 求至少选修了学生‘96002’所选修的全部课程的学生的学号。SELECT DISTINCT SNO FROM SCORE SC1

WHERE NOT EXISTS(

SELECT * FROM SCORE SC2

WHERE SC2.SNO='96002'

AND NOT EXISTS(

SELECT * FROM SCORE SC3

WHERE SNO=SC1.SNO

AND CNO=https://www.360docs.net/doc/3d11609122.html,O

))

例3-48:(相关子查询) 求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。SELECT SNO,CNO,SCORE FROM SCORE SC1

WHERE EXISTS(

SELECT * FROM SCORE SC2

GROUP BY CNO

HA VING SC1.SCORE>A VG(SCORE)

AND CNO=https://www.360docs.net/doc/3d11609122.html,O

)

例3-49:(相关子查询) 查询被一个以上的学生选修的课程号。

select CNO from COURSE

where exists

(select * from SCORE

group by CNO

having count(SNO)>1

AND CNO=https://www.360docs.net/doc/3d11609122.html,O)

例3-50:(相关子查询) 查询所有未选课程的学生姓名和所在系

SELECT SNAME,SDEPT FROM STUDENT

WHERE NOT EXISTS(

SELECT * FROM SCORE

WHERE SNO=STUDENT.SNO)

没被选修的课程

SELECT CNO FROM COURSE

WHERE NOT EXISTS(

SELECT * FROM SCORE

WHERE CNO=https://www.360docs.net/doc/3d11609122.html,O)

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(SNO,GA VG)

AS SELECT SNO,A VG(score) FROM Score

GROUP BY SNO

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

WHERE SAGE>19

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

SELECT SNO,GA VG FROM STUDENT_GR

WHERE GA VG>88

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

INSERT INTO STUDENT_CS V ALUES('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 GA VG=GA VG+2

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

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

DELETE FROM STUDENT_GR WHERE 1!=2

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

DROP VIEW STUDENT_CS;

DROP VIEW STUDENT_GR

5.SQL数据控制语句:

例5-1:(授权) 给左右邻近同学(用户)授予在表Student上的SELECT权限,并使这

两个用户具有给

其他用户授予相同权限的权限。

GRANT SELECT ON Student TO U099074214

WITH GRANT OPTION

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

GRANT ALL ON Teach TO U099074214

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

GRANT SELECT ON Score TO PUBLIC

例5-4:(授权验证) 观察左右邻近同学查询你所授权的表中的内容。

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

REVOKE SELECT ON Student FROM U099074214

REVOKE ALL ON Teach FROM PUBLIC

REVOKE SELECT ON Score FROM PUBLIC

6.SQL事务处理:

例6-1:(事务回退) 将课程名称表中的‘程序设计’课程学时数修改为80、‘微机原理’课程学时

数修改为70学时,查询全部课程的总学时数后,取消所有修改(ROLLBACK)。再次查询全部课程的总学时数。

注意比较分析两次查询的结果。

UPDATE Course SET CTIME=80 WHERE CNAME='程序设计'

UPDATE Course SET CTIME=70 WHERE CNAME='微机原理'

例6-2:(事务提交) 将课程名称表中的‘程序设计’课程学时数修改为80、‘微机原理’课程学时数

修改为70学时,查询全部课程的总学时数后,确认所有修改(COMMIT)。再次查询全部课程的总学时数。

注意比较分析两次查询的结果。

UPDATE Course SET CTIME=80 WHERE CNAME='程序设计'

UPDATE Course SET CTIME=70 WHERE CNAME='微机原理'

7.存储过程与触发器:

例7-1:(存储过程) 创建一个显示学生总人数的存储过程。

CREATE PROCEDURE STU_COUNT(N OUT NUMBER)

AS

BEGIN

SELECT COUNT(*) INTO N FROM STUDENT;

END;

/

SET SERVEROUTPUT ON;

DECLARE

SCOUNT NUMBER;

BEGIN

STU_COUNT(SCOUNT);

dbms_output.put_line('SCOUNT='||SCOUNT);

END;

/

例7-2:(存储过程) 创建显示学生信息的存储过程STUDENT_LIST,并引用STU_COUNT 存储过程。

create or replace procedure STUDENT_LIST

as

p1 Student.SNO%type;

p2 Student.SNAME%type;

p3 Student.SDEPT%type;

p4 Student.SCLASS%type;

p5 Student.SAGE%type;

p6 Student.SSEX%type;

N number(2);

cursor C_S is select * from Student;

begin

OPEN C_S;

STU_COUNT(N);

FOR i IN 1..N LOOP

FETCH C_S INTO p1,p2,p3,p4,p5,p6;

dbms_output.put_line('SNO:'||p1||’SNAME:’||p2||’SDEPT:’||p3||

'SCLASS:'||p4||’SSEX:’||p5||’SAGE:’||p6);

END LOOP;

END;

/

execute student_list;

例7-3:(存储过程) 创建一个显示学生平均成绩的存储过程。

CREATE OR REPLACE PROCEDURE STU_SA VG(V_SNO IN STUDENT.SNO%TYPE)

AS

V_SNAME STUDENT.SNAME%TYPE;

V_A VG NUMBER(5,2);

c

BEGIN

SELECT A VG(SCORE) INTO V_A VG FROM SCORE WHERE SNO=V_SNO;

SELECT SNAME INTO V_SNAME FROM STUDENT WHERE SNO=V_SNO;

DBMS_OUTPUT.PUT_LINE('SNAME:'||V_SNAME||' '||'AVG_SCORE:'||V_A VG); END;

/

EXECUTE STU_SA VG('97001');

例7-4:(存储过程) 创建显示所有学生平均成绩的存储过程。

create or replace procedure SCORE_A VG

as

Savg number(7,3);

begin

select avg(SCORE) into Savg from SCORE;

dbms_output.put_line('Savg ='|| Savg);

end;

/

SET SERVEROUTPUT ON;

execute SCORE_A VG;

例7-5:(修改数据库表) 在Student表中增加SA VG(N,6,2) 字段。

ALTER TABLE STUDENT ADD SA VG NUMBER(6,2)

例7-6:(存储过程) 创建存储过程,计算每个学生的平均成绩保存到学生表SA VG字段中。create or replace procedure EVERYSTU_A VG

as

v_no Student.SNO%type;

v_name Student.SNAME%type;

v_dept Student.SDEPT%type;

v_class Student.SCLASS%type;

v_age Student.SAGE%type;

v_sex Student.SSEX%type;

v_avg Student.SA VG%type;

m number(2);

cursor C_ADD is select * from Student;

begin

STU_COUNT(m);

OPEN C_ADD;

FOR i IN 1..m LOOP

FETCH C_ADD INTO v_no,v_name,v_dept,v_class,v_age,v_sex,v_avg;

dbms_output.put_line('SNO:'|| v_no ||' SNAME:'||v_name||' SDEPT:'||v_dept||

' SCLASS:'||v_class||' SAGE:'||v_age||' SSEX:'||v_sex||' SAVG:'||v_avg);

END LOOP;

END;

/

Execute EVERYSTU_A VG;

例7-7:(触发器) 当更新学生成绩表SCORE中的学生成绩时,自动计算该学生的平均成绩保存到学生表SA VG字段中。

例7-8:(触发器) 创建包含插入、删除、修改多种触发事件的触发器DML_LOG,对SCORE 表的操作进行记录。用INSERTING、DELETING、UPDATING谓词来区别不同的DML操作。

完整word版超管理系统数据库课程设计含源文件

超市管理系统数据库设计 一、超市管理数据库 超市需建立一个管理数据库存储以下信息: *超市信息包括超市代号,超市名,经理名及超市运营开销。 *一个超市内有多个部门,每个部门有部门号、部门主管姓名、地址,电话及每个月的部门运营 开销。 *每个部门有多个员工,每个员工有员工号、姓名、年龄、性别,职位及月工资。 *每个部门销售多种商品,商品有商品号、商品名、规格,采购成本和零售价格、批发价格。 *商品采购自供货商,供货商有供货商号,供货商名,联系电话,联系地址。 *所有的商品存在商场或仓库中。 *商场有多个仓库,仓库有仓库号,仓库管理姓名、电话及仓库的运营成本。 应完成的主要功能:(1)基础信息管理功能,如超市信息的管理功能,包括录入、修改、查询、输出超市的信息;部门信息的管理功能,包括录入、修改、查询、输出部门的信息;还有员工,商品,采购商,仓库等的信息管理功能。(2)超市的进销存功能模块,包括进货,销售,库存以 及超市盘点等常见功能。 (3)超市的利润统计功能,包括月利润和年利润统计。并能输出各种报表,如员工工资月报表,年报表;每个部门销售的商品数量的月报表;仓库存储商品数量的月报表;超市运营开销和部门运营开销的月报表等。 二、开发环境 数据库选用微软的SQL SERVER。开发环境可以选择:(1)Delphi; (2)Visual Basic; (3) C++ builder; (4) Visual C++;(5)Visual C#;(6)自选。只选择其中的一种软件开发工具实现即可。 三、基本要求 (1)完成上面所提及的所有需求 (2)要求撰写不少于2500字符的Word文档。 (3)文档中至少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。 (4)用户界面设计:采用图形界面菜单驱动,界面要友好,操作要简单,C/S 和B/S架构自由选择。 (5)用户手册,描述软件系统所具有的功能及基本的使用方法。使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。 四、文档格式 1、概述 包括项目背景、编写目的、软件定义、开发环境等内容。 2、需求分析 问题陈述、需完成的功能。

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

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

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兆字节增长;日志文件初

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

软件工程-数据库设计规范与命名规则

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。 B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。 C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。 然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。 D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis, 简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一 DBMS 支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术, 用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示:

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期: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.完成用户界面的设计,对重要数据进行加密。

数据库设计以与源代码

系统建设详细设计 1.数据库设计 管理员用户表信息: 字段名称类型大小字段描述 管理员 ID自动编号长整型管理员身份识别 管理员名称文本50管理员登陆名称 密码文本50管理员登陆的密码 身份文本50有别于学生登陆界面 学生用户表: 字段名称类型大小字段描述 学生 ID自动编号长整型学生学号 学生名称文本50学生名称 密码文本50学生登陆的密码 身份文本50有别于管理员登陆界面学生信息表: 字段名称类型大小字段描述 学生 ID自动编号长整型学生学号 学生名称文本50学生名称 电子邮箱文本50学生的电子邮箱 备注//学生的其他信息 性别文本50性别 入学时间文本50学生入学的时间

班级文本50所在班级 专业文本50所学专业 2系统程序文件设计与编写 与数据库连接的代码: <% db="message.mdb" set Conn=server.createobject("adodb.Connection") conn.open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db) %> 登陆界面代码: 代码为: <% if request("Submit")<>"" then set rs=server.createobject("adodb.recordset")

sql="SELECT username,password from users where username='"&request("username")&"'" rs.open sql,conn,1,3 if rs.bof and rs.eof then msg="错误:用户名不存在" else if rs("password")=request("password") then Session("admin")=true response.redirect "index.asp?users=admin" else msg=" 错误:密码不正确 " end if end if rs.close set rs=nothing Conn.close Set conn = Nothing end if%> 管理员

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库实验报告大全 广工 蔡延光版

自动化学院自动化专业班学号 姓名实验时间2011.3.14 教师评定 实验题目数据定义 实验报告一 一、实验目的与要求 目的:使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。 要求:1、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、DROP 命令实现数据库的创建及删除工作。 2、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。 3、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。 4、完成上述工作后,在SQL SERVER 2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。 二、实验方案 所有实验内容必须在SQL Server 2000的查询分析器中完成,设置查询分析器的结果区为Standard Execute(标准执行)或Executed Grid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。要求完成如下内容: 1.定义数据库 定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。 2.定义下列数据库基本表 在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表: 1)书(book)

列名别名类型及长度是否可为空书号bno char(8)否 类别category varchar(10)否 书名title varchar(40)否 出版社press varchar(30)是 年份book_year Int否 作者author char(20)是 价格price decimal(7,2)否 总藏书量book_total Int否 2)借书证(card) 列名别名类型及长度是否可为空卡号cno char(7)否 姓名name char(8)否 单位department varchar(40)是 类别type char(1)否 3)借书记录(borrow) 列名别名类型及长度是否可为空卡号cno char(7)否 书号bno char(8)否 借书日期borrow_date smalldatetime否 还书日期return_date smalldatetime是 3.完整性约束条件: 主要内容为: 1)确定各基本表的主码; 2)确定各基本表的外码; 3)要求在定义各基本表的同时,确定如下完整性约束条件 1、定义各基本表主码,并且要求主属性不能为空; 2、如果有外码,定义各基本表外码; 3、要求检查借书证中属性Type的值是否为('T','G','U','F')); 4、借书记录borrow基本表中borrow_date默认日期为当前时间。4)确定各基本表哪些字段需要建立索引。

数据库系统设计实验报告

数据库系统设计实验报告 ――教务管理系统 学院:计算机科学与技术 专业:软件工程 班级: 学号: 姓名: 指导老师:

一、概述 项目背景:数据库课程设计 系统名称:教务管理系统 开发环境:SQL Server 2008 二、需求分析 1、系统的概述 ?一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或 者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身 份证号、入学时间等属性。 ?每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这 个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置 有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都 有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言, 虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课 程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机 学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相 同的。 ?教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容 根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2 学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程 安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点 (理工楼234),有的课程是单周上,有的双周,也有是每周都上的。 ?在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择 的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能 给任何学生选择了。 ?学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户 名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多 个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考 试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ?为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而 是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成 绩表中。

基于JAVA的客房管理系统设计(有源代码+数据库) (2)

信息与计算科学专业 课程设计报告书课程名称SQL server 2000 课程设计题目客房管理系统

1概述 1.1 背景 客房管理是旅店管理事务中的一项重要工作,在管理过程中涉及到大量的数 据处理,传统的人工管理已经无法完成胜任。相关数据的处理带来了更大的工作 量。 本系统采用目前比较流行的JDBC-ODBC数据访问技术,成功地将面向对象的 程序设计思想应用到数据库应用程序设计中。 1.2 开发与运行环境 本客房管理系统的开发与运行环境如下: 开发环境:Eclipse 3.1 开发工具:JA V A 1.5 数据库管理系统:SQL Server 2000 运行环境:Windows 2000/XP/2003/Vista 使用说明:用户自己附加数据库,并且在控制面板下的数据工具中的数据源 (ODBC),在用户DSN下添加名为“客房管理”,驱动程序为 SQL-Server。并且安装了JA V A虚拟机,该程序即可使用。 2需求分析 客房资管理系统涉及到:客人信息、客房信息、入住信息、历史信息等多种数据信息。 客房管理系统的用户包括系统管理员。系统管理员负责整理工作,如各种基本信 息的添加、删除和简单的结账计算等操作。 本系统的主要功能包括:

客人信息管理:客人信息数据的添加、删除、结账计算。 数据查询:查看客人信息数据,查看客房信息数据。 数据统计:统计一段时间内的客房情况和月收入等基本统计。 3 系统设计 3.1 系统模块设计 根据系统功能分析和一些旅店客房管理的特点,经过模块化的分析得到如下图所示的系统功能模块结构图。 系统功能模块结构图 客房管理 登记功能 统计功能 查询功能 已入住客房查寻 空房查询 按名字查询客人信息 按客人编号查询客人信息 添加客人信息 删除客人信息 统计入住情况 统计入住率 统计收入 安全管理模块 用户名和密码登陆 注 销

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

数据库实验报告

数据库实验报告 集团文件版本号:(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登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

数据库设计以及源代码

数据库设计以及源代码

系统建设详细设计 1.数据库设计 管理员用户表信息: 字段名称类型大小字段描述 管理员ID 自动编号长整型管理员身份识别 管理员名 称 文本50 管理员登陆名称密码文本50 管理员登陆的密码 身份文本50 有别于学生登陆界面 学生用户表: 字段名称类型大小字段描述 学生ID 自动编号长整型学生学号 学生名称文本50 学生名称 密码文本50 学生登陆的密码 身份文本50 有别于管理员登陆界面学生信息表: 字段名 称 类型大小字段描述 学生ID 自动编 号长整 型 学生学号 学生名 称 文本50 学生名称

电子邮 文本50 学生的电子邮箱箱 备注/ / 学生的其他信息 性别文本50 性别 入学时 文本50 学生入学的时间间 班级文本50 所在班级 专业文本50 所学专业 2 系统程序文件设计与编写 与数据库连接的代码: <% db="message.mdb" set Conn=server.createobject("adodb.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db) %> 登陆界面代码:

代码为: <% if request("Submit")<>"" then set rs=server.createobject("adodb.recordset") sql="SELECT username,password from users where username='"&request("username")&"'" rs.open sql,conn,1,3 if rs.bof and rs.eof then msg="错误:用户名不存在" else if rs("password")=request("password") then Session("admin")=true response.redirect "index.asp?users=admin" else msg="错误:密码不正确" end if end if rs.close set rs=nothing Conn.close Set conn = Nothing end if%> 管理员

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库实验报告范本

数据库实验报告

第一章系统概述 该物流管理系统是对物流公司业务的统一信息化管理,提供在线服务。订单模块实现了业务订单的新增,查询,修改,删除等功能。用户可以以会员身份或者游客身份登陆公司进行网上下单,当完成订单之后可根据系统提供的订单号进行订单状态的查询。公司员工需要对订单审核确认,进行删改查等管理操作。 该系统是B\S结构,运用MVC模式基于J2EE平台开发的,使用Oracle 数据库。我负责的是订单模块的需求分析,系统设计,数据库设计,编码和测试。 该系统所使用的开发工具有:MyEclipse,Tomcat, Rational Rose ,PowerDesigner,PL/SQL等。 第二章系统设计 2.1订单模块功能设计 1.网上下单 本系统是BS结构的WEB系统,我们通过在线方式新增订单。 2.订单审核 因为是物流系统,在网上下单之后,顾客需要将货物送至配送点,经过工作人员审核,才能最后完成一份订单。 3.订单查询 查询功能支持模糊查询,多条件查询。可以满足顾客及工作人员的需要。

4.订单管理 管理功能包括:查看明细,修改,删除。 2.2业务逻辑设计 类图如下所示(本部分不是此次作业重点,这里不再过叙述类图的设计): 第三章数据库设计 3.1 概念模型 本系统模块包含的实体有:订单基本表,订单信息表,订单状态表,货物表,交接单,配送点。 1.各实体ER图如下图3-1到图3-6所示。

图3-1订单基本表实体E-R图 图3-2订单信息表实体E-R图

图3-3订单状态表实体E-R图 图3-4 货物表实体E-R图 图3-5 交接单实体E-R图

数据库系统实验

实验指导书 班级:090402 姓名:郑锦坤

序言 数据库是数据管理的最新技术,是计算机科学的重要分支。通过学习重点让大家掌握数据库技术的程序设计思想和方法,学习开发管理系统的技术,并结合PB8.0以上版本和SQL SERVER 2000以上版本上机环境编程测试。 为了达到这个目的,这里安排五个实验单元。 实验报告的内容 1.题目 描述每个实验的内容是什么。 2.需求分析 用E-R图描述数据库的模式设计及每个关系模式的建立;描述数据字典及程序数据流;每个事件、函数或过程 的头和规格说明; 3.源程序清单和结果 源程序要加注释,要有测试数据及结果。

实验1:学习SQL 语句与SQL SERVER的数据库环境(4学时) 本次实验的主要目的在于学会使用SQL SERVER环境建 库的方法,学会SQL SERVER企业管理器和查询分析器的使用,通过数据库操纵环境,了解库的建立、表的建立、数据库 的查询实现方法。实验数据如下: Student SC

实验报告 1 日期: 一.SQL语句实验题目: 1.建立课程表 2.建立学生表 3.建立选课表 4.查询所有学生的详细信息

SELECT Student.SCLASS, Student.SNO,Student.SNAME, Student.SSEX, Student.SAGE , Student.SDEPT,https://www.360docs.net/doc/3d11609122.html,O,SC.GRADE,https://www.360docs.net/doc/3d11609122.html,AME,Course.CPNO,Course. CCREDIT FROM Course,Student,SC WHERE SC.SCLASS=Student.SCLASS AND SC.SNO=Student.SNO AND https://www.360docs.net/doc/3d11609122.html,O=https://www.360docs.net/doc/3d11609122.html,O 5.查询1班的学生号学及姓名 SELECT SNO,SNAME FROM Student WHERE SCLASS='1' 6.查询‘刘晨’的出生年 7.查询姓‘刘’的学生的详细情况

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.360docs.net/doc/3d11609122.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.360docs.net/doc/3d11609122.html,um =https://www.360docs.net/doc/3d11609122.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

(完整word版)数据库实验报告8

. 西安科技大学 《数据库原理及应用》课程设计报告 题目:寄宿学校管理信息系统的设计与实现 学院:计算机科学与技术学院 专业及班级:软件工程1202及1203班 学号:1208010206 1208010207 1208010303 姓名:李倩魏楠楠王青枝 日期:2014年7月9日

目录 1课程设计目的及意义 (2) 2设计内容及人员分工 (2) 3 需求分析 (2) 3.1 需求陈述 (2) 3.2 功能需求 (2) 3.3 数据需求 (3) 3.4 其它需求 (3) 4 数据库设计 (3) 4.1概念结构设计 (3) 4.2逻辑结构设计 (4) 4.3数据表结构设计 (4) 5 系统功能设计 (6) 6 系统实现 6.1 开发环境 (7) 6.2 数据库的创建与连接技术 (7) 4.3 主要功能的运行结果及代码 (9)

7 总结 (13) 参考文献 (13) 1、课程设计的目的和意义 课程设计目的:通过本课程设计,培养学生具有C/S模式的数据库应用软件系统的 设计和开发能力;熟练掌握SQL Server数据库的使用,熟练掌握使用VC、VB或其它开发工具开发数据库应用的能力;为毕业设计打下坚实的基础。学生根据所学的数据库原理与程序设计的知识, 通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。 课程设计的意义:通过对这个系统的设计,让我们更加熟悉SQL Sever 2008的相关操 作,也巩固了这学期学习的数据库的一些知识,让我们更懂得数据库的重要性无论是在生活中,还是在软件的设计和制作过程中。让我们学会了数据库的设计,经历了数据库设计的几个阶段,比如需求分析,概念结构设计,逻辑结构的设计,都让我们努力的去想,去做,懂得数据库的优化,想想怎么做才是最好的。做出一个比较满意的数据库设计。 2、设计内容及人员分工 魏楠楠:数据库的需求分析,概念设计 王青枝:数据库逻辑设计,表结构设计 李倩:数据库触发器创建实现 3、需求分析 3.1 需求陈述: 某寄宿学校需要开发一个信息管理系统,通过该管理系统可以对学生的日常事务进行管理: 校长助理:可以对学生的档案进行管理,可以进行新增、删除、查询、修改等操作。 财务人员:进行每月的收费和退费工作,每个学生的每月费用包括住宿费,伙食费220,在6-8月收取空调费20,在11-2月收取取暖费20,每个学期的开学初(3月、9月)收取书本费(不定)。住宿费分三种情况:双职工的子女为60,单职工的子女80元,父母均不在本单位工作为100元。每个班的老师在每天要申报本班学生的出勤表,由校长助理完成

数据库系统原理及应用实验全套

数据库系统原理及应用实验指导书 (本科) 福建工程学院计算机与信息科学系计算机软件与理论教研室 浅诺制作 2012年5月

目录 实验一数据定义语言 (1) 实验二 SQL Sever中的单表查询 (5) 实验三 SQL Serve中的连接查询 (8) 实验四 SQL Serve的数据更新、视图 (12) 实验五数据控制(完整性与安全性) (17) 实验六语法元素与流程控制 (22) 实验七存储过程与用户自定义函数 (28) 实验八触发器 (34)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10%

2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S: S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录;

相关文档
最新文档