Oracle如何给数据库添加约束过程解析

主键约束(两个特性)

1:主键必须写

2:主键不可重复

create table stu01(
  sid varchar(100),
  sname varchar2(100)
  --constraint PK_stu01_sid primary key (sid)
 )

 --添加约束(主键)
  alter table stu01 add constraint PK_stu01_sid primary key(sid)  ---添加主键约束
  alter table stu01 drop constraint PK_stu01_sid          ---删除主键约束

唯一约束(UNIQUE)

唯一,但是可以为空

create table stu02(
  sid varchar2(100),
  sname varchar2(100),
  constraint PK_stu02_sid primary key(sid),
  constraint UK_stu02_sname unique(sname)
 )

非空约束(not null)

一般简写

create table stu03(
  sid varchar2(100),
  sname varchar2(100) not null,
  constraint PK_stu03_sid primary key(sid),
  constraint UK_stu03_sname unique(sname)
 )

外键约束

先添加学生表、和课程表

create table stu04(
  sid varchar2(100),
  sname varchar2(100) not null,
  constraint PK_stu04_sid primary key(sid),
  constraint UK_stu04_sname unique(sname)
 )

 --创建课程表
 create table course01(
  cid varchar2(100),
  cname varchar2(100) not null,
  constraint PK_course01_cid primary key(cid),
  constraint UK_course01_cname unique(cname)
 )

 --最后添加成绩表,外键约束课程表和学生表
  create table mark02(
  sid varchar2(100),
  cid varchar2(100),
  mark number,
  constraint PK_mark02_sidAndcid primary key(sid,cid),
  constraint FK_mark02_sid foreign key(sid) references stu04(sid),
  constraint FK_mark02_cid foreign key(cid) references course01(cid),
  constraint UK_mark02_mark unique(mark)
  )

 --删除外键约束
 alter table mark01 drop constraint FK_mark02_sid
  alter table mark01 drop constraint FK_mark02_cid

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 关于sql脚本导入Oracle时重复生成check约束的问题解决

    前言 最近在工作中一位细心的同事发现产品的全量sql脚本中有一些重复的check约束检查,就像下图这样的 重复脚本 怪异之处还在于,每次执行一遍该脚本,然后导出脚本,在导出脚本中重复的次数就会增加一遍.通过navicat,最终确认每导入一次就会新增加一条重复的check约束,如下图所示 navicat 这个全量脚本是直接从数据库中导出的,为了方便导入其他的Oracle数据库中,从产品的出货库导出时手动去掉了服务名.双引号. 通过如下步骤可复现该问题: 1.创建表 CREATE TABLE PD_

  • Oracle约束管理脚本

    正在看的ORACLE教程是:Oracle约束管理脚本.作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器.这在数据库的合并以及对数据库系统的代码表中某些代码的修改时需要做的工作之一. 我们来看这样一种实际数据库工作业务需求,这在目前的许多应用中是非常实际的.某地区银行数据,目前采用市级数据集中,随着计算机网络技术的不断提高以及对服务水平的要求,提出了省级乃至国家级的数据集中.除了应用需要修改以外,对于数据库管理员来讲,最重要的工作

  • oracle 11g em重建报唯一约束错误解决方法

    今天在手工配置Oracle11g的EM时总是报如下错误: WARNING:ORA-00001:uniqueconstraint(SYSMAN.PARAMETERS_PRIMARY_KEY)violated ORA-06512:at"SYSMAN.EMD_LOADER",line4986 ORA-06512:atline1 以Metalink上也没有找到解决办法,以下是我的解决过程: 1.数据库版本 SQL>select*fromv$version; BANNER --------

  • 在Oracle数据库中添加外键约束的方法详解

    外键指定一个列(或一组列)的值必须符合另一个表的一些行的值.我们说这是维持关联表的参照完整性. 在图形化界面中,在 外键 选项卡,只需简单地点击外键栏位来编辑.使用外键的工具栏,能让你创建新的.编辑或删除选择的外键栏位. 添加外键:添加一个外键到表. 删除外键:删除已选择的外键. 使用 名 编辑框来输入新键的名. 使用 参考模式.参考表 和 参考限制 下拉列表来分别选择一个外部索引数据库.表及限制. 要包含栏位到键,只需简单地双击 栏位 栏位或点击  来打开编辑器进行编辑. 删除时 下拉列表定义

  • Oracle数据库的字段约束创建和维护示例

    创建Oracle数据库的字段约束: 非空约束 唯一约束 对字段的取值的约束 默认值 外键约束 create table tab_class( class_id number primary key, class_name varchar2(10) not null unique ); create table tab_stu( stu_id number, --学生姓名,不能为空,不能重复 stu_name varchar2(20) not null unique, --学生姓名只能是male或

  • oracle删除主键查看主键约束及创建联合主键

    1,主键的删除 ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键:如果不成功可以用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --设置被设置为主键的列为无效 DROP INDEX INDEX_NAME; --删除主键索引 2,查看主键约束 SELECT * FROM

  • Oracle如何给数据库添加约束过程解析

    主键约束(两个特性) 1:主键必须写 2:主键不可重复 create table stu01( sid varchar(100), sname varchar2(100) --constraint PK_stu01_sid primary key (sid) ) --添加约束(主键) alter table stu01 add constraint PK_stu01_sid primary key(sid) ---添加主键约束 alter table stu01 drop constraint

  • SpringBoot基于数据库实现定时任务过程解析

    这篇文章主要介绍了SpringBoot基于数据库实现定时任务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在我们平时开发的项目中,定时任务基本属于必不可少的功能,那大家都是怎么做的呢?但我知道的大多都是静态定时任务实现. 基于注解来创建定时任务非常简单,只需几行代码便可完成.实现如下: @Configuration @EnableScheduling public class SimpleScheduleTask { //10秒钟执行

  • 微信小程序点击view动态添加样式过程解析

    这篇文章主要介绍了微信小程序点击view动态添加样式过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本逻辑: 1.给每个view自定义dataIndex属性,从0开始 2.自定义一个名为selected的class,作为被选中后的样式 3.在wx.js中给viewId属性赋为0,用于默认显示. 4.给每个view添加一个点击事件select,在点击某个view时 将dataIndex变成这个view的自定义index 5.在view中

  • Spring Cloud Zuul添加过滤器过程解析

    这篇文章主要介绍了Spring Cloud Zuul添加过滤器过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Zuul作为网关的其中一个重要功能,就是实现请求的鉴权.而这个动作我们往往是通过Zuul提供的过滤器来实现的. 一.过滤器方法的作用 想要使用Zuul实现过滤功能,我们需要自定义一个类继承ZuulFilter类,并实现其中的四个方法,我们先看一下这四个方法的作用是什么 public class MyFilter extends

  • Django项目如何给数据库添加约束

    只要你的Web开发知识不是语文老师教的,那么你应该已经知道一个合格的开发者应该永远抱着怀疑的眼光看用户提交的数据.你不仅需要在前端通过表单或其它方式进行验证,还需要在后台视图拿到用户发送的数据后再对其进行验证一遍.假如有一天你开发一个少儿不宜的网站,你的用户模型里有年龄(age)这个字段而你要求每个注册用户年龄都大于18岁,在Django中你当然可以自定义表单的clean方法, 自定义validators或者重写模型的save方法对年龄字段进行验证.然而你想过没有一件事没有?这能阻止某个员工或用

  • Spring Security基于数据库实现认证过程解析

    创建数据库 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for role -- ---------------------------- DROP TABLE IF EXISTS `role`; CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `nam

  • Python urllib库如何添加headers过程解析

    对于请求一些网站,我们需要加上请求头才可以完成网页的抓取,不然会得到一些错误,无法返回抓取的网页.下面,介绍两种添加请求头的方法. 方法一:借助build_opener和addheaders完成 import urllib.request url="http://www.meizitu.com" #注意:在urllib 中headers是元组 headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64

  • oracle创建一个数据库三步走

    以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在创建数据库的时候要对应一个用户,数据库和用户一般一一对应,mysql和sql server 直接通过create databse "数据库名" 就可以直接创建数据库了,而oracle创建一个数据库需要以下三个步骤: 创建两个数据库的文件 创建用户与上面创建的文件形成映射关系 给用户添加权限

  • oracle数据库导入导出命令解析

    Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远.

  • Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)

    Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为"1,2,3,5",字段B为"2". 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5. 一.最终实现的sql语句 1.获取交集(相同值): select regexp_substr(id, '[^,]+', 1, rownum) id from (select '1,2,3,5' id from dual) connect by rownum <= length(reg

随机推荐