表存储在表空间中
是二维结构(行,列)
约定;
1.每一列数据类型需相同
2.列名唯一
3.每行数据唯一
数据类型:
n表示长度
字符型:定长 shar,(n=2000) nchar(n=1000), 不定长 vachar2(n=4000).nvachar2(n=2000适合存储中文数据)
数值型:number(p有效数字, s小数点后位数,正数表示最低有效数字位数, 负数表示最大有效数字到小数点位数), float(n)
日期型: date(秒), timestamp(小数秒)
使用sysdate可获取当前日期,格式化的时间
其他:存放大数据 blob(4G的数据, 二进制类型), clob(4G数据, 字符串类型存放)
创建表:
CREATE TABLE table_name(column_name datatype, ......);
查看表结构
DESC table_name;
修改表结构:
添加字段
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.....);
添加默认值
CREATE TABLE table_name (column1 DEFAULT value);
ALTER TABLE table_name MODIFY column DEFAULT value;
有了默认值的表,添加数据的时候table_name之后的指定字段不可省略
复制表数据
建表时复制
CREATE TABLE table_new AS SELECT column1, ... |* FROM table_old;
添加数据时复制
INSERT INTO table_new [(column1, ...)] SELECT column1,....|*FROM table_old;
修改数据
UPDATE table_name SET column1=value1,... WHERE ...
删除数据
DELETE FROM table_name WHERE ...
约束
查询某张表的约束
desc user_constraints(数据字典)
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINS WHERE TABLE_NAME='table_name';
非空约束
创建表时
CREATE TABLE table_name (column_name datatype NOT NULL, ....);
修改表时
ALTER TABLE table_name MODIFY column_name datatyPe NOT NULL;
主键约束
可由多个字段组成,称为联合主键
CREATE TABLE table_name (column1 datatype PRIMARY KEY, ...);
联合约束, 表级约束,在所有字段创建结束后创建
CONSTRAINT constraint_name(约束名) PRIMARY KEY (column1, ...)
修改表时添加主键
均是在 ALTER TABLE table_name 语句后使用
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column1, ...);
更改主键名称
RENAME CONSTRAINT old_name TO new_name;
删除主键
禁用|启用主键
DISABLE|ENABLE CONSTRAINT constraint_name
删除
DROP CONSTRAINT constraint_name;
DROP PRIMARY KEY [CASCADE(用于级联删除)];
检查约束
使数据更有实际意义
创建表时设置
CREATE TABLE table_name (cokumn_name datatype CHECK(expressions), );
create table userinfo (id varchar2(10 ) primary key, salary number(5, 0) check (salary>0));
在创建完表所有字段后使用
CONSTRAINT constraint_name CHECK (expressions);
修改表时添加检查约束
ADD CONSTRAINT constraint_name CHECK (expressions);
删除检查约束
DISABLE|ENABLE CONSTRAINT constraint_name;
DROP CONSTRAINT constraint_name;
总结:
非空约束只能在列级约束 不能再表级添加 并且没有名字
更改约束名称
使用数据字典(user_constraints)查看
RENAME CONSTRAINT old_name TO new_name;