1. 创建二维表
-- create table 表名 ( -- 字段名1 字段类型 [not null] [primary key] , -- 字段名2 字段类型 check(条件判断), -- 字段名3 字段类型 , -- ... -- constraint 约束名 primary key(字段名) -- ) -- 字段类型 -- number 数值类型 -- number(a, b), 总长度为a, 小数位长度为b, 小数位可以不写 -- varchar2 字符类型 -- varchar(a), a表示字符的最大长度 -- 实际存储的内存长度是根据字符大小来分配的, 但是不能超过a -- 动态分配存储空间, 节省空间 -- char 字符类型 -- char(a), 不管字符数据长度是多少, 直接开辟a大小的空间来存储数据 -- 存储效率高于varchar2 -- date 日期类型
2. 维护二维表
-- 添加新字段 -- alter table 表名 add 新字段名 字段类型 -- 修改原字段 -- 修改字段类型 -- alter table 表名 modify 字段名 新字段类型 -- 修改字段名 -- alter table 表名 rename column 字段名 to 新字段名 -- 删除字段 -- alter table 表名 drop column 字段名 -- 修改表名 -- rename 原表名 to 新表名
3. 删除二维表
-- drop table 表名
4. 创建约束 (主键约束/非空约束/检查约束/唯一约束)
-- 添加主键 : 非空唯一 -- 直接在创建表的字段后使用 primary key -- 在创建表的语句最后 constraints 约束名 primary key(字段名) -- 在创建表后 alter table 表名 add constraints 约束名 primary key(字段名) -- 删除主键 alter table 表名 drop constraints 约束名 -- 非空约束 -- 直接在创建表的字段后使用 not null -- 在创建表的语句最后 constraints 约束名 check(字段名 is not null) -- 在创建表后 alter table 表名 add constraints 约束名 check(字段名 is not null) -- 删除非空约束 alter table 表名 drop constraints 约束名 -- 检查约束 -- 直接在创建表的字段后使用 check(条件判断) -- 在创建表的语句最后 constraints 约束名 check(条件判断) -- 在创建表后 alter table 表名 add constraints 约束名 check(条件判断) -- 删除检查约束 alter table 表名 drop constraints 约束名 -- 唯一约束 -- 直接在创建表的字段后使用 unique -- 在创建表的语句最后 constraints 约束名 unique(字段名) -- 在创建表后 alter table 表名 add constraints 约束名 unique(字段名) -- 删除唯一约束 alter table 表名 drop constraints 约束名 -- 外键约束 -- 作用: 当在子表中插入的数据在父表中不存在, 则会自动报错 -- 当一张表的某个字段的值需要依赖另外一张表的某个字段的值, 则使用外键约束 -- 其中主动依赖的表称为子表, 被依赖的表称为父表, 外键加在子表中 -- 使用: -- 在子表中的字段后直接使用 references 父表名(父字段名) -- 在创建表的语句最后 constraints 约束名 foreign key(子字段名) references 父表名(父字段名) -- 在创建表后 alter table 表名 add constraints 约束名 foreign key(子字段名) references 父表名(父字段名) -- 删除外键约束 alter table 表名 drop constraints 约束名 -- 无法直接删除父表数据, 可以使用级联删除 -- 级联删除 : -- 在添加外键约束时, 在结尾使用关键字 on delete cascade -- 当删除父表数据时, 会自动删除子表相关所有数据 (缺点: 无法保留子表历史数据) -- 在添加外键约束时, 在结尾使用关键字 on delete set null -- 当删除父表数据时, 会将子表中的依赖字段的值设置为null (注意: 子表依赖字段不能添加非空约束)