数据库原理实验一 SQL语言 实验报告

                                     广州大学学生实验报告
                                       实验一:SQL语言

此篇博文主要分享本人的SQL语言—实验报告
此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合!

数据库原理实验之实验一:SQL语言
软件:Oracle SQL Developer

实验今天刚开始,然后花了几个小时做完了,花费时间多说明之前学的SQL语句记忆还不劳,还得继续苦练,加油!

在这里插入图片描述

一、数据库的创建与删除

1)使用Oracle SQL Developer创建连接
1、新建连接,system用户,密码是之前设置的。
在这里插入图片描述

2、创建新用户,名字为cc,密码是:c123,然后点击新建连接,输入用户名和密码即可。

create user cc identified by c123;
grant resource,connect to cc;

结果如下:
在这里插入图片描述

此次实验涉及的数据表:
在这里插入图片描述

2)创建以下数据表(Student(主码为SNO)、Course(主码为CNO)、SC(主码为(SNO、CNO)),其中SNO引用Student的SNO属性,CNO引用Course的CNO属性)
执行以下语句即可创建Student,Course,SC表:

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)
         );


create table Course
  (
   Cno varchar2(5) primary key,
   Cname varchar2(20) not null,
   CPno varchar2(5),
   Ccredit int
  );


  create table SC
    (
  Sno varchar2(17),
  Cno varchar2(5),
  Grade numeric(5,2),
  primary key(Sno,Cno),
  foreign key(Sno) references Student(Sno),
  foreign key(Cno) references Course(Cno)
);

3)修改Course表的CPNO,使其为外码,引用Course表的CNO属性。

--执行语句
alter table course add constraint fk1 
foreign key(CPno) references course(Cno);
--表示CPno是外码,被参照表是Course,被参照列是Cno

4)修改Student表格,用SQL语句为Student表格添加一个“入学时间”属性,属性名为Senrollment。

ALTER TABLE Student ADD Senrollment DATE;  

5)向三个表格中插入3条数据,数据内容自编。
先查询日期格式语句:select sysdate from dual;
结果如下:
在这里插入图片描述
然后,向Student表中插入三行数据:

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');

select * from Student; 

查看结果如下:
在这里插入图片描述
然后,向Course表中插入三行数据:

insert into Course values('1','离散数学',null,3);
insert into Course values('2','数据结构','1',3);
insert into Course values('3','数据库','2',3);

select * from Course; 

查看结果如下:
在这里插入图片描述
最后向SC表中插入三行数据:

insert into SC values('201000610002','1',92);
insert into SC values('201000610004','2',88.5);    
insert into SC values('201000610003','3',96.5);

select * from SC;

查看结果如下:
在这里插入图片描述
6)限定Ssex的值只能为“男”或者“女”。

--这个在创建表时已经限定了,具体语句为:
  Ssex   char(2)  CHECK(Ssex IN ('男','女') ),

7)修改Course表格,用SQL语句为Course表格添加一个“说明”属性,属性名为“Cdesc”,类型为varchar2,长度为200。

--执行语句:
alter table Course add Cdesc varchar2(200);
--脚本输出:Table COURSE 已变更。

查看结果如下:

在这里插入图片描述
8)更改Course表格的Cdesc属性,使其长度变为500。
执行语句:

alter table Course modify(Cdesc varchar2(500));
--脚本输出显示:Table COURSE已变更。

9)删除刚建立的属性Cdesc。
执行语句:

 alter table Course drop column Cdesc;

再查询Course表,结果可见Cdesc属性已经删除了,如下:

在这里插入图片描述

二、数据查询

1、创建新的用户并授权

create user bb identified by b123;
grant resource,connect,DBA to bb;

2、以用户bb的身份建立连接,并在此连接下执行后面的操作。
在这里插入图片描述
3、运行以下代码,删去旧的同名数据表:

Declare
tmp integer default 0;
Begin
select count(*) into tmp from user_tables where table_name='RB';
if(tmp>0) then
execute immediate 'drop table RB';
end if;
select count(*) into tmp from user_tables where table_name='READER';
if(tmp>0) then
execute immediate 'drop table READER';
end if;
select count(*) into tmp from user_tables where table_name='BOOK';
if(tmp>0) then
execute immediate 'drop table BOOK';
end if;
end;

在这里插入图片描述

问:为何要先删去RB?能不能先删去READER? 
答:不能先删去READER! 答:RB表中记录了员工的借阅书籍记录,RB表中的RNO属性参照的是READER表中
   的RNO列,如果先删去READER,则会使RB表不满足其表级完整性约束条件。

4、拷贝代码运行,建立表格并插入数据

create table Reader
(
    RNO	varchar2(4) primary key,
    Rname	varchar2(10) not null,
    Rsex 	varchar2(2),
    Rage	integer,
    Rboss	varchar2(10),
    Raddress	 varchar2(30)
) ;

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R001','张三',20,'男','李四','416');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R002','张三',35,'女',null,'417');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R003','李四',30,'男',null,'416');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R004','王五',20,'男',null,'417');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R005','马六',40,'男',null,'416');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R006','刘三',20,'男',null,'417');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R007','王四',40,'男','李四','416');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R008','李小龙',20,'男','李四','417');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R009','王小倩',40,'男','李四','416');

insert into Reader (RNO,Rname,Rage,Rsex,Rboss, Raddress) 
values('R010',
  • 16
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据库随课实验数据库原理及应用》 实验类别: 课内实验 实验课程名称: 数据库原理及应用 实验室名称:软件工程实验实验课程编号: 02060007 总学时: 56 学 分: 3.5 适用专业: 计算机科学与技术、网络工程、软件工程 先修课程: 离散数学、计算机导论及操作、数据结构 实验在教学培养计划中地位、作用: 数据库原理及应用是一门理论与实践相结合的课程,上机实验环节是本课程的重要组成部分。实验的目的是为了配合课堂教学,进一步强化对数据库原理的理解。实验的任务是要结合数据库原理SQL Server 2000数据库系统,熟练掌握和深入理解课堂教学内容,实现从理论到实践的统一。 实验SQL的数据定义(2学时) 1、实验目的 掌握DBMS的数据定义功能 掌握SQL语言的数据定义语句 2、实验内容 创建、删除表 查看、修改表的定义 理解索引的特点 创建和删除索引 3、实验要求 熟练掌握SQL的数据定义语句CREATE、ALTER、DROP 写出实验报告 4、实验步骤 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 创建、删除表,例如: CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1) , Sage INT, Sdept CHAR(15))

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值