4. oracle

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修改表结构

  1. 修改表名 :rename to

  2. 修改列名: alter table 表名 rename column to

  3. 修改类型: alter table 表名 modify(字段 类型)

  4. 修改约束: 先删除 后添加

  5. 添加列: alter table 表名 add 字段 类型

  6. 删除列: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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值