赞
踩
一、 实验目的和要求
(1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法
(2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵
(3) 加深对关系数据模型的数据结构和约束的理解
二、实验原理及内容
实验内容如下:
1. 了解并掌握SQLPlus环境的使用
(1) 以管理员身份登录到Oracle SQLPlus;
CREATE USER B1704 IDENTIFIED BY XXX;
(2) 以学号为用户名创建一个用户,并授予其权限;
Grant DBA to XXX;
(3) 管理员退出Oracle,重新用新创建的用户登录Oracle。
Connect B1704
2.用SQL的DDL语句图书管理系统创建基表
CREATE TABLE B (B# CHAR(4) NOT NULL, CLASS CHAR(15) NOT NULL, BNAME CHAR(50), AUTHER CHAR(25), PUBLISH CHAR(25), VALUE FLOAT(4), PRIMARY KEY(B#)); CREATE TABLE R (R# CHAR(4) NOT NULL, RNAME CHAR(20) NOT NULL, COMPANY CHAR(50), POSITION CHAR(20), PRIMARY KEY(R#)); CREATE TABLE BR (B# CHAR(4), R# CHAR(4), BDATE DATE, OTHER CHAR(50), FOREIGN KEY(B#)REFERENCES B(B#), FOREIGN KEY(R#)REFERENCES R(R#));
3.为基表“读者”补充定义:职称只能取初级、中级、高级之一。
ALTER TABLE R ADD CHECK(POSITION IN(‘初级’,’中级’,’高级’));
4.用SQL的DML语句向上述基表中增加、修改和删除数据
(1) 向三个基表中插入数据 INSERT INTO B VALUES (‘0001’,’TP31’,’计算机组成’,’WANG’,’人民教育’,66.00); INSERT INTO B VALUES (‘0002’,’TP32’,’数据库系统概论’,NULL,’高等教育’,50.00); INSERT INTO B VALUES (‘0003’,’TP33’,’数据结构’,NULL,NULL,30.50); INSERT INTO R VALUES (‘T201’,’LIXIN’,’计算机系’,’中级’); INSERT INTO R VALUES (‘L001’,’ZHANGHUA’,’计算机系’,’高级’); INSERT INTO BR VALUES (’0001’, ‘Z003’,to_date(‘20XX-3-3’,’yyyy-mm-dd’),NULL); INSERT INTO BR VALUES (’0001’, ‘T201’, to_date(‘20XX-3-6’,’yyyy-mm-dd’),NULL); INSERT INTO BR VALUES (’0005’, ‘L001’, to_date(‘20XX-4-11’,’yyyy-mm-dd’),NULL); (2) 数据的修改和删除 写出对应的SQL语句 ① UPDATE B SET AUTHER=’LIUWEI’, PUBLISH=’高等教育’ WHERE B#=0001; ② UPDATE B SET CLASS#=’TP50’ WHERE BNAME LIKE ‘%数据库%’; ③ UPDATE B SET VALUE=VALUE*1.10; ④ DELETE FROM BR WHERE R# LIKE ‘s%’; DELETE FROM R WHERE R# LIKE ‘s%’;
5.用SQL的QL语句完成查询
(1) SELECT BNAME, AUTHER FROM B;
(2) SELECT RNAME,POSITION FROM R,BR
WHERE R.R#=BR.R# AND COMPANY=‘南京邮电大学’;
(3) SELECT * FROM B
WHERE VALUE>ALL(SELECT VALUE FROM B WHERE AUTHER=’LIWEI’) ;
(4) SELECT MAX(VALUE),MIN(VALUE),AVG(VALUE) FROM B GROUP BY AUTHER;
(5) SELECT RNAME,COMPANY FROM R
WHERE R# IN (SELECT R# FROM BR GROUP BY R# HAVING COUNT(*)>=3);
6.用SQL的DDL语句创建视图、索引
(1) CREATE VIEW V1(COMP,R_NUM,BORROW_NUM)
AS SELECT R.COMPANY,COUNT(DISTINCT B.B#),COUNT (B.B#) FROM B,BR,R
WHERE B.B#=BR.B# GROUP BY COMPANY;
(2) SELECT * FROM V1;
(3)CREATE INDEX I1 ON B(PUBLISH DESC);
7.为当前用户创建一张结构与scott用户的员工表emp表相同的员工表。
Connect scott/tiger
Grant all privileges on emp to wang;
Connect wang/root
Create table employee as select * from scott.emp;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。