Oracle数据库-表操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lovely_J/article/details/84350035

插入数据

INSERT INTO table_name(column1,column2,...) VALUES(value1,value2,...)
sysdate 插入当前系统时间
如果某列已经有默认值,在添加的时候也不能不说明就跳过

复制表数据

创建表时复制
CREATE TABLE table_name AS SELECT *|column1,... FROM table_old
在添加时复制
INSERT INTO table_new [(column1,...)] SELECT *|column1,... FROM table_old

修改数据

UPDATE table_name SET column1=value1,... [WHERE conditions]

删除数据

DELETE FROM table_name [WHERE conditions]


约束

(约束名唯一 ;主键在一张表里只有一个,其他可以有多个;非空约束没有名字不能,在添加/修改的时候用ALTER…MODIFY…NOT NULL|NULL,其他都是ADD CONSTRAINT)
constraint_name约束名;table_name表名,column_name列名(属性名)
只有主键约束有自己专门的删除语句,包括主键、外键、唯一、检查约束(没有非空)在更改、禁用、启用和删除的时候都使用下面的语句
更改约束名
可以现在数据字典(user_constraint)中选择表名查看约束名
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name
禁用|启用约束
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT new_constraint_name
删除约束
ALTER TABLE table_name DROP CONSTRAINT new_constraint_name

非空约束 nn_

约束某一列不能有null值
创建CREATE TABLE table_name(column_name datatype NOT NULL,...);
添加ALTER TABLE table_name MODIFY column_name datatype NOT NULL
删除ALTER TABLE table_name MODIFY column_name datatype NULL;

主键约束 pk_

一张表有一个主键约束,可以由多个列合成(联合主键)
创建
CREATE TABLE table_name(column_name datatype PRIMARY KEY,..)
CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)
添加
ALTER table_name ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)

查看添加后的主键信息

DESC tablespace_name
#查看表结构
SELECT constraint_name FROM tablespace_name WHERE table_name='XXX'

删除主键约束
ALTER TABLE table_name DROP PRIMARY KEY[CASCADE]
[CASCADE]可选填,级联的删除,删除外键

外键约束 fk_

创建表的时候添加(主外键类型一致)
CREATE TABLE table1(column_name datatype REFERENCES table2(column_name),...);
如果主表是联合主键,从表的外键不可以只引其中一部分
外键里输入的值可以是空值或者是主键里已经有的值
CONSTRAINT constraint_name FOREIGN KEYY (column_name) REFERENCES KEY(column_name) table_name(column_name) [ON DELETE CASCADE]
ON DELETE CASCADE确定级联

修改表时添加外键
ALTER table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES table_name(column_name) [ON DELETE CASECADE];
禁用外键约束
ALTER table_name DISABLE|ENABLE CONDTRAINT constrain_name
查看当前用户的约束名、约束类型、约束状态
`SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS FROM user_constraints WHERE table_name='大写表名‘``

唯一约束 un_

和非空的区别就是,这一列属性可以有但只能有一个null
有在列级和表级两种书写方式,可以有多个,但每个的名字都需要不一样。个人觉得如果很多列需要设置成唯一的,还是写完一列设计一列吧。
设置列级唯一约束
CREATE TABLE table_name(column_name datatype UNIQUE,...)
在创建表的最后设置唯一约束
CONSTRAINT constraint_name UNIQUE(column_name)

添加唯一约束
ALTER table_name ADD CONSTRAINT constraint_name UNIQUE(column_name)

检查约束 ck_/chk_

让表中数据更有实际意义,让值满足一定条件
设置检查约束
CREATE TABLE table_name(column_name datatype CHECK(expressions),...);
或者在建表最后写CONSTRAINT constraint_name CHECK(epressions)
添加检查约束
ALTER table_name ADD CONSTRAINT constraint_name CHECK(expressions)

猜你喜欢

转载自blog.csdn.net/lovely_J/article/details/84350035