建表相关操作

数据类型(只做简单介绍,不做深入了解)

用户可以简单将数据类型理解为一种对一列值的潜在约束

  • number(l,s)——数值型,最大长度38,其中l表示总位数,s表示小数点后位数,默认为0
  • varchar2(l)——字符串类型,l表示其最大长度,最长400字节;通常英文单词占2字节汉字占3字节
  • date——日期类型;插入数据时额外注意插入数据的数据类型与表中列的数据类型匹配

创建简单表

一、基本语法

create table t
(
列名1 数据类型1,
列名2 数据类型2,
......,
列名n 数据类型n
);

示例如下:

--创建学生表s,其中包含字段为学号,姓名,性别
create table s(
	sno number(5),
	sname varchar2(12),
	sex varchar(3)
);

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

重命名表

rename 原表名 to 新表名;

创建表副本

create table 副本表名 as select * from 原表名;

修改表

(1)添加列

alter table 表名 add 列名 数据类型 [约束] [default 默认值];

(2)删除列

alter table 表名 drop column 列名;

(3)修改列

alter table 表名 modify 列名 数据类型 [约束] [default 默认值];

(4)增加约束

alter table 表名 add constraint 约束名 [uniquee|primary key |check](列名);
alter table 表名 add constraint 约束名 foreign key(外键列) references 主表名(主表主键列);

(5)删除约束

alter table 表名 drop constraint 约束名;

删除表

drop table 表名;

约束

约束分为列级约束和表级约束,列级约束可以理解为对一列值的限制,建表时跟在列名定义后。表级约束可以理解为可以作用于多列值一起进行限制,在所有列名定义之后书写。

(1)not null——规定单列值不为空
示例如下:

create table s(
	sno number(5) not null,
	sname varchar2(12),
	sex varchar(3)
);

(2)unique——规定单列或多列值不重复

--列级约束
create table s(
	sno number(5) unique,
	sname varchar2(12),
	sex varchar(3)
);
--表级约束
create table s(
	sno number(5),
	sname varchar2(12),
	sex varchar(3),
	constraint 约束名 unique (列名1,列名2,...,列名n)
);

(3)primary key——主键约束(区分两条数据不同潜在列值不重复且不为空),可作用于多列

暂时可将主键认为是not null 与uniquee的结合,其本质是为了区分两条数据,若主键设置联合主键(多列)会发生细微变化

--列级约束
create table s(
	sno number(5) primary key,
	sname varchar2(12),
	sex varchar(3)
);
--表级约束
create table s(
	sno number(5) primary key,
	sname varchar2(12),
	sex varchar(3),
	constraint 约束名 primary key (列名1,列名2,...,列名n)
)

(4)foreign key——外键约束,可作用于多列
外键的定义为在一个表中做主键,在另一个表中不做主键的列。举个栗子吧,假设有两张表一张课程表(课程编号,课程名)一张成绩表(学号,课程编号,成绩)其中课程编号在课程表中做主键唯一区分两行数据,课程编号在成绩表中又不做主键,所以课程编号可以称为成绩表的外键,同时成绩表的课程编号继承课程表中的课程编号。

  • 外键可为空,可重复,若有值则值必须在外键当主键的表中存在该值
--列级约束
create table course(
	cno number(5) primary key,
	cname varchar2(14)
);
create table sc(
	sno number(5),
	cno number(5) references course(cno)
);

--表级约束
create table course(
	cno number(5) primary key,
	cname varchar2(14)
);
create table sc(
	sno number(5),
	cno number(5),
	constraint c foreign key (cno) references course(cno)
);

(5)check——检查约束,可作用于多列

--列级约束
create table t(
       id number(5),
       name varchar(12),
       age number(2) check(检查条件)
);
--表级约束
create table t(
       id number(5),
       name varchar2(12),
       age number(2),
       constraint 约束名 check(检查条件)
);
  • where后条件都可在检查条件后写

修改约束

注释

(1)为表添加注释

comment on table 表名 is '该表注释';

(2)为列添加注释

comment on column 表名.列名 is '该列注释';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值