数据库标准语言SQL(三)——基本表的相关操作

数据库标准语言SQL(三)——基本表的相关操作

1.前言

本篇内容主要是基于Oracle数据库的以及配套的可视化软件PL/SQL Developer来进行操作。大体上的操作,代码是和MySQL差不多的,我也是第一次用,还在踩坑。因为以后的代码会很长,用SQL plus命令行好麻烦,而且截图也不好看,所以就用一下,体验一把专业人员的感觉。

2. 基本表的定义

基本表的定义方式有三种。
第一种就是在定义模式的时候同时创建表。但是我觉得咱就从上到下慢慢来,一步到胃的东西,我比较笨,吃不透,哈哈哈哈。

第二种是设置所属的模式。创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式。
RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名。
若搜索路径中的模式名都不存在,系统将给出错误。
这里我们已经在上一篇博文里定义好了模式。大家可以移步到上一篇博文
数据库标准语言SQL(二)——模式的定义
下面就定义了学生表,以及课程表。

/*学生表*/
create table Student(
--学号
Sno char(9) primary key,/* 列级完整性约束条件*/
--姓名
Sname char(20) unique,/* Sname取唯一值*/
--性别
Ssex char(2),
--年龄
Sage smallint,
--院系
Sdept char(20));

/*课程表*/
create table Course(
--课程号
Cno char(4) primary key,/* 列级完整性约束条件*/
--课程名
Cname char(40),
--先行课程
Cpno char(4),
--学分
Ccredit smallint,
foreign key (Cpno) references Course(Cno)
/*Cpno是外码,被参照表是Course,被参照列是Cno*/
);

执行结束后呢,就有:
STUDENT表
course表

第三种就是在表名中明显 的给出模式名。

/*学生选课表*/
create table ZHANG.SC(
Sno char(9),
Cno char(4),
--成绩
Grade smallint,
primary key (Sno,Cno),/* 主码由两个属性构成,必须作为表级完整性进行定义*/
foreign key (Sno) references Student(Sno),/* 表级完整性约束条件,Sno是外码,被参照表是Student */
foreign key (Cno) references Course(Cno)
);

可以看到,模式名是ZHANG,关于模式以及定义大家可以再一次移步到上一篇博文
数据库标准语言SQL(二)——模式的定义

上面的结果执行完毕后呢,是这样的:

SC表的建立
我们可以看到已经带上了ZHANG的模式名。

3.修改基本表

#添加student表的入学时间列
alter table Student add Sentrance date;

修改前
修改后
我们可以发现,多出了黄色的一行,其实是表的一列,在软件上表现的就是行。这里需要注意的是,新增加的列一律为空值,我还没有添加太多的数据,所以看不出来。

下面是修改语句,但是报错了。这就是Oracle,我按照书上的语句,有一些就是不太行,还是得学人家的手册哦!!!!!!
这给不行的原因百度了一下是因为:这一属性列里已经有值了,无法使用ALTER COLUMN,需要清除掉被修改的字段里的值,否则不能成功。

alter table Student alter column Sno int;

在这里插入图片描述

#修改Sname数据类型为int
alter table Student modify Sname int;
#改回来
alter table Student modify Sname char(10);

这个地方也有一个小坑,还没有解决,不知道你们发现了没有。
修改前
修改后

#增加课程名称必须取唯一值
alter table Course add unique(Cname);

修改前
修改后

4.删除基本表

删除表呢,有两种。

1.RESTRICT限定

欲删除的基本表不能被其他表的约束所引用
如果存在依赖该表的对象,则此表不能被删除

drop table SC restrict;

删除SC表
这个restrict是默认的,不知道为什么你脱裤子放屁,多此一举的时候报错了?然后你给它删了

drop table SC;

删之前
删了后
芜湖起飞!,以后再也不多打字了。
来一个有关系的,不能删除的试试

drop table Student;

非常好。
在这里插入图片描述

2.CAEATE级联

在删除基本表的同时,相关的依赖对象一起删除
好了,当你按照课本,按照老师滴ppt

drop table Student cascade;

hhhhh
当咱们百度一哈子怎么在Oracle里面删表:

drop table Student cascade constraints;

在这里插入图片描述

合着,就是把带限制的那个给补这给暴力删除了呗!!!!

那么这次关于基本表的建立,修改,删除就这样了。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑾瑜含章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值