关于oracle数据库(6)约束
约束类型
1、主键primary key(一般是一个表的标志,所以一个表只能有一个主键;主键不能为空,不能重复)
2、唯一键unique(不能重复)
3、外键foreign key
4、检查约束check(not null不能为空;default默认值)
建表的同时添加约束
create table person(
pid number(18) primary key, --primary key主键,不能为空,不能重复
name varchar2(50) unique not null, --unique唯一约束,不能重复,可以为空;not null不能为空
sex varchar2(4) default '男' check(sex in('男','女')), --性别必须是男或女,default默认为男
age number(3) check(age>0 and age<=120) --年龄数据类型为3位,check里条件规定了范围
)
后期添加(约束表已经建立好不能删除)
添加约束
修改表 表名 添加 约束 起名字 约束类型 列名
alter table 表名 add constraint 起名字 约束类型 (列名);
添加主键
alter table 表名 add constraint 起名字 primary key (列名);
如:alter table student add constraint pk_sid primary key (sid);
添加唯一约束
alter table 表名 add constraint 起名字 unique (列名);
如:alter table student add constraint uq_name unique (name);
添加检查约束
alter table 表名 add constraint 起名字 check(条件);
如:alter table student add constraint ck_sex check(sex in('男','女'));
添加默认值(modify修改)
alter table 表名 modify 列名 default '女';
如:alter table student modify sex default '女';
修改表的字段类型(modify修改)
alter table 表名 modify 列名 数据类型;
如:alter table student modify sex varchar2(5);
如:alter table student modify name not null;
修改表结构
alter table 表名
modify 列名 数据类型
modify 列名 default 'something'
如:alter table studentinfo
modify stuname varchar(20)
modify stusex default '男'
建表时添加外键
如:create table student(
cid number(12) references myclass --myclass是另一个表名
)
后期添加外键约束
alter table 表名 add constraint 起名字 foreign key (列名) references 表名;
如:alter table student add constraint fk_cid foreign key (cid) references myclass
删除约束
alter table 表名 drop constraint 约束名称
找约束名称
select * from user_constraints where table_name='表名'
如:select * from user_constraints where table_name='student'
回滚(oracle数据库 默认添加的数据是需要提交的 ,不提交其它的人看不到)
(刚添加修改删除的数据没有保存到数据库,只是临时的)
commit; --提交 永久的的保存到数据库了
rollback table 表名 ; --回退没提交之前的数据
truncate table 表名; --表截断,立刻清除表里面的所有数据并且不能回滚
SQL结构化查询语言
1、DDL数据定义语言 不能回滚
create,alter,drop
2、DML数据操作语言 可以回滚
insert,delete,update,select
3、DCL数据控制语言 权限
grant,revoke
4、TCL事务控制语言
commit,rollback
数据移植:导入导出.dmp,在cmd中执行命令
关于oracle数据库(6)约束的更多相关文章
- 改写了禁用或启用oracle数据库的约束的存储过程
改写了网上某位大侠(最开始的源头是哪位没记住)写的禁用或启用oracle数据库所有约束的存储过程,增加了异常控制,以使发生异常时也可以执行下去. –调用过程: 执行前先 set serveroutpu ...
- Oracle数据库添加约束
主键约束(两个特性)1:主键必须写2:主键不可重复 create table stu01( sid varchar(100), sname varchar2(100) --constraint PK_ ...
- oracle数据库 唯一约束的创建与删除
1.创建索引: alter table TVEHICLE add constraint CHECK_ONLY unique (CNUMBERPLATE, CVIN, CPLATETYPE, DWQCH ...
- oracle数据库中提供的5种约束
约束作用:用来保持数据的完整性,防止无效数据进入到数据库中.oracle数据库中提供的5种约束,都是限定某个列或者列的组合的.1.主键约束(PRIMARY KEY):在一个表中能唯一的标识一行.主键可 ...
- Oracle数据库五种约束
oracle 数据库 数据表的5个约束类型:1.主键约束2.外键约束3.唯一约束4.检查约束5.非空约束 主键约束:用来唯一标示表中的一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包含 ...
- Oracle数据库创建表是有两个约束带有默认索引
Oracle数据库创建表是有两个约束带有默认索引.1.主键primary Key:唯一索引.非空2.唯一Unique:唯一索引,可以是空值如果没有设定主键和唯一约束,表中不会有默认索引的. 建立主键/ ...
- Oracle 数据库表中已有重复数据添加唯一键(唯一约束)
Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...
- Oracle数据库中违反唯一约束的处理
根据NULL的定义,NULL表示的是未知,因此两个NULL比较的结果既不相等,也不不等,结果仍然是未知.根据这个定义,多个NULL值的存在应该不违反唯一约束. 实际上Oracle也是如此实现的: SQ ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
随机推荐
- 【5】图解HTTP 笔记
坚持.聪明.不畏困难,我将取得最后的胜利. 第一章 了解 Web 以网络基础 1. HTTP ( HyperText Transfer Protocol ): 超文本传输协议. 2. 通讯方式: 3. ...
- C++ static与单例模式
单例模式是应用最多的一种设计模式,它要求系统中每个类有且只能有一个实例对象. 主要优点: 1.提供了对唯一实例的受控访问. 2.由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创 ...
- C# 语言规范_版本5.0 (第10章 类)
1. 类 类是一种数据结构,它可以包含数据成员(常量和字段).函数成员(方法.属性.事件.索引器.运算符.实例构造函数.静态构造函数和析构函数)以及嵌套类型.类类型支持继承,继承是一种机制,它使派生类 ...
- 7、Objective-C中的各种遍历(迭代)方式
一.使用for循环 要遍历字典.数组或者是集合,for循环是最简单也用的比较多的方法,示例如下: //普通的for循环遍历 -(void)iteratorWithFor { //////////处理数 ...
- 【Python之路】第七篇--Python基础之面向对象及相关
面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查obj是否是类 cls 的对象 class Foo(objec ...
- code style
http://www.jianshu.com/p/0a984f999592# https://github.com/drakeet/LayoutFormatter https://github.com ...
- iOS CGRectContainsPoint的用法
判断给定的点是否被一个CGRect包含,可以用CGRectContainsPoint函数 CGPoint point = [touch locationInView:self]; if(CGRectC ...
- Node.js入门 NPM
参考一 Node入门 七天学会NodeJS Node.js v4.2.4 手册 & 文档 Node.js 教程 node.js摸石头系列 从零开始学习node.js What is ...
- appium使用真机做安卓移动端自动化测试
1.PC往手机上安装apk文件:adb install apk文件完整路径 2.获取app包名和activity的命令:使用aapt;aapt是sdk自带的一个工具,在sdk\builds-tools ...
- Android中帧动画的创建
帧动画,实质上就是快速播放多张连接效果的图片,现在一般可用于下拉刷新时候的headView 实现步骤: 1.首先应该准备一组连接效果的图片 2.在res>drawable目录下创建xml文件,将 ...