Oracle入门学习五「建议收藏」

Oracle入门学习五「建议收藏」学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=35 数据的完整性:保证插入表格的数据必须正确。包括实体完整性、区域完整性、引用完整性

Oracle入门学习五

学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=35

数据的完整性:保证插入表格的数据必须正确。包括实体完整性、区域完整性、引用完整性、自定义完整性。

约束:约束的作用是为了保证数据的完整性,类型包括主键约束(PK)、唯一约束()、检查约束、外键约束。主键和唯一约束的区别是主键不能为空。命名规则:约束类型_约束名。

列级约束:针对某一列设置的约束。表级约束和列级约束区别相关了解:https://blog.csdn.net/hanxuemin12345/article/details/7828206

--设置主键的简洁写法
create table user1(
id number(5) primary key,
name varchar2(20)
)

--设置主键的完整写法
create table user1(
id number(5) constraint pk_id primary key,
name varchar2(20)
)

--添加主键约束、唯一约束、非空约束
create table user3(
id number(3) constraint pk_user3_id primary key,
name varchar2(20) constraint uq_user3_name unique,
age number(3) constraint nn_user3_age not null
)

insert into user3 values(1,"bibi",34);
insert into user3 values(2,"bibiiii",34);
insert into user3 values(3,"bibi",null);

代码100分

检查约束:

代码100分alter table user3 add salary number(8,2);
alter table user3 add constraint ck_user3_salary check (salary between 5000 and 20000);

表级约束:在定义表格的某些列之后,再为某些列添加约束。非空约束只能是列级约束。

Oracle入门学习五「建议收藏」

create table user3(
id number(3) ,
name varchar2(20) ,
age number(3) not null,
constraint pk_user3_id primary key (id),
constraint uq_user3_name unique (name)
)

create table user3(
id number(3) ,
name varchar2(20) ,
age number(3) not null,
constraint uq_user3_name unique (id,name)
)

View Code

表定义之后,添加、移除约束:

代码100分alter table user3 add constraint pk_usesr3_id primary key (id);
alter table user3 drop constraint pk_user3_id;

外键约束:本表这列的值取决于另一个表的主键。删除主表关联数据是,必须先把从表的外键关联数据删除或者置空。删除主表之前必须先把从表删除掉或者主表切断所有关联的外键。

create table user8
(
id number(3) primary key,
name varchar2(20) not null
);

insert into user8 values(1,"bb");
insert into user8 values(2,"bbb");
insert into user8 values(3,"bbbb");

create table order8
(
 id number(10)  primary key,
 user_id number(3) constraint fk_order8_userid references user8(id), --外键,引用user8表的id
 info varchar2(500) 
);

insert into order8 values(1,1,null);
insert into order8 values(1,5,null);

Oracle入门学习五「建议收藏」

create table user8
(
id number(3) primary key,
name varchar2(20) not null
);

insert into user8 values(1,"bb");
insert into user8 values(2,"bbb");
insert into user8 values(3,"bbbb");

create table order8
(
 id number(10)  primary key,
 user_id number(3) constraint fk_order8_userid references user8(id), --外键,引用user8表的id
 info varchar2(500) 
)

insert into order8 values(1,1,null);
insert into order8 values(2,2,null);
insert into order8 values(3,3,null);

--删除关联数据 方法一,不常用
delete from order8;
delete from user8;

--方法二 置空
update order8 set user_id=null;
delete from user8;

--删除关联表 不常用
drop table order8;
drop table user8;

--方法二 删除掉所有关联的外键
drop table user8 cascade constraint;

View Code

级联操作:当删除主表中被参考数据时,从表关联外键字段数据自动设为null,用法 on delete set null。当删除主表被参考数据时,从表外键关联数据行自动删除,用法 on delete cascade。

Oracle入门学习五「建议收藏」

create table order8
(
 id number(10)  primary key,
 user_id number(3) references user8(id) on delete set null, 
 info varchar2(500) 
)

create table order8
(
 id number(10)  primary key,
 user_id number(3) references user8(id) on delete cascade, 
 info varchar2(500) 
)

View Code

联合主键:多个字段组成一个主键

create table user8
(
id number(3) ,
name varchar2(20),
constraint pk_user8_id_name primary key (id,name)
);

insert into user8 values(1,"b");
insert into user8 values(1,"a");
insert into user8 values(1,"b");

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8669.html

(0)
上一篇 2023-02-24
下一篇 2023-02-24

相关推荐

  • 华为数据库,安全的保障是什么_数据库安全保障

    华为数据库,安全的保障是什么_数据库安全保障现今形势多变,行业竞争激烈,经常有恶意攻击的,并且攻击方式复杂多变,所以企业数据库的安全可靠尤为重要,选什么杨的数据库好?哪家好,这里就对华为云数据做个评测。感兴趣的可以看看。 云数据库天然具备稳定可

    2023-05-11
    149
  • Python的Numeric库:高效处理数值运算

    Python的Numeric库:高效处理数值运算Numeric库是Python语言的一个数值计算库,由Travis Oliphant开发,主要用于处理大数据量的数值运算。它是一个自由软件,可用于商业项目中。

    2024-04-12
    83
  • MyBatisPlus中关联查询时通用SQL中的include标签添加别名

    MyBatisPlus中关联查询时通用SQL中的include标签添加别名问题 在MyBatisPlus中要使用到关联查询时,如果查询的主表字段不使用别名,会出现异常: Column 'id' in field list is ambiguous 原因…

    2023-04-12
    154
  • Python软件工程必备工具推荐

    Python软件工程必备工具推荐Python是一门强大且灵活的编程语言,广泛应用于数据分析、机器学习、人工智能和web开发等领域。然而,在开发大型项目时,仅仅使用Python语言是远远不够的。为了提高开发效率和代码质量,还需要使用一系列必备工具。本文将会介绍一些Python软件工程方面的工具和技术,以供参考。

    2024-06-10
    56
  • 使用Python列表管理和操作项目

    使用Python列表管理和操作项目在Python中,列表是一个经常被使用的数据结构,用于存储一组有序的数据。列表可以包含不同类型的元素,例如数字、字符串和其他列表。Python提供了一些内置函数和方法,可以方便地对列表进行管理和操作。下面将从多个方面对使用Python列表管理和操作项目进行详细阐述。

    2024-03-03
    81
  • mysql ddl dml dql_人际关系总结

    mysql ddl dml dql_人际关系总结MySQL DDL操作执行的三种方式 1,INPLACE,在进行DDL操作时,不影响表的读&写,可以正常执行表上的DML操作,避免与COPY方法相关的磁盘I/O和CPU周期,从而最小化数据库的

    2022-12-16
    143
  • java读取大文件oom_java中如何读取文件

    java读取大文件oom_java中如何读取文件现在需要快速分析一个2g的csv文件; 基于掌握的知识,使用java按行读取文件,批量导入数据到Elasticsearch, 然后利用es强大的聚合能力分析数据,1个小时搞定! package com

    2023-04-27
    160
  • centos修改mysql用户的密码

    centos修改mysql用户的密码1、centos初始化安装,mysql默认是没有密码的 命令行登陆:mysql -u root -p 提示输入密码=》输入密码,即可 图 1 2、查询用户,输入命令:select user,host…

    2023-03-10
    162

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注