实验一 SQL语言

实验一 SQL语言

  1. 数据库的创建与删除
    实验目的
    (1)掌握利用Oracle Database Configuration Assistant工具来创建和删除Oracle数据库,掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义,并掌握Oracle中的用Alter命令 和Drop命令对表的修改和删除。
    实验内容
  2. 用Oracle Database Configuration Assistant创建数据库
    开始->所有程序->Oracle-……->配置和移植工具->Database Configuration Assistant(记住创建数据库时使用的用户名和密码)
  3. 打开SQLDEVELOPER,用上一步设置的用户名和密码建立连接。

注:也可以不用密码,用管理员身份登录到本地Oracle数据库,可以采用“操作系统验证”,连接类型选择“本地/继承”,角色选择SYSDBA。Oracle管理员SYS、SYSTEM的密码为oracle,若密码有误,启动CMD进入命令提示符,执行命令:
a) SQLPLUS / as SYSDBA
b) Alter user SYSTEM identified by 新密码;(新密码自行设置)
c) Conn SYSTEM/新密码; --用SYSTEM用户登录,同样可以修改SYS的密码

  1. 创建以下数据表(Student(主码为SNO)、Course(主码为CNO)、SC(主码为(SNO、CNO)),其中SNO引用Student的SNO属性,CNO引用Course的CNO属性)
  2. 向三个表格中插入3条数据,数据内容自编。
  3. 修改Student表格,用SQL语句为Student表格添加一个“入学时间”属性,属性名为Senrollment。
  4. 限定Ssex的值只能为“男”或者“女”。
  5. 修改Course表格,用SQL语句为Course表格添加一个“说明”属性,属性名为“Cdesc”,类型为varchar2,长度为200。
  6. 更改Course表格的Cdesc属性,使其长度变为500。
  7. 删除刚建立的属性Cdesc。
  8. 修改Course表的CPNO,使其为外码,引用Course表的CNO属性。
    Student表
    属性名 类型 长度 是否空 含义
    SNO varchar2 17 主码(非空) 学生编号
    Sname varchar2 10 否 姓名
    Sage integer 年龄
    Ssex varchar2 2 性别
    Sdept varchar2 20 所在系
    Course表
    属性名 类型 长度 是否空 含义
    CNO varchar2 5 主码(非空) 课程编号
    Cname varchar2 20 否 课程名
    CPNO varchar2 5 先修课程
    Ccredit integer 学分
    SC表
    属性名 类型 长度 是否空 含义
    SNO varchar2 17 主属性(非空) 学生编号
    CNO varchar2 5 主属性(非空) 课程编号
    Grade numeric 5,2 成绩

注意保存好相应的脚本文件,以便下次单独运行
实验报告要求
按照指导书中的实验内容顺序完成实验,回答提出的问题,补全相关的SQL语句。对于纯文字不好描述的内容,可通过实验截图辅助说明。建议问题回答部分和SQL语句部分用红色字体突出显示。
部分提示(黄色底的代码可以直接粘贴运行):
如果以SYSDBA的身份连接到数据库,则看到大量的系统数据表:

为方便查看自己创建的数据表,可以创建新的用户,以新用户的身份连接:
create user cc identified by ccpassword ;
grant resource, connect to cc;
注解:新的用户名是cc,密码是ccpassword,授予两种角色(ORACLE预定义的角色)的权限。
执行结果:
在“其他用户”栏目中可以看到:
以这个新的用户建立新的连接:连接名任意(和上一个不重复即可),用户名和密码要和刚才创建的一致。

连接成功之后,执行:
CREATE TABLE Student
(Sno varchar2(17) primary key,
Sname varchar2(10) not null UNIQUE,
Sage INT,
Ssex char(2) CHECK(Ssex IN (‘男’,‘女’) ),
Sdept varchar2(20));

在此连接里,只看到用户自己创建的表:

执行下面的语句修改表结构:
ALTER TABLE Student ADD Scome DATE;
看到表的结构如下:

查ORACLE帮助:
default Oracle date format is “DD-MMM-YY”.
为了看实际的日期格式,执行语句:
SELECT SYSDATE from dual;
得到以下运行结果:

26-4月 -12
执行以下语句插入数据:
INSERT INTO Student VALUES (‘201000610002’,‘罗嘉铭’,18,‘男’,‘网络工程’,‘01-9月-2010’);
INSERT INTO Student VALUES (‘201000610003’,‘叶茵’,17,‘女’,‘软件工程’,‘01-9月-2010’);
INSERT INTO Student VALUES (‘201000610004’,‘陈凯怡’,19,‘女’,‘网络工程’,‘01-9月-2010’);
INSERT INTO Student VALUES (‘201000610001’,‘潘阳阳’,20,‘男’,‘计算机科学’,‘01-9月-2010’);
INSERT INTO Student VALUES (‘201000610005’,‘林祥宇’,19,‘男’,‘软件工程’,‘01-9月-2010’);

可以看到以下的结果:

尝试一下用可视化界面输入数据?

在性别一栏填入其他字:

  1. 数据查询
    实验目的
    熟练掌握使用SQL查询语言。完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询)。

实验内容
现有一个单位内部的小型图书借阅系统,假设每本图书的数量无限制,并且可以借给任何单位成员,每个单位成员可以借多本书,单位成员与图书的关系是多对多的关系。假设系统中仅有三个关系模式。
数据表结构
Reader表
属性名 类型 长度 是否空 含义
RNO varchar2 4 员工编号(主码)
Rname varchar2 10 否 员工姓名
Rsex varchar2 2 性别
Rage integer integer 年龄
Rboss varchar2 10 直接上司
Raddress varchar2 30 办公地点
Book表
属性名 类型 长度 是否空 含义
BNO varchar2 4 书本编号(主码)
Bname varchar2 50 否 书名
Bauthor varchar2 50 作者
Bpress varchar2 50 出版社
Bprice varchar2 numeric(6,2) 价格
RB表
属性名 类型 长度 是否空 含义
RNO varchar2 4 员工编号
BNO varchar2 4 书本编号
RBdate date 借阅日

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值