(五)约束

渗透测试面试题 渗透测试面试题 一.思路流程 1.信息收集 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,... 阅读详情

约束

约束的作用:
    定义规则
    确保数据的完整性

五种约束:

1.非空约束

--在创建表的时候设置非空约束
CREATE TABLE table_name
(
  column_name datatype NOT NULL , ....
) ;


--在修改表的时候添加非空约束(要是没有任何数据的情况下)
ALTER TABLE table_name MODIFY column_name datatype NOT NULL ;


--在修改表的时候去除非空约束
ALTER TABLE table_name MODIFY column_name datatype NULL ;

2.主键约束

确保表中的每一行数据的唯一行(唯一 , 非空)
一张表只能有一个主键约束
主键约束可以由多个字段组成(联合主键约束或复合主键)
2.1在创建表的时候设置主键约束
--方式一:单字段主键约束
 CREATE TABLE table_name
 (
      column_name datatype PRIMARY KEY , ...
 );


--方式二:多字段主键约束
 CREATE TABLE table_name
 (
      column_name1 datatype  ,
      column_name2 datatype ,
      ...,
      CONSTRAINT constraint_name PRIMARY KEY(column_name1, ...)
 );



--例如:
create table user_info
(
    id number(6,0) ,
    name varchar2(20) ,
    password  varchar2(20) not null ,
    email varchar2(30) not null,
    constraint pk_id_name primary key(id, name)
);

这里写图片描述

--查找表的约束名:
SELECT constraint_name FROM user_constraints WHERE table_name = 'TABLE_NAME' ;

--例如
select constraint_name from user_constraints where table_name='USER_INFO' ;

这里写图片描述


2.2在修改表时添加主键约束
--修改时添加主键约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIAMRY KEY(column_name1, ...) ;

--例如
alter table user_info1 add constraint pk_id_name primary key(id,name);

这里写图片描述


2.3更改约束名
--更改约束名
ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name ;


--例如:
alter table user_info1 rename constraint pk_id_name to new_id_name ;

这里写图片描述


2.4禁用和启用主键约束:
--禁止或启用主键约束
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT constraint_name ;


--例如:
alter table user_info1disable constraint new_pk_id_name ;

这里写图片描述
这里写图片描述
这里写图片描述


2.5删除主键约束
 ALTER TABLE table_name DROP CONSTRAINT constraint_name ;
-- 或
 ALTER TABLE table_name DROP PRIMARY KEY[CASCADE];


-- 例如:
 alter table user_info1 drop constraint new_pk_id_name ;

这里写图片描述


3.外键约束

3.1在创建表的时候添加外键约束
table_name1为主表 , table_name2为从表
主从表中相应的字段的类型必须一致, 从表的外键必须是主表的主键
外键字段的值必须来之主表 ,或者为null
CREATE TABLE table_name1
(
    column_name1 datatype PRIAMRY KEY ,
    ....
);


--方式一:
CREATE TABLE table_name2
(
    column_name1 datetype PRIAMRY key ,
    column_name2 datatype REFERENCES table_name1(column_name1),
    ...
);


--例如:
create table user_info
(
    id number(6,0) primary key,
    name varchar2(20) not null,
    password varchar2(20) not null,
    email varchar2(30)
);
create table card
(
    id number(8,0) primary key,
    money number(8,2) not null ,
    user_id number(6,0) references user_info(id)
);

这里写图片描述

--方式二:
CREATE TABLE table_name2
 (

    column_name1 datetype PRIAMRY key ,
    column_name2 datatype ,
    ....,
    CONSTRAINT constraint_name foreign key(column_name) REFERENCES table_name1(column_name) [ON DELETE CASCADE] 

 );


--例如
create table card
(
    id number(8,0) primary key,
    money number(8,2) not null ,
    user_id number(6,0) ,
    constraint FK_USER_ID foreign key(user_id) references user_info(id) on delete cascade
);

这里写图片描述


3.2在修改表的时候添加外键约束
ALTER TABLE table_name1 ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name2(column_name) ;

--例如
alter table card add constraint fk_user_id foreign key(user_id) references user_info(id) ;

这里写图片描述


3.3在修改表的时候删除外键约束(和删除主键一样)
--禁用外键约束:
ALTER TABLE table_name DISABLE|ENADBLE CONSTRAINT constraint_name ;
--删除外键约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name ;


--例如
alter table card drop constraint fk_user_id ;

这里写图片描述


4.唯一约束

 保证其唯一性
 唯一约束与主键约束的区别:
      主键约束要保证字段为非空的
      唯一约束中允许有一个空值
      主键在一张表中只能有一个
      唯一约束一张表中可以有多个
