Oracle数据类型和约束

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;

 

你可能感兴趣的:(oracle,Oracle)