标设计篇

标设计篇
一.设计表
设计表首先应该按需遵循三范式
1.确定表名 2.确定字段名 类型+约束(主键 外键 非空 默 检查认 唯一)
主键:唯一标识一条记录(唯一并且非空)
唯一:唯一
非空:不能为空
默认:当没有值时使用给定一个默认值
外键:参考其他表(自己)的某个(某些)字段
检查:自定义的规则
二.创建表
表名必须唯一,如果存在,必须删除
1.创建表(不加约束)
1).创建新表
create table 表名(
字段名 类型(长度) 约束,
…其他字段…
…约束…
);
2).已有表中拷贝结构
create table 表名 as select 字段列表 from 已有表 where 1!=1;
–拷贝结构 emp
create table emp_his as select ename,sal from emp where 1!=1;
–拷贝结构 emp +数据
create table emp_his2 as select ename,sal from emp where sal>2000;
3).删除表
drop table 表名 cascade constraints
–删除表
drop table emp_his2 cascade constraints;
drop table emp_his cascade constraints;
2.创建表(同时创建约束+默认名称)
这种创建表的同时创建约束并使用默认约束名称的方式,后期不方便排错,所以不推荐使用.其主要的优点是简单
3.创建表(同时创建约束+指定名称)
创建表的同时创建约束并指定约束的名称,后期方便排错,推荐使用
–删除 (先删除从表 再删除主表 ;同时删除约束)
drop table tb_txt cascade constraints;
drop table tb_user cascade constraints;
4.创建表(追加创建约束+指定名称)
推荐,便于后期排错
–删除 (先删除从表 再删除主表 ;同时删除约束)
drop table tb_txt cascade constraints;
drop table tb_user cascade constraints;
三.约束(了解)
在oracle中所有的一切都是对象,约束也是一个个的对象,除了能创建约束我们还能对约束进行一些其他的操作
1.查看某个用户的约束
select constraint_name, constraint_type
from user_constraints
where owner = upper(‘scott’);
2.查看表的约束
select constraint_name,constraint_type
from user_constraints
where table_name=upper(‘tb_user’);
3.查看 字段名+约束
select constraint_name, column_name
from user_cons_columns
where table_name = upper(‘tb_user’);
4.约束的禁用与启用
ALTER TABLE tb_user disable constraint nn_user_name;
ALTER TABLE tb_user enable constraint nn_user_name;
5.删除约束
alter table tb_user drop constraint uq_user_email cascade;
6.修改约束
–非空
alter table tb_user modify (username varchar2(20));
–默认
alter table tb_user modify (age default null);
四.表的其他操作
1.修改表结构
1、修改表名 :rename to
2、修改列名: alter table 表名 rename column to
3、修改类型: alter table 表名 modify(字段 类型)
4、修改约束: 先删除 后添加
5、添加列: alter table 表名 add 字段 类型
6、删除列:alter table 表名 drop column 字段
2.删除表
1.先删除从表 再删除主表
drop table tb_txt_new cascade constraints;
2.删除表的同时删除约束
drop table tb_user cascade constraints;
3.截断数据
truncate: 截断所有的数据 ,如果截断的是主表,结构不能存在 外键关联截断数据同时 从结构上 检查
create table emp_his as select * from emp where 1=1;
select * from emp_his;
–截断所有的数据
truncate table emp_his;
–不能截断: truncate table dept;
五.序列
使用工具|程序管理流水号,序列在创建时 没有与表关联,在操作数据数与表关联
1.创建
create sequence 序列名 start with 起始值 increment by 步进
2.使用
在操作数据 添加 更新 -->主键
1)、currval :当前值
2)、nextval:下个值
create sequence seq_tb_user start with 2 increment by 2;
drop sequence seq_tb_user;
select seq_tb_user.nextval from dual;
select seq_tb_user.currval from dual
3.删除
drop sequence 序列名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值