4.1在创建表的时候设置唯一约束

--方式一:
 CREATE TABLE table_name
 (
      column_name datatype UNIQUE,
      ....
 );


--方式二:

 CREATE TABLE table_name
 (
      column_name datatype ,
      .... ,
      CONSTRAINT constraint_name UNIQUE(column_name)
 );

4.2在修改表的时候添加唯一约束
ALTER TABLE table_name ADD  CONSTRAINT constraint_name UNIQUE(column_name) ;    

4.3在修改表的时候删除唯一约束
--禁用唯一约束:
ALTER TABLE table_name DISABLE|ENADBLE CONSTRAINT constraint_name ;

--删除唯一约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name ;

5.检查约束

5.1在创建表的时候设置检查约束
--方式一:
CREATE TABLE table_name
 (
      column_name datatype CHECK(expressions),
      ....
 );


--方式二:
 CREATE TABLE table_name
 (
      column_name datatype ,
      .... ,
      CONSTRAINT constraint_name CHECK(expressions)
 );

5.2在修改表的时候添加唯一约束
ALTER TABLE table_name ADD  CONSTRAINT constraint_name CHECK(expressions) ;    

5.3在修改表的时候删除唯一约束
--禁用唯一约束:
ALTER TABLE table_name DISABLE|ENADBLE CONSTRAINT constraint_name ;


--删除唯一约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name ;

总结

    除去not null约束外,其他四个约束primary key ,foreign key, unique, check在添加约束是有些不同,主要是关键字的不同.
    在删除约束禁用约束上都是一样的格式.
--禁用primary key ,foreign key, unique, check约束:
ALTER TABLE table_name DISABLE|ENADBLE CONSTRAINT constraint_name ;


--删除primary key ,foreign key, unique, check约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name ;
1、动作捕捉技术:概述与历史 本博文全面介绍了动作捕捉技术的概念、历史演变、类型分类以及完整的工作流程。从早期的连续摄影技术到现代数字动作捕捉系统,文章深入探讨了光学、磁性和机械动作捕捉系统的优缺点及适用场景,并详细解析了动作捕捉数据的生成原理与数学基础。此外,还涵盖了特殊部位如手部、面部和木偶的动作捕捉方法,并讨论了动作捕捉在动画制作、虚拟现实、医疗康复等领域的广泛应用与发展前景。 阅读详情

相关推荐

C语言实现贪吃蛇小游戏!(超简单详细)详细思路+源码分享

我们的今天的目标就是:用C语言来实现一个贪吃蛇项目,也不用太复杂,初学者能看懂就行!

致力于C语言C++知识分享! 1万+

Navicat Premium怎么设置字段的唯一性(UNIQUE)?

1、打开你想要设计的表 2、清楚你想要设计哪个字段为唯一的,例如我这里是设计name字段唯一,然后点击索引 3、然后设置相关内容 说明: 名:索引名 字段:想要设计的那个UNIQUE字段名,这里可以选择,也可以直接输入 索引类型:当然是选择UNIQUE啦 索引方法:可以不写,默认如图 注释:就是注释啦 4、点击左上角的保存。 5、测试,当你插入相同name值的记...

EasyChillの博客 3万+

【网络协议】TCP的拥塞控制机制

前言 计算机网络中的带宽、交换节点中的缓存和处理机等,都是网络的资源,在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫做拥塞。 所谓拥塞控制,就是防止过多的数据注入到网络中,从而使网络中的路由器或链路不致过载。要注意用拥塞控制与流量控制的区别,拥塞控制是一个全局性的过程,涉及到所有的额主机、路由器,以及与降低网 拥塞控制的算法有:慢开始、拥塞避免、快重传、快恢复四种。 慢开始和拥塞避免 发送方维持一个拥塞窗口的状态变量,其大小取决于网络的拥塞程度

兰亭风雨的专栏 1万+

软件开发必备流程,用户名设置为唯一,Navicate如何将user设置为唯一,开发前一定要先设置,要不改不好改,alt + enter快速创建方法

第一步:点击设计表 第二步: 设置栏,选择你想要的栏 第三步 设置为Unique

weixin_54048131的博客 452

一生一芯 预学习阶段 NEMU代码学习(2)

如果 nemu_state.state == NEMU_ABORT:说明程序处于 "中止" 状态,输出 "ABORT",并且使用 ANSI_FG_RED 红色格式化显示。如果 halt_ret == 0,表示程序正常终止(触发了 "GOOD TRAP"),输出 "HIT GOOD TRAP",并使用 ANSI_FG_GREEN 绿色显示。如果要执行的指令数量 n 小于预定义的常量 MAX_INST_TO_PRINT,则将 g_print_step 置为 true,表示会逐步打印指令执行的过程。

