04 2023 档案

摘要:Sql性能分析: profiles详情:show profiles能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。通过hava——profiles参数,能够看到当前Mysql是否支持profiles操作 执行一系列的业务SQL业务,然后通过如下指令查看指令的执行耗时: #查看每一条SQL的基本 阅读全文
posted @ 2023-04-30 12:06 惊鸿宴远赴人间 阅读(15) 评论(0) 推荐(0) 编辑
摘要:代码: -- 查看索引show index from emp;-- name字段为姓名字段,该字段的值可能会重复,为该字段创建索引create index idx_emp_name on emp(name);-- entrydate字段为入职日期字段,是非空且唯一,为该字段创建唯一索引create 阅读全文
posted @ 2023-04-18 21:12 惊鸿宴远赴人间 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-18 20:23 惊鸿宴远赴人间 阅读(6) 评论(0) 推荐(0) 编辑
摘要:InnoDB引擎选择使用B+tree索引结构的原因: 1.相对于二叉树,层级更小,搜索效率高 2.对于B-tree,无论是叶子节点还是非叶子节点,都会保存数据,这样导致页中存储的键值减少,指针跟着减少,要同样保存大量数据,只能增加树的高度,导致性能降低 阅读全文
posted @ 2023-04-18 19:43 惊鸿宴远赴人间 阅读(9) 评论(0) 推荐(0) 编辑
摘要:hash索引特点: 1.hash索引只能用于对等比较(=,in),不支持范围查询(between,>,<) 2.无法利用索引完成排序操作 3.查询效率高,通常只需要一次检索就可以了,效率通常高于B+Tree索引(在不发生hash碰撞的情况下) 存储引擎支持:在mysql中,支持hash索引的是Mem 阅读全文
posted @ 2023-04-16 18:24 惊鸿宴远赴人间 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-16 17:44 惊鸿宴远赴人间 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-16 17:34 惊鸿宴远赴人间 阅读(10) 评论(0) 推荐(0) 编辑
摘要:通常的索引都是B+tree索引 阅读全文
posted @ 2023-04-16 17:00 惊鸿宴远赴人间 阅读(20) 评论(0) 推荐(0) 编辑
摘要:索引:是帮助mysql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构 ,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这些数据结构就是索引 阅读全文
posted @ 2023-04-16 16:46 惊鸿宴远赴人间 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-16 15:27 惊鸿宴远赴人间 阅读(5) 评论(0) 推荐(0) 编辑
摘要:存储引擎特点: MyISAM:是mysql早期的默认存储引擎 特点: 1.不支持事务,不支持外键 2.支持表锁,不支持行锁 3.访问速度快 文件: xxx.sdi:存储表结构信息 xxx.MYD:存储数据 xxx.MYI:存储索引 Memory:Memory引擎的表数据是存储在内存中的,由于受到硬件 阅读全文
posted @ 2023-04-16 15:22 惊鸿宴远赴人间 阅读(21) 评论(0) 推荐(0) 编辑
摘要:存储引擎特点: InnoDB:是一种兼顾高可靠性和高性能的通用存储引擎,在mysql5.5之后,InnoDb是默认的mysql存储引擎 特点: 1.DNL操作遵循ACID模型,支持事务 2.行级锁,提高并发访问性能 3.支持外键(foreign key)约束,保证数据的完整性和正确性 文件:xxx. 阅读全文
posted @ 2023-04-15 18:03 惊鸿宴远赴人间 阅读(118) 评论(0) 推荐(0) 编辑
摘要:存储引擎简介:是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也被成为表类型 阅读全文
posted @ 2023-04-15 17:38 惊鸿宴远赴人间 阅读(25) 评论(0) 推荐(0) 编辑
摘要:mysql体系结构: 连接层:最上层是一些客户端和链接服务,主要完成一些连接处理,授权认证,以及相关的安全方案,服务器也会为安全接入的每一个客户端验证它所具有的操作权限 服务层:第二层架构主要用于完成大多数的核心服务功能,如sql接口,并完成缓存的查询,sql的分析和优化,部分内置函数的执行,所有跨 阅读全文
posted @ 2023-04-15 16:59 惊鸿宴远赴人间 阅读(13) 评论(0) 推荐(0) 编辑
摘要:-- 查看事务隔离级别select @@transaction_isolation;-- 设置事务隔离级别set session transaction isolation level repeatable read ; 阅读全文
posted @ 2023-04-15 11:54 惊鸿宴远赴人间 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-13 19:59 惊鸿宴远赴人间 阅读(3) 评论(0) 推荐(0) 编辑
摘要:事务的四大特性: 原子性:事务是不可分割的最小操作单元,要么全部成功,要么全部失败 一致性:事务完成时,必须使所有的数据都保持一直状态 隔离性:数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行 持久性:事务一旦提交或回滚,他对数据库中的数据的改变就是永久的 阅读全文
posted @ 2023-04-13 19:50 惊鸿宴远赴人间 阅读(121) 评论(0) 推荐(0) 编辑
摘要:事务:是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,,即这些操作要么同时成功,要么同时失败 默认mysql的事务是自动提交的,也就是说,当执行一条DML语句,mysql会立即隐式地提交服务 事务操作: 查看/设置事务提交方式:select 阅读全文
posted @ 2023-04-13 19:03 惊鸿宴远赴人间 阅读(89) 评论(0) 推荐(0) 编辑
摘要:-- 查询员工姓名,年龄,职位,部门信息(隐式内连接)select e.name,e.age,e.job,d.name from emp as e,dept as d where e.dept_id=d.id;-- 查询年龄小于30岁的员工姓名,年龄,职位,部门信息(显示内连接)select e.n 阅读全文
posted @ 2023-04-13 17:52 惊鸿宴远赴人间 阅读(82) 评论(0) 推荐(0) 编辑
摘要:表子查询:返回的结果是多行多列常用的操作符:in 代码:-- 查询和员工333和员工444的职位,薪资都相同的员工select * from emp where (salary,job) in (select salary,job from emp where name='333' or name= 阅读全文
posted @ 2023-04-12 13:34 惊鸿宴远赴人间 阅读(18) 评论(0) 推荐(0) 编辑
摘要:行子查询:子查询返回的结果是一行(可以是多列)常用的操作符;= <> in not in代码:-- 查询与员工333 工资和直属领导都相同的员工信息select * from emp where (salary,managerid)=(select salary,managerid from emp 阅读全文
posted @ 2023-04-12 13:10 惊鸿宴远赴人间 阅读(19) 评论(0) 推荐(0) 编辑
摘要:列子查询;返回的结果是一列(可以是多行)常用的操作符:in,not in,any,some,all 代码:-- 查询销售部和总部的所有员工信息select * from emp where dept_id in (select id from dept where name='销售部' or nam 阅读全文
posted @ 2023-04-12 11:48 惊鸿宴远赴人间 阅读(26) 评论(0) 推荐(0) 编辑
摘要:子查询:标量子查询,行子查询,列子查询,表子查询 标量子查询:查询的结果为单个值(数字,字符串,日期),这些最简单的形式常用的操作符:= <> > >= < <= 代码:-- 查询销售部所有员工的信息:先通过dept表查询销售部门id,然后通过id查询销售部所有员工的信息select * from 阅读全文
posted @ 2023-04-12 10:46 惊鸿宴远赴人间 阅读(75) 评论(0) 推荐(0) 编辑
摘要:联合查询:union,union all 对于union查询,就是把多次查询的结果合并起来,形成一个新的结果集 select 字段列表 from 表1 where 条件... union all select 字段列表 from 表2 where 条件...;注意:对于联合查询的多张表的列数,字段类 阅读全文
posted @ 2023-04-12 10:23 惊鸿宴远赴人间 阅读(56) 评论(0) 推荐(0) 编辑
摘要:自连接查询语法:select 字段列表 from 表1 as 别名A left join 表1 as 别名B on 连接条件...; 自连接查询,可以是内连接查询,也可以是外连接查询 代码: select A.name,B.name from emp as A,emp as B where A.ma 阅读全文
posted @ 2023-04-08 20:43 惊鸿宴远赴人间 阅读(45) 评论(0) 推荐(0) 编辑
摘要:外连接查询语法: 左外连接:select 字段列表 from 表1 left join 表2 on 连接条件...; 相当于查询表1的所有数据,以及表1和表2的交集部分数据 右外连接:select 字段列表 from 表1 right join 表2 on 连接条件...; 相当于查询表2的所有数据 阅读全文
posted @ 2023-04-08 18:40 惊鸿宴远赴人间 阅读(54) 评论(0) 推荐(0) 编辑
摘要:内连接查询语法; 隐式内连接:select 字段列表 from 表1,表2 where 条件...; 显式内连接:select 字段列表 from 表1 join 表2 on 连接条件...; 内连接是查询两张表的交集部分 代码: select emp.name,dept.name from emp 阅读全文
posted @ 2023-04-08 18:05 惊鸿宴远赴人间 阅读(64) 评论(0) 推荐(0) 编辑
摘要:概述:从多张表中查询数据笛卡尔积:在数学中,两个集合 A集合和B集合的所有组合情况(在多表查询中,需要消除无效的笛卡尔积) 多表查询分类: 连接查询: 内连接:相当于查询A,B交集部分的数据 外连接: 左外连接:查询左表所有数据,以及两张表交集的部分数据 右外连接:查询右表所有数据,以及两张表交集的 阅读全文
posted @ 2023-04-08 17:50 惊鸿宴远赴人间 阅读(19) 评论(0) 推荐(0) 编辑
摘要:多表关系概述:在项目开发中,在进行数据库结构设计时,会根据业务需求和业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种关联基本分为以下三种:一对多(多对一),多对多,一对一一对多(多对一):案例:部门与员工的关系关系:一个部门对应多个员工,一个员工对应一个部门 阅读全文
posted @ 2023-04-08 17:12 惊鸿宴远赴人间 阅读(37) 评论(0) 推荐(0) 编辑
摘要:代码: create table dept( id int primary key auto_increment comment 'ID', name varchar(50) not null comment '姓名') comment '部门表';insert into dept(id,name) 阅读全文
posted @ 2023-04-07 22:02 惊鸿宴远赴人间 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1.概述:约束是作用于表上字段的规则,用来限制存储在表中的数据2.目的:保证数据库中数据的正确性,有效性,完整性3.分类: 注意:约束是作用于表中字段上的,可以在创建/修改表是添加约束 代码: create table user( id int primary key auto_increment 阅读全文
posted @ 2023-04-07 20:50 惊鸿宴远赴人间 阅读(38) 评论(0) 推荐(0) 编辑
摘要:常见的流程函数: 代码: select if(true,'OK','Error');/*如果第一个值为true,则返回OK,否则返回Error */select IFNULL(null,'default');/*如果第一个值为null,则返回default,否则返回第一个值 */-- 查询emp表成 阅读全文
posted @ 2023-04-06 19:57 惊鸿宴远赴人间 阅读(17) 评论(0) 推荐(0) 编辑
摘要:常见的日期函数: 代码: select curdate();/*返回当前日期 */select curtime();/*返回当前时间 */select now();/*返回当前日期+时间 */select year(now());/*返回当前日期中的年份 */select month(now()); 阅读全文
posted @ 2023-04-06 18:54 惊鸿宴远赴人间 阅读(124) 评论(0) 推荐(0) 编辑
摘要:常见的数值函数: 代码: select ceil(1.5);/*向上取整 */select floor(1.5);/*向下取整 */select mod(5,2);/*取模:余数 */select rand();/*求0~1之间的随机数 */select round(2.34,1);/*四舍五入 * 阅读全文
posted @ 2023-04-06 16:19 惊鸿宴远赴人间 阅读(60) 评论(0) 推荐(0) 编辑
摘要:函数:是指一段可以直接被另一段程序调用的程序或代码 代码: select lpad('01',5,'-');/*lpad:字符串左填充 01 */select rpad('01',5,'-');/*rpad:字符串右填充 01 */select trim(' hello mysql ');/*tri 阅读全文
posted @ 2023-04-06 16:02 惊鸿宴远赴人间 阅读(35) 评论(0) 推荐(0) 编辑
摘要:DCL-权限控制 mysql常用权限: 1.查询权限:show grants for '用户名'@'主机名'; 2.授予权限:grants 权限列表 on 数据库名.表名 to '用户名'@'主机名'; 3.撤销权限:revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'; 阅读全文
posted @ 2023-04-06 15:06 惊鸿宴远赴人间 阅读(12) 评论(0) 推荐(0) 编辑
摘要:DCL:数据库控制语言,用来管理数据库用户,控制数据库的访问权限 1.查询用户 use mysql; select * from user; 2,创建用户 create user '用户名'@'主机名' identified by '密码'; 3.修改用户密码 alter user '用户名'@'主 阅读全文
posted @ 2023-04-05 16:07 惊鸿宴远赴人间 阅读(21) 评论(0) 推荐(0) 编辑
摘要:select * from emp where sex='女' and age in(16,17,18);/*查询女性年龄为16,17,18的员工 */select * from emp where sex='女' and age between 18 and 20 and name like '_ 阅读全文
posted @ 2023-04-05 11:18 惊鸿宴远赴人间 阅读(12) 评论(0) 推荐(0) 编辑
摘要:DQL-分页查询 select 字段列表 from 表名 limit 起始索引,查询记录数; 注意: 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数 分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是limit 如果查询的是第一页的数据,起始索引可以省略,直接简写为 li 阅读全文
posted @ 2023-04-05 10:30 惊鸿宴远赴人间 阅读(100) 评论(0) 推荐(0) 编辑
摘要:DQL-排序查询 1.语法 select 字段列表 from 表名 order by 字段1 排序方式1,字段2,排序方式2; 2.排序方式 asc:升序 desc:降序 注意:如果是多字段排序,当第一个字段相同时,才会根据第二个字段排序 代码: select * from emp order by 阅读全文
posted @ 2023-04-05 10:17 惊鸿宴远赴人间 阅读(53) 评论(0) 推荐(0) 编辑
摘要:DQL分组查询: 1.语法:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]; where和having的区别: 执行时机不同:where是分组之前进行过滤,不满足wehere条件,不参与分组;而having是分组之后对结果 阅读全文
posted @ 2023-04-03 21:14 惊鸿宴远赴人间 阅读(10) 评论(0) 推荐(0) 编辑
摘要:DQL聚合函数:将一个数据作为一个整体,进行纵向计算常见聚合函数: count:统计数量 max:最大值 min:最小值 avg:平均值 sum:求和 语法:select 聚合函数(字段列表) from 表名;注意:null值不参与所有聚合函数运算 代码: select count(*) from 阅读全文
posted @ 2023-04-03 20:36 惊鸿宴远赴人间 阅读(11) 评论(0) 推荐(0) 编辑
摘要:DQL基本查询 DQL语句的执行顺序:from--where--group by--having--select--order by--limit 1.查询多个字段 select 字段1,字段2,字段3... from 表名; select * from 表名; 2.设置别名 select 字段1 阅读全文
posted @ 2023-04-03 20:20 惊鸿宴远赴人间 阅读(26) 评论(0) 推荐(0) 编辑
摘要:DML添加数据: 1.给指定字段添加数据:insert into 表名(字段名1,字段名2...)values(值1,值2...); 2.给全部字段添加数据:insert into 表名 values(值1,值2...); 3.批量添加数据: insert into 表名(字段名1,字段名2...) 阅读全文
posted @ 2023-04-03 14:55 惊鸿宴远赴人间 阅读(39) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示