orcale操作

本文详细介绍了如何在 Oracle 数据库中创建表、修改表(包括添加新列、修改列属性、删除列和重命名表)以及设置约束(如主键、唯一、非空约束)。通过具体的 SQL 语法示例,展示了如何实现这些操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建表

语法

CREATE TABLE schema_name.table_name (
column_1 data_type column_constraint,
column_2 data_type column_constraint,

table_constraint
);


首先,在CREATE TABLE子句上,指定新表所属的表名和模式名。

其次,列出括号内的所有列。如果表有多列,则需要用逗号分隔每个列定义。列定义包括列名称后面它的数据类型例如NUMBER,VARCHAR2和列约束如NOT NULL,主键,检查。

第三,如果适用,您可以添加表约束,例如,主键,外键,检查。

但是也需要注意,创建表也需要授权。




CREATE TABLE ot.persons(
person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
first_name VARCHAR2(50) NOT NULL,
last_name VARCHAR2(50) NOT NULL,
PRIMARY KEY(person_id)
);
该person_id是标识列,它标识表中的唯一行。person_id列的数据类型是NUMBER。该子句GENERATED BY DEFAULT AS IDENTITY指示Oracle生成一个新整数,并在每次向表中插入新行时将其用于该列。(这个12C才有的功能)

二、修改表

语法

ALTER TABLE table_name action;
首先,指定要修改的表名。

其次,指示要在表名后执行的操作。



操作形式

添加一个或多个列

修改列定义

删除一列或多列

重命名列

重命名表



1 添加新列

ALTER TABLE table_name
ADD column_name type constraint;


ALTER TABLE persons
ADD birthdate DATE NOT NULL;

要同时向表中添加多个列,请将新列放在括号内



语法

ALTER TABLE table_name
ADD (
column_name type constraint,
column_name type constraint,

);



ALTER TABLE persons
ADD (
phone VARCHAR(20),
email VARCHAR(100)
);

2 修改列的属性

语法

ALTER TABLE table_name
MODIFY column_name type constraint;



ALTER TABLE persons MODIFY birthdate DATE NULL;
要修改多个列



语法

ALTER TABLE table_name
MODIFY ( column_1 type constraint,
column_1 type constraint,
…);



ALTER TABLE persons MODIFY(
phone VARCHAR2(20) NOT NULL,
email VARCHAR2(255) NOT NULL
);

3 删除现有列

语法



ALTER TABLE table_name
DROP COLUMN column_name;




ALTER TABLE persons
DROP
COLUMN birthdate;

要同时删除多个列,请使用以下语法:



ALTER TABLE table_name
DROP (column_1,column_2,…);




ALTER TABLE persons
DROP
( email, phone );

4 表重命名

语法

ALTER TABLE table_name
RENAME TO new_table_name;

ALTER TABLE persons RENAME TO people;

三、约束

什么是约束?

两个或多个实体或实体建模体之间的几何特征的界限(wiki)。

对于表中数据的限定或者,多表之间的数据关系的一种限定。

主键约束

外键约束

唯一约束

检查约束

非空约束

1 主键约束

主键是表中列的组合列,用于唯一标识表中的行。

规则

主键列不能包含NULL值或空字符串。

主键值在整个表中必须是唯一的。

不应随时间更改主键值。

2 唯一约束

唯一约束是一种完整性约束,可确保存储在列或列组中的数据在表中的行中是唯一的。

语法

CREATE TABLE table_name (

column_name data_type UNIQUE

);
– 也可以
CREATE TABLE table_name (
…,
UNIQUE(column_name)
);

3 非空约束

Oracle NOT NULL约束指定列不能包含NULL值。Oracle NOT NULL约束是内联约束,通常在CREATE TABLE语句的列定义中使用。

语法

CREATE TABLE table_name (

column_name data_type NOT NULL

);

修改表加非空
ALTER TABLE table_name MODIFY ( column_name NOT NULL);
 


CREATE TABLE surcharges (
  surcharge_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
  surcharge_name VARCHAR2(255) NOT NULL,
  amount NUMBER(9,2),
  PRIMARY KEY (surcharge_id)
);
插入

INSERT INTO surcharges(surcharge_name, amount)
VALUES(‘Late order placement’,10);

再插入

INSERT INTO surcharges(surcharge_name, amount)
VALUES(null,20);

去除非空

ALTER TABLE table_name MODIFY ( column_name NULL)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值