weixin_45041054的博客 827

Code Ocean 上传代码 手把手教程

对于一些学术期刊,录用前会让把代码上传到Code Ocean上,但上传过程可能会遇到一些问题,小编分享一下自己的上传经验。他们会进行验证,验证通过,将自动发布。点此运行即可,但是运行比较慢。

u014071947的博客 1万+

navicat设置表中字段唯一约束

首先进入设计表: 如下界面点击索引: 如下设置: 栏位选择想要唯一约束的字段 点击保存即可

心有猛虎 细嗅蔷薇 1万+

一个基于ZYNQ、AXI接口的PL端卷积加速器,可由PS端调用(附Github源码)

一个基于ZYNQ,AXI接口的PL端卷积加速器,可由PS端调用开发板型号:Zynq-7000 SoC XC7Z305 FPGA开发平台:Vivado 2019.1;Github源码链接:https://github.com/CY0807/ZYNQ_PL_CONV_ACC。

跳跳骑士的博客 1306

Navicat工具中如何为字段添加check约束

使用MySQL可视化工具——Navicat工具创建的数据库,有时候需要为某个字段添加check约束。 在这里我找到的第一种方式是引自为表中的某个字段添加check约束; alter table `person` add CONSTRAINT ck_relation_id CHECK(sex="男" or sex="女") 很遗憾没有效果,蛮奇怪的,放弃该方案。 继续寻找方法, Navicat工具...

tida_yake的博客 1万+

ESP32 WiFi自平衡小车硬件与PID控制实战

自平衡小车是典型的嵌入式实时反馈控制系统,其核心依赖姿态感知(如MPU6050)、电机驱动(如L298N)与闭环控制算法(如PID)的协同。系统通过IMU采集俯仰角,经互补滤波融合处理,再由PID控制器实时计算PWM输出,驱动直流电机产生恢复力矩;WiFi模块(ESP32内置)则提供远程遥控接口,实现AP模式下的Web指令交互。该架构兼具硬实时性(毫秒级采样与响应)与软实时性(HTTP服务),广泛应用于机器人教学、智能小车开发及边缘控制原型验证。本文围绕ESP32平台,详解传感器接口、驱动电路设计、PID抗

weixin_42509513的博客 391

Delphi 12社区版免费了!手把手教你搭建跨平台开发环境(Windows/macOS/Android/iOS)

本文详细介绍了如何利用新发布的Delphi 12社区版,免费搭建支持Windows、macOS、Android和iOS的跨平台开发环境。内容涵盖从环境准备、安装、配置各平台SDK(包括Android与macOS/iOS的PAServer连接),到创建首个FireMonkey跨平台应用、集成数据库以及调试部署的完整实战流程,帮助开发者零成本启动高效开发。

butter的博客 977

五、约束

MySQL学习 五、约束(Constraint) 1.定义 ​ 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。 ​ 常见约束有: ​ ①非空约束(not null):约束的字段不能为NULL ​ ②唯一约束(unique):约束的字段不能重复 ​ ③主键约束(primary key):约束的字段既不能为NULL也不能重复(简称PK) ​ ④外键约束(foreign key):(简称FK) ​ ⑤检查约束(check):Orac

weixin_46303556的博客 157

LeetCode 热题 100 回顾

力扣最受刷题发烧友欢迎的 100 道题 LeetCode 热题 100 : 题目回顾、解题思路、复杂度分析、代码实现、验证算法

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 9万+

现代控制理论——五约束条件的变分问题(1):欧拉方程

欧拉方程

m0_52792591的博客 332

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

MySQL:五、约束

约束 目的:保证数据的完整性和一致性 列级约束:对一个数据列建立的约束,在列定义时声明或列定义后声明。 表级约束:对多个数据列建立的约束,只能在列定义后声明。 主键约束 PRIMARY KEY 1. 主键自动为NOT NULL 2. 主键保证记录的唯一性 3. 每张数据表只能存在一个主键 4. AUTO_INCREMENT 自动编号,必须与主键组合使用,默认情况下,起始值为1 非空约束 NOT ...

onj123的博客 199

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

五、SQL–索引/约束⑤(主键约束)

第一范式要求每张表都要有主键,因此主键约束是非常重要的,而且*主键约束是外键关联的基础条件。主键约束为表之间的关联提供了链接点。 主键必须能够唯一标识一条记录,即主键字段中的值必须是唯一的,而且不能包含NULL 值。虽然一张表中可以有多个UNIQUE 约束和非空约束,但每个表中只能有一个主键约束。 在CREATE TABLE语句中定义主键约束:在字段定义后添加PRIMARY KEY关键字即可。不过...

