第九章:Oracle表和约束

创建表
第一种方式,语法如下:

--column_name:列名
--type:数据类型
--注意:多个列名之间用逗号分隔,最后一列不要加逗号
create table table_name(
column_name type,
column_name type
)
第二种方式,语法如下:

--这种方式会自动导入数据,如不想要数据,可以加条件where 1=2,当然也可以导入你想要的数据,就看你加的什么条件了
create table table_name
as
select * from departments
--where 1=2
修改表
语法如下:

-- table_name:表名,column_name:列名,type:数据类型
 
-- 表重命名
-- old_tablename:原表名,new_tablename:想更改的表名
rename old_tablename to new_tablename
 
-- 新增列
alter table table_name add(column_name type);
 
-- 修改列
-- 方括号里为可选,not null:不能为空,default:默认值
alter table table_name modify(column[not null][default exp] type)
 
-- 列重命名
alter table table_name rename column old_column to new_column
 
-- 删除列
alter table table_name drop column column_name
 
-- 设置列不可用
alter table table_name set unused column column_name
 
-- 删除不可用列
alter table table_name drop unused column
 
-- 清空表,无法回滚
truncate table table_name
 
-- 删除表里所有数据,可以回滚
delete from table_name
 
--在数据库中删除整个表
drop tabel table_name


数据类型:
字符数据类型 char 、varchar2、long…
数字类型 int、number、decimal…
日期类型 date
其它数据类型 raw、long raw、Blob、Clob、Bfile

创建约束
约束有下面五种:
1、非空约束:NOT NULL
2、唯一约束:UNIQUE
3、检查约束:CHECK
4、主键约束:PRIMARY KEY
5、外键约束:FOREIGN KEY
作用范围:

列级约束只能作用在一个列上
表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上)
注意:

NOT NULL只能使用到列级约束,其他约束两种方式皆可
创建主键约束相当于创建了NOT NULL、和UNIQUE两个约束,一个表只能有一个主键
语法:

--con_name:约束名,这个约束名起不起都无所谓,只是到时候查看约束以及对约束进行操作的时候的方便,见名知意
--列级约束在定义列的时候跟在列后面
--表级约束定义完列以后单独在下面定义
 
constraint con_name Check(约束条件)
constraint con_name foreign key(外键名) references 主键表(主键)
 
--这两个是在定义外键的时候可以加的
on delete cascade --级联删除
on delete set null --级联置空
下面举个例子:

create table employees(
    employee_id number(8),
 
    --列级约束
    hire_date date not null,
    dept_id number(8),
    email varchar2(8) constraint UQ_email unique,
    first_name varchar2(8),
 
    --表级约束
    constraint PK_emp_id primary key(employee_id),
    constraint UQ_first_name unique(first_name),
    constraint FK_dept_id foreign key(dept_id) references departments(department_id) ON DELETE CASCADE
)
对约束的一些操作:

--table_name:表名,con_name:约束名
 
--无效化约束,也就是相当于禁用,一个意思
alter table table_name disable constraint con_name
 
--激活约束,有禁用就有启用,相当于启用
alter table table_name enable constraint con_name
 
--删除约束
alter table table_name drop constraint con_name
 
-- 这个表是用户下的一些约束信息,可以看一看,注意表名要大写
select constraint_name,constraint_type,search_condition from user_constraints where table_name='TABLE_NAME'
 
-- 查看表的列上有哪些约束,同样的表名要注意大写
select constraint_name ,column_name from user_cons_columns where table_name='TABLE_NAME'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值