右连接与左连接处理逻辑相反,右连接以右表的数据行为基础,根据条件匹配左表中的数据。如果匹配不到左表中的数据,则左表中的列为 NULL 值。...OR 运算符语法: a AND b 其中,a 和 b 是 OR 的两个操作数,可以是表达式,也可以是值。不像一些编程语言,MySQL 中没有布尔类型,OR 的运算结果是 1, 0, 或着 NULL。...IS NULL 运算符用来测试一个值是不是 NULL,如果是 NULL 返回 1,否则返回 0。 IS NULL 是一个单目比较运算符,只需要一个操作数。...以下是集合操作符 UNION 的语法: SELECT statementA UNION [DISTINCT | ALL] # UNION 默认为 UNION DISTINCT...运算包括 UNION DISTINCT 和 UNION ALL 两种算法,其中 UNION DISTINCT 可以简写为 UNION; ④UNION 会删除两个结果集中的重复记录行,而 UNION ALL
,UNION 和 UNION ALL 的主要区别是 UNION ALL 是把结果集直接合并在一起,而 UNION 是将 UNION ALL 后的结果进行一次 DISTINCT 去除掉重复数据。...可以看出 UNION 是对 UNION ALL 使用了 distinct 去重处理。... NULL-safe 的等于运算符,与 = 号最大的区别在于可以比较 NULL 值 ? 操作数小于右侧操作数时,返回值为 1, 否则其返回值为 0。 ?...AND 和 && 表示的是逻辑与的逻辑,当所有操作数为非零值并且不为 NULL 时,结果为 1,但凡是有一个 0 则返回 0,操作数中有一个 null 则返回 null ?...XOR 表示逻辑异或,当任意一个操作数为 NULL 时,返回值为 NULL。对于非 NULL 的操作数,如果两个的逻辑真假值相异,则返回结果 1;否则返回 0。 ?
COLLATE utf8mb4_bin DEFAULT NULL, `age` int DEFAULT NULL, `birth_date` date DEFAULT NULL, `hire_date...第三行 extra 值是 Using temporary,表明在对上面两个查询的结果集做 UNION 的时候,使用了临时表。 UNION 操作是将两个结果集取并集,不包含重复项。...因为值 5000 早已存在临时表中,而第二个子查询的值 5000 就会因为冲突无法插入,只能插入下一个值 4999。...UNION ALL 与 UNION 不同,并不会使用内存临时表,下列例子是使用 UNION ALL 的执行计划。...如果使用了 UNION 或 UNION ALL,SELECT 的列表中存在任何最大长度超过 512 的字符串列(对于二进制字符串为字节,对于非二进制字符串为字符)。
Type:表示字段类型。 Null:表示该列是否可以存储NULL值。 Key:表示该列是否已编制索引。...在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL时,其返回值为0,而不为NULL。...j.lowest_sal AND j.highest_sal; 5.3、内连接 vs 外连接 除了查询满足条件的记录以外,外连接还可以查询某一方不满足条件的记录 内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行...各个SELECT语句之间使用UNION或UNION ALL关键字分隔。 SELECT column,... FROM table1 UNION [ALL] SELECT column,......(timestamp) 将UNIX时间戳的时间转换为普通格式的时间 7.5、日期的格式化与解析 函数 用法 DATE_FORMAT(date,fmt) 按照字符串fmt格式化日期date值 TIME_FORMAT
表级锁:两种模式 共享锁(读锁)与独占锁(写锁,排他锁),表级锁引擎:MyISAM MEMORY 共享锁:在读的时候上锁,所有人都可以访问不阻塞其他用户对同一表读请求,但阻塞同一表的写操作包括自己;自己如果加了读锁...行级锁:引擎InnoDB,模式包含 共享锁(S),排它锁(X),意向共享锁(IS),意向排它锁(IX) 如果一个事务请求的锁模式与当前的锁兼容,innoDB就将请求的锁授予该事物;反之,如果两者不兼容,...冲突 冲突 冲突 意向排它锁(IX) 冲突 兼容 冲突 兼容 共享锁(S) 冲突 冲突 兼容 兼容 意向共享锁(IS) 冲突 兼容 兼容 兼容 #加锁 SELECT * FROM table_name...DERIVED:派生表(FROM子句的子查询) #table 本次查询的表名,或派生表 #type mysql在表中的访问类型 ALL: 遍历全表,目标不带索引 < index: 遍历全表索引树 值可被优化器剩余部分认为是常数 < system: 衍生查询中只有一条数据 < NULL #possible_keys 本查询可能用的索引 #key 本查询真实用的索引 #key_len
可以指定一个SELECT中的NULL列与另一个SELECT中的数据列配对,以匹配列的数量。...其他数据类型,如DATE,没有分配优先级。 例如,下面的程序返回数据类型TINYINT,尽管DATE数据类型在其他上下文中具有更高的优先级。...UNION and UNION ALL 普通的UNION消除了结果中的重复行(所有值都相同)。 UNION ALL在结果中保留重复的行。 不同精度的字段不具有相同的值。...例如,值33(数据类型NUMERIC(9))和33.00(数据类型NUMERIC(9,2))并不被认为是相同的。 具有不同排序规则的字段没有相同的值。...UNION ALL和聚合函数 SQL自动优化将UNION ALL聚合函数推入UNION分支子查询。 SQL计算每个子查询的聚合值,然后组合结果返回原始聚合值。
fmt) 日期格式转化 date_format('2022-02-28', 'yyyyMMdd') -- 20220228 其他重点函数 函数类型 返回类型 函数 描述 备注 类型转换函数 Expected...如果不参与聚合的字段本身也含有NULL,那group 强化后的结果就会出现两行NULL,很多同学看到结果后就开始怀疑人生了。...all -- 一个union all类似于一个inser into select 'a1' as a, 'b2' as b, 'c1' as c, 2 as d union...all select 'a2' as a, 'b3' as b, null as c, 3 as d union all select null as...示例如下: with `user` as -- 当别名与内部关键字冲突,需要用反引号``转义 ( select 1 as id union all
但是理论上不能有多个null。因为多个null不也是数据相同了吗! ...注意:MySQL在唯一约束下可以允许有多个null值,Oracle、SQL Server 在唯一约束下不可以有多个null值。 ...合并结果集有两种方式: UNION:去除重复记录, 例如:SELECT * FROM t1 UNION SELECT * FROM t2; UNION ALL:不去除重复记录,例如:SELECT...* FROM t1 UNION ALL SELECT * FROM t2; 要求:被合并的两个结果:列数、列类型必须相同。...注意:在执行脚本时需要先行核查当前数据库中的表是否与脚本文件中的语句有冲突! 例如在脚本文件中存在create table a的语句,而当前数据库中已经存在了a表,那么就会出错!
进行 OR 匹配 select '1000' regexp '1000|2000' -- 1 union all select '2000' regexp '1000|2000' -- 1 union...,表示中括号内的单子字符 union all select '2 t' regexp '[12] t' -- 1 union all select '3 t' regexp '[12] t' -- 0..., `runoob_title` VARCHAR(30) NOT NULL, `runoob_author` VARCHAR(30) NOT NULL, `submission_date...MySQL 字段属性应该尽量设置为 NOT NULL 指定 NULL 在不指定 NOT NULL 时,多数 DBMS 认为指定的是 NULL,但不是所有的 DBMS 都这样。...CHANGE 原列名 新表名 新类型 // 修改列类型及名称 FIRST 和 AFTER 关键字可用于 ADD 与 MODIFY 子句,所以如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用
M型系统由以下几种类型组成: 原始类型,对原始值进行分类(binary, date, datetime, datetimezone, duration, list, logical, null, number...括号也可用于访问名称与原始类型名称冲突的变量: 复制 let record = type [ A = any ] in type {(record)} // type {[ A = any ]...M 不提供检查值是否符合自定义类型的方法。 A型X是兼容与类型Y,当且仅当符合所有值X也符合Y。所有类型都与 type 兼容,any没有类型(但none它本身)与 type 兼容none。...type anynonnull,它对除 null 之外的所有值进行分类。固有类型不none分类任何值。...classifying all records 如果值是记录并且满足记录类型中的每个字段规范,则该值符合记录类型。
index, Full Index Scan,Index与All区别为index类型只遍历索引树。这通常比ALL快,因为索引文件通常比数据文件小。...传参类型和数据库表的类型不一致,比如 select name from 表 where id =''1''(或者'1'),id在数据库是int字段,此时不会失效,因为mysql的int类型作为查询条件时...,会自动将传参字符串转化为int类型。...2. null和数值进行比较 MySQL 使用三值逻辑 —— TRUE, FALSE 和 UNKNOWN。任何与 NULL 值进行的比较都会与第三种值 UNKNOWN 做比较。...外键创建失败的几种原因 外键的字段与关联的字段的类型不匹配(包括编码格式的不匹配) 外键的名字是一个已经存在的键值,要保证名字的唯一 mysql引擎引起的外键创建不能保存或者不能发挥作用的情况,mysql
当给定数据与源不匹配时,也可以使用 UPDATE 或 DELETE 子句。...日期数组Date arrays 当您处理用户保留或想要检查某些数据集是否缺少值(即日期)时,它变得非常方便。...它返回连续的排名值。您可以将其与分区一起使用,将结果划分为不同的存储桶。如果每个分区中的行具有相同的值,则它们将获得相同的排名。...您的数据集可能包含相同类型的连续重复事件,但理想情况下您希望将每个事件与下一个不同类型的事件链接起来。当您需要获取某些内容(即事件、购买等)的列表以构建渠道数据集时,这可能很有用。...([a-zA-Z0-9-.]+$)") as int64) as mod_version from events ; 结论 SQL 是一个强大的工具,有助于操作数据。
all select 2 a, 11 b union all select 3 a, 11 b union all select...on t1.a = t2.a + 1 where case when t1.b = t2.b then null else t1.b end is not null...; 2.SQL 求某天各个直播间同时最大在线人数与时刻。...,例如,假如array A中元素['a','b','c'],则A[0]的值为'a'。...struct:struct内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a。
,主键唯一 age int check(age>=0 and agenull comment '年龄',//check用来限制 name varchar(10) unique...not null comment '名字', gender char(1) not null comment '性别', Snumber int not null unique ); ...UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)。列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。...如果取出来的数据不需要去重,使用UNION ALL。...),我们可以使用 UNION ALL: SELECT name, email FROM employees UNION ALL SELECT name, email FROM contractors
HashSet 的时间复杂度跟 HashMap 一致,如果没有哈希冲突则时间复杂度为 O(1) ,如果存在哈希冲突则时间复杂度不超过 O(n) 。...保存线程上下文对象,避免多层级参数传递 这里,以 PageHelper 插件的源代码中的分页参数设置与使用为例说明。...JDK5 提供了一种新的类型—— Java 的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常量使用,这是一种非常有用的功能。...Objects.equals(msgType, this.msgType)) { throw new IllegalArgumentException("消息类型不匹配");...泛型上下界的声明,必须与泛型的声明放在一起 。 上界通配符(extends): 上界通配符为 ”extends ”,可以接受其指定类型或其子类作为泛参。
【建议】表中所有字段尽量都是NOT NULL属性,业务可以根据需要定义DEFAULT值。 因为使用NULL值会存在每一行都会占用额外存储空间、数据迁移容易出错、聚合函数计算结果偏差等问题。...` varchar(30) NOT NULL COMMENT '用户邮箱', `nickname` varchar(45) NOT NULL COMMENT '昵称', `birthday` date...这里XX的值不要超过5000个。 值过多虽然上线很很快,但会引起主从同步延迟。 【建议】SELECT语句不要使用UNION,推荐使用UNION ALL,并且UNION子句个数限制在5个以内。...因为union all不需要去重,节省数据库资源,提高性能。 【强制】禁止跨db的join语句。 【建议】不建议使用子查询,建议将子查询SQL拆开结合程序多次查询,或使用join来代替子查询。...【建议】批量操作数据时,需要控制事务处理间隔时间,进行必要的sleep。 建议】事务里包含SQL不超过5个 因为过长的事务会导致锁数据较久,MySQL内部缓存、连接消耗过多等问题。
INSERT IGNORE在计算节点上,当出现主键/唯一键冲突时,将忽略数据与冲突信息。...mysql> create table test(id int not null primary key,provinceid int)engine=innodb;Query OK, 0 rows affected...支持UNION/UNION ALL支持IS NULL/IS NOT NULL支持PARTITION分区表支持Select from where表达式支持Select select表达式支持SELECT...FROM SELECT表达式支持UNION/UNION ALL简单单表查询支持JOIN支持子查询支持同子查询的支持语法相同Having聚合函数支持PARTITION分区表支持DISTINCTROW支持DISTINCT.../UNION ALL支持IS NULL /IS NOT NULL支持PARTITION分区表支持AVG/SUM/MIN/MAX函数支持横向派生表不支持存储节点8.0新功能UNION/UNION ALLjoin
表名> ( 类型> , 类型> ,…) 表选项 create table sunshine ( id int(4) auto_increment not null...主键冲突更新: 基本语法:insert into () values(值列表>) on duplicate key update = 值>; mysql> insert...= 在sql2000中语法错误,兼容性不如 安全比较运算符,用来做 NULL 值的关系运算,因为 mysql 的 NULL 值的特性,NULL进行任何运算结果均为NULL,1 NULL...[union 选项] select 语句; 9.2 union选项 distinct:去重 (默认) all:保存所有结果 9.3 注意细节 union理论上只要保证字段数一样,不需要每次拿到的数据对应的字段类型一致...完全相同,在国外 some 与 any 正面含义一致,否定含义不同:not any 与 not some,开发者为消除语法上的差异重新设计了 some all = all():等于所有
领取专属 10元无门槛券
手把手带您无忧上云