测试小白升级记 322

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mysql学习总结五:约束

一、什么是表约束 表约束是在创建表的时候,设计的一些表的约束条件,用来保证数据的合法性和数据的正确性。 二、为什么需要表约束 表约束是为了规范程序员正确使用表的,但表约束是预先设置的,设置之后就对所有插入和修改立即生效,比如非空约束设置好之后,如果添加和修改为null值就会报错。 三、约束类型 1.非空约束 语法: 字段 字段类型 not null 非空约束的作用: 注意: 1.学习了约束之后,我们设计表时,就应该注意约束条件。(字段 字段类型 约束…) 2.一个表中的非空约束时没有数量限制的,可以有

weixin_45795182的博客 1274

五、mysql—约束

员工表的 dep_id 列 与 部门表的 id 列进行关联。Tips:mysql不支持检查约束。

u012301725的博客 376

实验五 视图与完整性约束

因此,视图 cj_student 的结果集包含了所有选修了挂科课程的学生的信息,按照成绩从高到低排序。根据题目中的描述,SC表建立了学号Sno和课程号Cno的外键约束,而在学生表中并没有Sno为9512121的记录,因此在向SC表中插入数据时,学号Sno为9512121违反了外键约束,因此插入不成功,答案为选项D。接着,该视图使用了一个 GROUP BY 子句,按照课程名称 cname 将 cj_student 视图中的记录分组,以便统计每门课程挂科或成绩为空的学生人数,并获取每门课程对应的学生姓名列表。

程序员小火龙的知识分享 1262

Oracle学习(五)约束

一、非空约束 1.在创建表时设置非空约束 CREATE TABLE table_name( column_name datatype NOT NULL,…); 2.在修改表时添加非空约束 ALTER TABLE table_name MODIFY column_name datatype NOT NULL; 3.在修改表时去除非空约束 ALTER TABLE table_name MODIF...

陌若安生的博客 280

五、完整性约束

五、完整性约束 数据的完整性简介 就是正确性、准确性,包含三种: 实体完整性 参照完整性 用户自定义完整性 Oracle中主要通过约束、触发器、过程函数实现的。 维护数据的完整性 有not null、unique、check、primary key、foreign key五种。 not null例如学生的姓名;unique例如学生的学号;primary key主键、foreign key外键、check可以按照用户要求,进行自动检查。 unique不可以重复,但是可以为空。 primary key不可以

一个孤独漫步者的遐想的博客 232

五、MySql表的约束

主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。

weixin_54447296的博客 283

Mysql(五)常见约束

前言 本章主要讲述mysql的约束 一.概述 约束是添加在列上的,且用来约束列的 二.常见约束 NOT NULL:非空,该字段的值必填 UNIQUE:唯一,该字段的值不可重复 DEFAULT:默认,该字段的值不用手动插入有默认值 PRIMARY KEY:主键,该字段的值不可重复并且非空 unique+not null FOREIGN KEY:外键,该字段的值引用了另外的表的字段 1.主键约束(唯...

Mikasa的博客 313

五、SQL–索引/约束④(check约束)

CHECK约束会: 检查输入到记录中的值是否满足一个条件,如果不满足这个条件则对数据库做的修改不会成功。 如,一个人的年龄是不可能为负数的,一个人的入学日期不可能早于出生日期,出厂月份不可能大于12。可以在CHECK条件中使用任意有效的SQL表达式,CHECK约束对于插入、更新等任何对数据进行变化的操作都进行检查。 字段添加CHECK约束:在该字段定义后添加CHECK 表达式,几乎所有字段中都可以...

测试小白升级记 2740

FPGA时序约束(五)--衍生时钟约束

本文从衍生时钟的定义,它起到的作用来帮助大家理解。同时也给出了具体的约束方法和实例帮助大家实际的使用。

weixin_44253012的博客 1140

【MySQL基础篇】五、表的约束

​ 表中一定要有各种约束,通过约束让我们在未来使用数据库的时候,操作的结果都能是符合预期的!约束的本质就是通过技术手段倒闭程序员插入正确的数据!​ 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,这是为了更好地保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,我们要求其是唯一的,不能说要填啥就填啥,所以就要约束!​ 表的约束很多,这里主要介绍如下几个:null/not null、default、comment、zerofill。

lirendada的博客 1235
上一篇: (四)操作表和DML语句
下一篇: 数据库概念
elimuzi
博客等级 码龄10年 56粉丝 113原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值