4. oracle
4.1 表设计
前提: 设计表首先应该按需遵循三范式
\1. 确定表名
\2. 确定字段名 类型 +约束(主键 外键 非空 默 检查认 唯
一)
主键: 唯一标识一条记录(唯一并且非空)
唯一: 唯一
非空:不能为空
默认: 当没给值时使用给定一个默认值
外键:参考其他表(自己)的某个(某些)字段
检查:自定义的规则
用户表
表名 tb_user
主键 userid
字段名 中文 类型 为空 默认值 其他说明
userid 流水号 number(5) 否 主键 username 用户名 varchar2(30) 否 长度在4-20
userpwd 密码 varchar2(20) 否 长度在4-18 age 年龄 number(3) 18 大于>=18
gender 性别
char(2) 男 男or 女
email 邮箱 varchar2(30) 唯一
regtime 注册日期 date sysdate
备注
文章表
表名 tb_txt
主键 txtid
字段名 中文 类型 为空 默认值 其他说明
txtid 流水号 number(10) 否 主键
title 标题 varchar2(32) 否 长度在4-30
txt 正文 varchar2(1024)
pubtime 发布时间 date sysdate
userid 发布人 number(5) 外键,参考tb_user的
userid列
备注
4.2 创建表
表名必须唯一,如果存在 ,必须删除
create table 表名(
字段名 类型(长度) 约束,
...其他字段.... ..约束........
);
4.3 约束
在 oracle中所有的一切都是对象, 约束也是一个个的对象,除了能创建约束我们还能对约束进行一些其他的操作
4.3.1 查看某个用户的约束
select constraint_name, constraint_type
from user_constraints
where owner = upper('SCOTT');
4.3.2 查看表的约束
select constraint_name, constraint_type
from user_constraints
where table_name = upper('emp');
4.3.3 查看 字段名+约束
select constraint_name, column_name
from user_cons_columns
where table_name = upper('emp');
4.3.4 约束的禁用与启用
ALTER TABLE tb_user disable constraint
nn_user_name;
ALTER TABLE tb_user enable constraint
nn_user_name;
4.3.5 删除约束
alter table tb_user drop constraint
uq_user_email cascade;
4.3.6 修改约束
--非空
alter table tb_user modify (username varchar2(20));
--默认
alter table tb_user modify (age default null);
5 .DDL
SQL语言结构:
DDL(DataDefinitionLanguage数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在create、drop和alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:create创建数据表,alter可以更改该表的子段,drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操作。
DDL的主要语句(操作)
5.1删除表
drop table 表名 (cascade constraints)
--删除表
drop table emp_his;
--主从表关系下删除表
--先删除从表 再删除主表 ;同时删除约束
drop table tb_txt cascade constraints;
drop table tb_user cascade constraints;
--删除主表的同时级联删除约束
drop table emp_his cascade constraints;
5.2修改表结构
-
修改表名 :rename to
-
修改列名: alter table 表名 rename column to
-
修改类型: alter table 表名 modify(字段 类型)
-
修改约束: 先删除 后添加
-
添加列: alter table 表名 add 字段 类型
-
删除列:alter table 表名 drop column 字段
--修改表名
rename tb_txt to tb_txt_new;
--修改列名
alter table tb_txt_new rename column txtid
to tid;
--修改类型
alter table tb_txt_new modify(tid
varchar2(20));
--添加列
alter table tb_txt_new add col varchar2(30);
--删除列
alter table tb_txt_new drop column col;
select * from tb_txt_new;
ble tb_txt_new modify(tid
varchar2(20));
–添加列
alter table tb_txt_new add col varchar2(30);
–删除列
alter table tb_txt_new drop column col;
select * from tb_txt_new;