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