Oracle数据类型
字符型
CHAR(n)、NCHAR(n)
VARCHAR2(n)、NVARCHAR2(n)
数值型
NUMBER(p,s)
FLOAT(n)
日期型
DATE
TIMESTAMP
其他类型
BLOB
CLOB
创建表
CREATE TABLE table_name(column_name(列名) type(数据类型),...)
添加注释
--字段添加注释
comment on column 表名.字段名 is '注释内容';
--表名添加注释
comment on table 表名 is '注释内容';
修改表的结构
添加字段
ALTER TABLE table_name ADD column_name(列名) datatype(数据类型);
更改字段的数据类型
ALTER TABLE table_name MODIFY column_name datatype;
删除字段
ALTER TABLE table_name DROP COLUMN column_name;
修改字段名
ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
修改表名
RENAME table_name To new_table_name;
删除表
删除表的全部数据(表结构存在)
TRUNCATE TABLE table_name;
删除表结构
DROP TABLE table_name;
操作表中的数据
添加数据
INSERT INTO table_name(column1,column2,...) VALUES(value1,value2,...);
sysdate:代表当前时间(DATE类型)
向表中添加默认值
创建表时类型后跟 default 默认值
修改默认值
ALTER TABLE table_name MODIFY column1 default 默认值
复制表数据
在建表时复制
CREATE TABLE table_new AS SELECT column1,...|*(复制全部字段使用*)FROM table_old
在添加时复制
INSERT INTO table_new(该表存在) [(column1,...)] SELECT column1,...|* FROM table_old;
修改数据
UPDATE table_name set coumn1 = values,... [WHERE conditions(修改条件)]
删除数据
DELETE from table_name [WHERE conditions]
Oracle约束
非空约束
主键约束
外键约束
唯一约束
检查约束
约束的作用
定义规则
确保完整性
非空约束
在创建表时设置非空约束(NOT 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 datatpe NULL;
主键约束(pk开头,确保表中每一行数据的唯一性,一个表只能设置一个主键约束)
在创建表时设置主键约束(PRIMARY KEY)
create table table_name(column_name datatype PRIMARY KEY,...);
联合主键:
CONSTRAINT constraint_name(约束名) PRIMARY KEY(column_name1,...);
列:create table userinfo (id number(6,0), username varchar2(20), userpwd varchar(20), constraint pk_id_username primary key(id,username));
在修改表时添加主键约束
alter table table_name ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,...);
更改约束名称
alter table table_name RENAME CONSTRAINT old_name TO new_name;
删除主键约束
alter table table_name DISABLE(禁用主键)|ENABLE(启用主键) CONSTRAINT constraint_name;
alter table table_name DROP CONSTRAINT constraint_name;
alter table table_name DROP PRIMARY KEY[CASCADE(引用的外键约束删除)];
外键约束(fk开头)
在创建表时设置外键约束(主表的字段必须为主键,主从表的外键字段类型一致)
CREATE TABLE table1(从表)(column_name datatype PEFERENCES tabble2(主表)(column_name),...);
CONSTRAINT contraint_name(外键约束名) FOREIGN KEY(column_name) REFERENCES table_name(column_name) [ON DELETE CASCADE(主表字段删除时,从表的外键约束也会删除)]
列:create table userinfo_new (id varchar2(10) primary key, typeid_new varchar2(10), constraint fk_typeid_new foreign key(typeid_new) references userinfo(typeid) on delete cascade);
在修改表时添加外键约束
alter table table_name ADD CONSTRAINI constraint_name(外键约束名) FOREIGN KEY(column_name) REFERENCES table_name(column_name) [ON DELETE CASCADE]
删除外键约束
alter table table_name DISABLE(禁用外键约束)|ENABLE(启用外键约束) CONSTRAINT constraint_name
alter table table_name DROP CONSTRAINT constraint_name;
唯一约束(un开头)
在创建表时设置唯一约束(UNIQUE)
CREATE TABLE table_name (column_name datatype UNIQUE,...);
CONSTRAINT constraint_name(约束名) UINQUE(column_name);
在修改表时添加唯一约束
alter table table_name ADD CONSTRAINT constraint_name UNIQUE(column_name);
删除唯一约束
alter table table_name DISABLE(禁用)|ENABLE(启用) CONSTRAINT constraint_name;
alter table table_name DROP CONSTRAINT constraint_name;
检查约束(ck开头)
在创建表时设置检查约束(CHECK)
CREATE TABLE table_name (column_name datatype CHECK(expressions(约束条件)),...);
列:create table userinfo (id varchar2(10) primary key, salary number(5,0) CHECK(salary > 0));
CONSTRAINT constraint_name(约束名) CHECK(expressions);
在修改表时提那家检查约束
alter table table_name ADD CONSTRAINT constraint_name CHECK(expressions);
删除检查约束
alter table table_name DISABLE(禁用)|ENABLE(启用) CONSTRAINT constraint_name;
alter table table_name DROP CONSTRAINT constraint_name;