第十三章:约束
第十三章:约束
13.1:约束(constraint
)概述
-
为什么需要约束
数据完整性(
Data Integrity
)是指数据的精确性(Accuracy
)和可靠性(Reliability
)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,
SQL
规范以约束的方式对表数据进行额外的条件限制。- 实体完整性(
Entity Integrity
) - 域完整性(
Domain Integrity
) - 引用完整性(
Referential Integrity
) - 用户自定义完整性(
User-defined Integrity
)
- 实体完整性(
-
什么是约束
约束是表级的强制规定。可以在创建表时规定约束(通过
CREATE TABLE
语句),或者在表创建之后通过ALTER TABLE
语句规定约束。 -
约束的分类
-
根据约束数据列的限制
- 单列约束:每个约束只约束一列
- 多列约束:每个约束可约束多列数据
-
根据约束的作用范围
- 列级约束:只能作用在一个列上,跟在列的定义后面。
- 表级约束:可以作用在多个列上,不与列一起,而是单独定义。
位置 支持的约束类型 是否可以起约束名 列级约束 列的后面 语法都支持,但外键没有效果 不可以 表级约束 所有列的下面 默认和非空不支持,其他支持 可以(主键没有效果) -
根据约束起的作用
NOT NULL
:非空约束,规定某个字段不能为空UNIQUE
:唯一约束,规定某个字段在整个表中唯一的PRIMARY KEY
:主键(非空且唯一)约束FOREIGN KEY
:外键约束CHECK
:检查约束DEFAULT
:默认值约束
-
13.2:非空约束
-
作用
限定某个字段/某列的值不允许为空。
-
关键字
NOT NULL
-
特点
- 默认,所有的类型的值都可以是
NULL
,包括INT
、FLOAT
等数据类型。 - 非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空。
- 一个表可以有很多列都分别限定了非空。
- 空字符串"不等于
NULL
,0也不等于NULL
"。
- 默认,所有的类型的值都可以是
-
添加非空约束
# 建表时 CREATE TABLE test1( id INT NOT NULL, last_name VARCHAR(15) NOT NULL, email VARCHAR(25), salary DECIMAL(10, 2) );#建表后 ALTER TABLE test1 MODIFY email VARCHAR(25) NOT NULL;
-
删除非空约束
ALTER TABLE test1 MODIFY email VARCHAR(25) NULL;
13.3:唯一约束
-
作用
用来限制某个字段/某列的值不能重复。【允许出现多个空值:
NULL
】 -
关键字
UNIQUE
-
特点
- 同一个表可以有多个唯一约束。
- 唯一约束可以是某一列的值唯一,也可以多个列组合的值唯一。
- 唯一性约束允许列值为空。
- 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。
MYSQL
会给唯一约束的列上默认创建一个唯一索引。
-
添加唯一约束
-
键表时添加
CREATE TABLE test2( id INT UNIQUE, # 列级约束 last_name VARCHAR(15), email VARCHAR(25), salary DECIMAL(10, 2), #表级约束 CONSTRAINT uk_test2_email UNIQUE(email) );
-
建表后指定唯一约束
#方式1: ALTER TABLE test2 ADD CONSTRAINT uk_test2_sal UNIQUE(salary); #方式2: ALTER TABLE test2 MODIFY last_name VARCHAR(15) UNIQUE;
-
-
复合唯一约束
CREATE TABLE USER( id INT, `name` VARCHAR(15), `password` VARCHAR(25), #表级约束 CONSTRAINT uk_user_name_pwd UNIQUE(`name`, `password`) );
-
删除唯一约束
- 添加唯一性约束的列上也会自动创建唯一索引。
- 删除唯一约束只能通过删除唯一索引的方式删除。
- 删除时需要指定唯一索引名,唯一索引名就和唯一约束名一样。
- 如果创建唯一约束时并未指定名称,如果是单列,就默认和列名相同,如果是组合列,那么默认和()中排在第一个的列名相同。也可以自定义唯一性约束名。
ALTER TABLE test2 DROP INDEX last_name;ALTER TABLE test2 DROP INDEX uk_test2_sal;
13.4:PRIMARY KEY
约束
-
作用
用来唯一标识表中的一行记录。
-
关键字
primary key
-
特点
- 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值。
- 一个表最多只能有一个主键约束,建立主键约束可以在列级别创建,也可以在表级别上创建。
- 主键约束对应着表中的一列或者多列(复合主键)。
- 如果是多列组合的复合主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。
MySQL
的主键名是PRIMARY
,就算自己命名了主键约束名也没用。- 当创建主键约束时,系统默认会在所在的列或列组合上建立对应的主键索引(能够根据主键查询的,就根据主键查询,效率更高)。如果删除主键约束了,主键约束对应的索引就会自动删除了。
- 注意:不要修改主键字段的值。修改了主键的值,可能会破坏数据的完整性。
-
添加主键约束
-
键表时指定主键约束
# 方式一 CREATE TABLE test4( id INT PRIMARY KEY, last_name VARCHAR(15), salary DECIMAL(10, 2), email VARCHAR(25) );# 方式二 CREATE TABLE test5( id INT, last_name VARCHAR(15), salary DECIMAL(10, 2), email VARCHAR(25), CONSTRAINT pk_test5_id PRIMARY KEY(id) #没有必要起名字 );
-
建表后添加主键约束
CREATE TABLE test6( id INT, last_name VARCHAR(15), salary DECIMAL(10, 2), email VARCHAR(25) );ALTER TABLE test6 ADD PRIMARY KEY(id);
-
-
复合主键
CREATE TABLE user1( id INT, NAME VARCHAR(15), PASSWORD VARCHAR(25), PRIMARY KEY (NAME, PASSWORD) );
-
删除主键约束
ALTER TABLE test6 DROP PRIMARY KEY;
13.5:自增列
-
作用
某个字段的值自增。
-
关键字
atuo_increment
-
特点和要求
- 一个表最多只能有一个自增长列。
- 当需要产生唯一标识或顺序值时,可设置自增长。
- 自增长列约束的列必须是键列(主键列,唯一键列)。
- 自增约束的列的数据类型必须是整数类型。
- 如果自增列指定了0和
null
,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接赋值为具体值。
-
指定自增约束
-
建表是指定自增列
CREATE TABLE test7( id INT PRIMARY KEY AUTO_INCREMENT, last_name VARCHAR(15) );
-
建表后指定自增长列
CREATE TABLE test8( id INT PRIMARY KEY, last_name VARCHAR(15) );ALTER TABLE test8 MODIFY id INT AUTO_INCREMENT;
-
-
删除自增约束
ALTER TABLE test8 MODIFY id INT;
-
MySQL 8.0
新特性-自增变量的持久化 在
MySQL 8.0
之前,自增主键AUTO_INCREMENT
的值如果大于max(primary key) + 1
,在MySQL
重启后,会重置AUTO_INCREMENT=max(primary key) + 1
,这种现象在某些情况下会导致业务主键冲突或者其他难以发现的问题。 在
MySQL 5.7
系统中,对于自增主键的分配规则,是由InnoDB
数据字典内部一个计数器来决定的,而该计数器只在内存中维护,并不会持久到磁盘中。当数据库重启时,该计数器会被初始化。
MySQL 8.0
将自增主键的计数器持久化到重做日志中。每次计数器发生改变,都会将其写入重做日志中。如果数据库重启,InnoDB
会根据重做日志中的信息来初始化计数器的内存值。
13.6:FOREIGN KEY约束
-
作用
限定某个表的某个字段的引用完整性。
-
关键字
FOREIGN KEY
-
主表和从表/父表和子表
- 主表(父表):被引用的表,被参考的表。
- 从表(子表):引用别人的表,参考别人的表。
-
特点
- 从表的外键列,必须引用/参考主表的主键或唯一约束的列。
- 在创建外键约束时,如果不给外键约束命名,默认名不是列名,而是自动产生一个外键名,也可以指定外键约束名。
- 创建(
CREATE
)表时看指定外键约束的话,先创建主表,在创建从表。 - 删除表时,先删从表(或先删除外键约束),在删除主表。
- 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。
- 在"从表"中指定外键约束,并且一个表可以建立多个外键约束。
- 从表的外键列与主表被参照的列名字可以不相同,但是数据类型必须一样,逻辑意义一致。如果类型不一样,创建子表时,就会出现错误
ERROR 1005(HY000): Can't create table'database.tablename'(errno: 150)
。 - 当创建外键约束时,系统默认会在所在的列上建立对应的普通索引。但是索引名是外键的约束名。
- 删除外键约束后,必须手动删除对应的索引。
-
添加外键约束
-
建表时添加外键约束
#①先创建主表 CREATE TABLE dept1( dept_id INT PRIMARY KEY, dept_name VARCHAR(15) ); #②再创建从表 CREATE TABLE emp1( emp_id INT PRIMARY KEY AUTO_INCREMENT, emp_name VARCHAR(15), department_id INT,CONSTRAINT fk_emp1_dept_id FOREIGN KEY (department_id) REFERENCES dept1(dept_id) );
-
建表后添加外键约束
CREATE TABLE dept2( dept_id INT PRIMARY KEY, dept_name VARCHAR(15) );CREATE TABLE emp2( emp_id INT PRIMARY KEY AUTO_INCREMENT, emp_name VARCHAR(15), department_id INT );ALTER TABLE emp2 ADD CONSTRAINT fk_emp2_dept_id FOREIGN KEY(department_id) REFERENCES dept2(dept_id);
-
-
约束等级
Cascade
方式:在父表上update/delete
记录时,同步update/delete
掉子表的匹配记录。Set null
方式:在父表上update/delete
记录时,将子表上匹配记录的列设为null
,但是要注意子表的外键列不能为not null
。No action
方式:如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete
操作。Restrict
方式:同no action
,都是立即检查外键约束。Set default
方式:(在可视化工具SQLyog
中可能显示空白):父表有变更时,子表将外键列设置成一个默认的值,但Innodb
不能识别。
如果没有指定等级,就相当于
Restrict
方式。对于外键约束,最好是采用:ON UPDATE CASCADE ON DELETE RESTRICT
的方式。CREATE TABLE dept( did INT PRIMARY KEY, #部门编号 dname VARCHAR(50) #部门名称 );CREATE TABLE emp( eid INT PRIMARY KEY, #员工编号 ename VARCHAR(5), #员工姓名 deptid INT, #员工所在的部门 #把修改操作设置为级联修改等级,把删除操作设置为set null等级 FOREIGN KEY (deptid) REFERENCES dept(did) ON UPDATE CASCADE ON DELETE SET NULL );INSERT INTO dept VALUES(1001, '教学部'); INSERT INTO dept VALUES(1002, '财务部'); INSERT INTO dept VALUES(1003, '咨询部');INSERT INTO emp VALUES(1, '张三', 1001); #在添加这条记录时,要求部门表有1001部门 INSERT INTO emp VALUES(2, '李四', 1001); INSERT INTO emp VALUES(3, '王五', 1002);UPDATE dept SET did = 1004 WHERE did = 1002;DELETE FROM dept WHERE did = 1004;SELECT * FROM dept; SELECT * FROM emp;/* dept表 +--------+------------+ | did | dname | +--------+------------+ | 1001 | 教学部 | +--------+------------+ | 1003 | 咨询部 | +--------+------------+ *//* emp表 +--------+------------+------------+ | eid | ename | deptid | +--------+------------+------------+ | 1 | 张三 | 1001 | +--------+------------+------------+ | 2 | 李四 | 1001 | +--------+------------+------------+ | 3 | 王五 | null | +--------+------------+------------+ */
-
删除外键约束
ALTER TABLE emp1 DROP FOREIGN KEY fk_emp1_dept_id;
-
开发中应用场景
-
如果两个表之间有关系(一对一、一对多),他们之间是否一定要建外键约束?
不是。
-
建和不建外键约束有什么区别?
建外键约束,你的操作(创建表、删除表、添加、修改、删除)会受到限制,从语法层面受到限制。
不建外键约束,你的操作(创建表、删除表、添加、修改、删除)不受限制,要保证数据的引用完整性,只能依靠程序员的自觉,或者是在
Java
程序中进行限定。 -
那么建和不建外建约束和查询有没有关系?
没有。
-
说明
在
MySQL
里,外建约束是有成本的,需要消耗系统资源。对于大并发的SQL
操作,有可能会不适合。比如大型网站的中央数据库,可能会因为外建约束的系统开销而变得非常慢。所以,MySQL
允许你不使用系统自带的外键约束,在应用层面完成检查数据的一致性的逻辑。也就是说,即使你不用外键约束,也要想办法通过应用层面的附加逻辑,来实现外键约束的功能,确保数据的一致性。 -
阿里开发规范
【强制】不得使用外键与级联,一切外键概念必须在应用层解决。
-
13.7:CHECK约束
-
作用
检查某个字段的值是否符合要求,一般指的是值的范围。
-
关键字
CHECK
-
说明:
MySQL 5.7
不支持
MySQL 5.7
可以使用check
约束,但check
约束对数据验证没有任何作用。添加数据时,没有任何错误或警告。但是**MySQL 8.0
中可以使用check
约束了**。CREATE TABLE test10( id INT, last_name VARCHAR(15), salary DECIMAL(10, 2) CHECK(salary > 2000) );INSERT INTO test10 VALUES(1, 'Tom', 2500);#添加失败 INSERT INTO test10 VALUES(2, 'Tom1', 1500);SELECT * FROM test10;/* test10表 +--------+------------+------------+ | id | last_name | salary | +--------+------------+------------+ | 1 | Tom | 2500.00 | +--------+------------+------------+ */
13.8:DEFAULT约束
-
作用
给某个字段/某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显示赋值,则赋值为默认值。
-
关键字
DEFAULT
-
字段加默认值
-
建表时添加默认值
CREATE TABLE test11( id INT, last_name VARCHAR(15), salary DECIMAL(10, 2) DEFAULT 2000 );
-
建表后添加默认值
CREATE TABLE test12( id INT, last_name VARCHAR(15), salary DECIMAL(10, 2) );ALTER TABLE test12 MODIFY salary DECIMAL(8, 2) DEFAULT 2500;
-
-
删除默认值约束
ALTER TABLE test12 MODIFY salary DECIMAL(8, 2);
相关文章:
第十三章:约束
第十三章:约束 13.1:约束(constraint)概述 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 为…...
M.2 SSD接口详解
一、M.2简介 M.2接口是一种新的主机接口方案,可以兼容多种通信协议,如sata、PCIe、USB、HSIC、UART、SMBus等。 M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。无论是更小巧的规格尺…...
在本地Windows 11 系统的桌面版Docker上搭建PlantUML
文章目录 在本地Windows系统的桌面版Docker上搭建PlantUML简介步骤步骤 1:安装Docker Desktop步骤 2:启动Docker Desktop步骤 3:拉取PlantUML镜像步骤 4:运行PlantUML容器步骤 5:访问PlantUML Web界面 结论参考资料 结…...
mysql的sql_mode模式
1、sql_mode是MySQL中的一个系统变量,用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性,包括数据校验、日期处理、空值处理等。 下面是一些常见的sql_mode模式及其作用: STRICT_ALL_TABLES:为所有存储…...
chatgpt赋能python:Python编程必备之OpenCV库下载与安装
Python编程必备之OpenCV库下载与安装 作为目前最热门的计算机视觉库之一,OpenCV在人工智能领域中发挥着巨大的作用。而Python作为一门强大的编程语言,在OpenCV的使用上也有其独特的优势。本文将介绍Python如何下载和安装OpenCV库,以及如何引…...
sparkSQL的使用
sparksql只能处理结构化数据 基于rdd构建dataframe对象 from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StringType, IntegerTypeif __name__ __main__:spark SparkSession.builder.appName(test).master(local[*]).getOrCreate()sc spa…...
gitignore的语法
.gitignore 文件是用来告诉 Git 哪些文件或目录不应该被跟踪的。下面是一些常见的 .gitignore 文件语法规则: 空行或以#开头的行将被 Git 忽略,可以用作注释。 星号 * 代表零个或多个任意字符。例如, *.txt 会匹配所有的 .txt 文件。 问号 ? 代表一个…...
长袋除尘器
长袋低压脉冲除尘器是具有先进水平的高效袋式除尘设备,是一种处理风量大、清灰效果好、除尘效率高、运行可靠、维护方便、占地面积小的大型除尘设备。 工作机理 1、过滤原理: 长袋低压脉冲除尘器含尘气体由进风口进入,经过灰斗时,气体中部分大颗粒粉尘…...
HTML+CSS实训——Day02——仿一个网易云音乐的登陆界面
仓库链接:https://github.com/MengFanjun020906/HTML_SX 前言 今天要继续完成我们的音乐软件了,昨天写完了封面,今天该完成开屏广告和登陆界面了。 登陆界面代码 <!DOCTYPE html> <html lang"en"> <head><meta charse…...
css蓝桥杯--电影院排座位
目录 一、介绍二、准备三、⽬标四、代码五、知识点六、完成 一、介绍 随着⼈们⽣活⽔平的⽇益提升,电影院成为了越来越多的⼈休闲娱乐,周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇,⼜有⼀个电影院正在做着开张前…...
c++学习——多态
多态 **多态的语法****多态的底层原理图****多态案1——计算机类****纯虚函数和抽象类****多态案例2——饮品****虚析构和纯虚析构****多态案例3—— 电脑组装** 多态是C面向对象三大特性之一 多态分为两类 静态多态:函数重载和运算符重载属于静态多态,复用函数名 动…...
Java SPI机制及原理详解
前言 Java SPI (Service Provider Interface) 是一种重要的组件化方式,它可以让程序在运行时动态地装载一些实现模块,从而增强程序的可扩展性和灵活性。本文将详细介绍 Java SPI 的基本概念、原理以及使用方法。 1. 什么是Java SPI Java SPI 是一种标准…...
不压缩打包layui
手动打包 下载layui源码(当前版本2.6.4),并解压缩 下载地址:layui gitee 安装nodejs(v10.24.1) 下载链接 windows-x64 安装cnpm npm install -g cnpm -registryhttps://registry.npm.taobao.org全局安…...
过去、现在及未来
人生最邪恶的地方在于,只能年轻一次 回顾下我毫无规划的,且已经消耗掉的青春 一:过去 19岁,进入大学,兼职、玩儿、暧昧 20-21岁,初创软件公司打杂、恋爱、暧昧 22、23、24岁,上海ÿ…...
leetcode701. 二叉搜索树中的插入操作(java)
二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接: 来源:力扣(LeetCode) 链接:https://leetcode.cn/problem…...
Docker的容器管理操作
1、创建容器 容器创建:就是将镜像加载到容器的过程。 创建容器时如果没有指定容器名称,系统会自动创建一个名称。 新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。 docker create创建的容器…...
计算机组成原理——中央处理器
文章目录 **一 CPU的功能和基本结构****1 CPU的功能****2 [基本结构](http://t.csdn.cn/bpCt3)****2.1 运算器****2.2 控制器** **二 指令执行过程****1 指令周期****2 指令周期的数据流****2.1 取指周期****2.2 间址周期****2.3 执行周期****2.4 中断周期** **3 指令的执行方案…...
tidb变更大小写敏感问题的总结
作者: sustyle 原文来源: https://tidb.net/blog/2a72bc13 1 背景 近期,我们线上的tidb集群就遇到一个变更忽略大小写的需求,本来以为一个改表工单就解决了,但是业务反馈工单完成后,大小写仍旧敏感&…...
法规标准-UN R158标准解读
UN R158是做什么的? UN R158全名为针对驾驶员识别车辆后方弱势道路使用者,联合国对倒车系统和机动车的统一规定,该法规涉及批准倒车和机动车辆的装置,主要为保证倒车时避免碰撞,方便驾驶员观察了解车辆后部人员和物体…...
160个CrackMe之002
这道题就很简单 有了第一道题目的支持 我们就能做 首先 我们先要下载Msvbvm50.dll Msvbvm50.dll下载_Msvbvm50.dll最新版下载[修复系统丢失文件]-下载之家 然后我们可以运行程序了 比之前那个还简单 就是输入 然后比对 报错或者成功 开始逆向分析 先去常量中进行查找 找…...
3. 响应状态码及Response对象的status_code属性
3. 响应状态码及Response对象的status_code属性 文章目录 3. 响应状态码及Response对象的status_code属性1. 响应状态码2. 响应状态码共分为5种类型2.1 1xx(临时响应)2.2 2xx (成功)2.3 3xx (重定向)2.4 4x…...
MIME 类型列表 03
看表~按照内容类型排列的 MIME 类型列表 类型/子类型扩展名application/envoyevyapplication/fractalsfifapplication/futuresplashsplapplication/htahtaapplication/internet-property-streamacxapplication/mac-binhex40hqxapplication/msworddocapplication/msworddotappl…...
SpringBoot项目登录并接入MFA二次认证
MFA多因素认证(Multi-Factor Authentication ): 一些需要身份认证的服务(如网站),为了提升安全性,通常会在账号密码登录成功后,要求用户进行第二种身份认证,以确保是正确用户登录,避…...
算法与数据结构(三)
一、堆 1,堆结构就是用数组实现的完全二叉树结构 根节点的左孩子的下标为:2i1,右孩子为2i2。两个孩子的父节点为(i-1)/2向下取整 2,完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 从下往上将孩子与父节点进行比较,如果子叶…...
亚马逊云科技出海日,让数字经济出海扩展到更多行业和领域
数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从传统制造业“中国产品”出口,向创新“中国技术”和先导“中国品牌”的逐步升级。 作为全球云计算的开创者与引领者,亚马逊云科技…...
Pb协议的接口测试
【摘要】 Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据,此工具对标 XML ,支持自动编码,解码。比 XML 性能好,且数据易于解析。更多有关工具的介绍可参考…...
2. 分布式文件系统 HDFS
2. 分布式文件系统 HDFS 1. 引入HDFS【面试点】 问题一:如果一个文件中有 10 个数值,一行一个,并且都可以用 int 来度量。现在求 10 个数值的和 思路: 逐行读取文件的内容把读取到的内容转换成 int 类型把转换后的数据进行相加…...
借助金融科技差异化发展,不一样的“破茧”手法
撰稿 | 多客 来源 | 贝多财经 民营银行的诞生顺应了普惠金融的要求,承担着支持民营经济、服务小微的历史使命。经过近年来的发展,19家民营银行形成了特色化、差异化的发展模式,并用各自本领实践普惠金融的初心。 本文从多家民营银行在核心技…...
typescript中type、interface的区别
一、概念定义 interface:接口 在TS 中主要用于定义【对象类型】,可以对【对象】的形状进行描述。type :类型别名 为类型创建一个新名称,它并不是一个类型,只是一个别名。 二,区别 interface: …...
Ingress详解
Ingress Service对集群外暴露端口两种方式,这两种方式都有一定的缺点: NodePort :会占用集群集群端口,当集群服务变多时,缺点明显LoadBalancer:每个Service都需要一个LB,并且需要k8s之外设备支…...
wordpress跨域访问/搜全网的浏览器
参考资料(含下载链接) 源创作者 https://www.freebuf.com/vuls/176313.html 版本 Empire CMS v7.5 漏洞 xss 复现 1)访问后台 漏洞url http://b.com/e/admin/openpage/AdminPage.php?leftfile..%2FShopSys%2Fpageleft.php%3Fehash_loRqO%3DNspU9dpDDGEOxrTMIPbV…...
wordpress视频教程下载地址/app怎么开发出来的
关于cocos2d-x下Lua调用C的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下:cocos2d-x下Lua调用C这事之所以看起来这么复杂、网上所有的文档都没讲清楚,是因为存在5个…...
电商网站建设与运营实训/中国站长
大家在是否碰到过这样的站点,全站文章系统采用FSO静态生成的HTML文件来显示。这样做的好处一来可以减轻服务器负担,提高访问速度。二来也阻止了SQL注入式的攻击。 我来说说他们的文章系统原理:全部文章均在数据库存有一个副本。另处根据模板生…...
敏捷开发流程的8个步骤/seo关键词排名公司
作者:Sinsonglew 出处:http://www.cnblogs.com/sinsonglew 欢迎转载,也请保留这段声明。thanks :) 注记:NCL官方依赖安装包全集列表、官方源码编译指导链接:http://www.ncl.ucar.edu/Download/build_from_src.shtml&am…...
企业做网站怎么做/百度网页版进入
一.CommitFailedException CommitFailedException:Consumer客户端在提交位移时出现了错误或异常,而且还是不可恢复的严重异常。 二.产生CommitFailedException的原因: 本次提交位移失败,原因是消费者开启Rebalance过程…...
宁波网站制作流程/宁波seo优化外包公司
[hadoopmaster1 ~]$ cat zookeeper/conf/zoo.cfg # The number of milliseconds of each tick 每个心跳的时长 单位为毫秒 tickTime2000 # The number of ticks that the initial # synchronization phase can take 初始化同步时期的心跳数 initLimit10 # The number of tick…...