多表数据 create table dep( id int primary key auto_increment, name varchar(16), work varchar(16) ); create table emp( id int primary key auto_increment, name varchar(16), salary float, dep_id int ); insert into dep values(1, '市场部', '销售'), (2, '教学部', '授课'…
单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进…
create table dep( id int primary key auto_increment, name varchar(16), work varchar(16) ); create table emp( id int primary key auto_increment, name varchar(16), salary float, dep_id int ); insert into dep values(1, '市场部', '销售'), (2, '教学部', '授课'), (3…
一.什么是回表查询? 这先要从InnoDB的索引实现说起,InnoDB有两大类索引: 聚集索引(clustered index) 普通索引(secondary index) InnoDB聚集索引和普通索引有什么差异? InnoDB聚集索引的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个聚集索引: (1)如果表定义了PK,则PK就是聚集索引: (2)如果表没有定义PK,则第一个not NULL unique列是聚集索引: (3)否则,InnoDB会创建一个隐藏的row-id作为聚集索…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病.一旦遇到left join或right join的左右连接,你还是得老老实实的打开xml文件,手写上一大段的sql语句. 直到前几天,偶然碰到了这么一款叫做mybatis-plus-join的工具(后面就简称mpj了),使用了一下,不得不说真香!彻底将我从xml地狱中解…
一.多表查询 1.笛卡儿积 查询 2.连接 语法: ①inner    显示可构成连接的数据 mysql> select employee.id,employee.name,department.name as depart_name  from employee inner join department on employee.dep_id=department.id; ②left    左连接:优先选择左表全部记录 ③right   右连接:优先选择右表全部记录 ④ 全连接:显示两个表的全…
一个简单的两表关联,SQL跑了差不多一天一夜,这两个表都非常巨大,每个表都有几十个G,数据量每个表有20多亿,表的字段也特别多. 相信大家也知道SQL慢在哪里了,单个进程的PGA 是绝对放不下几十个G的数据,这就会导致消耗大量temp tablespace,SQL慢就是慢在temp来回来回来回...的读写数据. 先创建2个测试表 t1,t2 数据来自dba_objects create table t1 as select * from dba_objects; create table t2…
问题: MySQL (version 5.7.26) 数据库有一批表 xxx_yyy,由于评估的数据量可能比较大,因此每张表都设置了表分区,把每个月的数据保存在单独的分区里. 那么如果每年年末,没有提前创建好第二年的表分区,当第二年的数据写入时,就会出现以下报错: ERROR 1526 (HY000): Table has no partition for value from column_list 解决: 今年的表分区忘了创建,因此需要批量对以 xxx_ 开头的表创建分区.执行开发提供的存储…
一.数据库设计 1.三个数据表长这样   其中user表记录用户信息,cat主要记录男女性别,mete表是用户id和性别id的对应关系   2.具体数据如下   二.查询目标 查询出所有性别为“男”的用户的“姓名”,如下记录两种不同形式的查询 1.单纯的条件查询 SQL: ) 结果:   语句解释: 先使用select mete.uid from mete where mete.cid=1语句在mete表中,查找到所有“男”的uid(这里默认我们已经知道cid=1代表男性),再通过条件查询,与上…
复习 增删改查全语法 # 增 insert into db1.t1(字段2, 字段1, ..., 字段n)|省略 values (值2, 值1, ..., 值n)|(值1, 值2, ..., 值n)[, (值2, 值1, ..., 值n)|(值1, 值2, ..., 值n), ...] # 删除 delete from db1.t1 [条件] truncate db1.t1 # 改 update db1.t1 set 字段1=值1, ..., 字段n=值n [条件] # 查 select [di…