oracle 基础学习--表的数据类型和约束

表:存放数据的基本单位,二位结构,行列,行也叫记录,列也叫域或者字段;每一列具有同样的数据类型,列名是唯一,每一行记录也是唯一的

数据类型:

字符型 :

char (n)定长的数据存放   max 为2000

nchar(n)定长存放 max 1000

varchar2(n)变长的存放 max 4000

nvarchar2(n)变长  max 2000

数值型:

number(p,s) p表示有效数字,s表示小数点后的位数

float(n) 存放二进制数据

日期型:

DATE:范围公元前4712年1月1日到公元9999年12年31日,精确到秒

timestamp 时间戳 精确到小数秒

其他类型:

BLOB  二进制存放 4GB数据

CLOB  字符串存放  4GB数据

创建表:create table table-name (colonum_name data_type,....);

修改表: 

添加字段:alter table table_name add column_name data_type;

更改字段的数据类型  :alter table table_name modify column_name data_type;

删除字段 :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,...);

在创建表时复制数据:create table table_new as select col1 from old_table;

添加时复制:insert into table_name_new   (column1,..)select column1,.... from table_name_old;

修改表中数据:update  table_name set column1= value1,....where conditions; 

删除表数据:delete from  table_name where condition; 

约束:存放在数据字典中 user_constraints

非空约束

非空约束,在创建时设置非空约束:create table table_name(column_name data_type  NOT NULL,....);

在修改表时添加非空约束:alter table tablename modify column_name data_type  NOT NULL;

在修改表时去除非空约束:alter table tablename modify column_name data_type NULL;

主键约束:确保每列数据非空且唯一,一张表只能设置一个主键约束,主键约束可以由多个字段构成(联合主键或复合主键)。

在创建表时设置主键约束:CREATE TABLE tablename (column1 data_type PRIMARY KEY,...);

联合主键约束 : CREATE  TABLE  tablename (col1 data_type,....CONSTRAINT  constraint_name  PRIMARY KEY(col1,...));

在修改表时增加主键约束:

ALTER TABLE  tablename  ADD CONSTRAINT constraint_name PRIMARY KEY (columnname1,...);

更改表约束的名字:ALTER TABLE table_name RENAME CONSTRAINT constrain_name_old TO new_constraint_name;

禁用主键约束:ALTER TABLE tablename DISABLE  CONSTRAINT constraint_name ;

启用主键约束:ALTER TABLE tablename ENABLE CONSTRAINT constraint_name;

删除主键约束:ALTER  TABLE tablename DROP CONSTRAINT constraint_name;

或者  ALTER TABLE tablename DROP PRIMARY KEY;

外键约束:在创建表时增加  CREATE TABLE tablename1 (column_name1 datatype  REFERENCES table2 (column1),...);

其中tablename1是从表,table2是主表,column1是主表中主键,从表的column_name1与主表的column1数据类型一致,从表的column_name1中值的来源只能是主表的column1中的值或者NULL;

创建表时增加约束  :CREATE TABLE tablename (column1,...CONSTRAINT fk_name  FOREIGN KEY (column1)  REFERENCES tablename (column)  );

增加级联关系,即删除主表中的外键数据时,会删除对应的从表数据:CREATE TABLE tablename (column1,... CONSTRAINT fk_name FOREIGN KEY (column1) REFERENCES tablename(colunm1) ON  DELETE CASCADE);

在修改表的时候增加外键约束:ALTER TABLE tablename ADD  CONSTRAINT constraint_name  FOREIGN KEY (tablename_col)  REFERENCES  tablename2(column1) ON DELETE CASCADE;

禁用外键约束  ALTER TABLE tablename DISABLE  CONSTRAINT constrain_name;

启用外键约束 ALTER TABLE tablename ENABLE CONSTRAINT constraint_name;

删除外键约束  ALTER   TABLE  tablename DROP CONSTRAINT constraint_name

唯一约束:可以有一个值为NULL,每张表可以有多个唯一约束

创建表时进行 CREATE  TABLE tablename (column1 datatype UNIQUE,....);

或者  CREATE TABLE tablename(column1 datatyp,...CONSTRAINT constain_name  UNIQUE(column) );

修改表添加唯一约束:ALTER TABLE tablename ADD CONSTRAINT constraint_name UNIQUE(column_name);

禁用唯一约束: ALTER TABLE tablename DISABLE CONSTRAINT constraint_name;

启用唯一约束: ALTER TABLE tablename ENABLE CONSTRAINT constraint_name;

删除唯一约束 ALTER TABLE tablename DROP CONSTRAINT constraint_name;

检查约束:

创建表时进行加入检查约束:  CREATE TABLE tablename  (column1 datatype CHECK(express1),...);

CREATE TABLE tablename (column1 datatype ,....,CONSTAINT ck_name CHECK (express));

修改表时添加检查约束: ALTER TABLE tablename ADD CONSTRAINT constraint_name CHECK(express);

禁用检查约束  ALTER TABLE tablename DISABLE CONSTRAINT constraint_name;

启用检查约束  ALTER TABLE tablename ENABLE CONSTRAINT constraint_name;

删除检查约束  ALTER TABLE tablename DROP CONSTRAINT constraint_name;

 

 

你可能感兴趣的:(数据库学习)