mysql
mysql基础
何处望天明CS
这个作者很懒,什么都没留下…
展开
-
mysql高级——事务
事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。原创 2022-10-23 19:17:03 · 372 阅读 · 0 评论 -
MySQL高级—数据库优化
在数据库调优中,我们的目标是。利用可以帮我们快速找到调优的思路和方式。原创 2022-10-12 15:10:08 · 366 阅读 · 0 评论 -
MySQL高级—数据库设计规范
*在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。**可以理解为,一张数据表的设计结构需要满足的某种设计标准的。原创 2022-10-11 15:04:45 · 572 阅读 · 0 评论 -
MySQL高级—索引的数据结构
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法。索引是在存储引擎中实现的,因此每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有索引类型。同时,存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。原创 2022-10-03 15:26:20 · 696 阅读 · 0 评论 -
MySQL高级—存储引擎
为了管理方便,人们把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为的功能,把真实存取数据的功能划分为存储引擎的功能。所以在完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。MysQL中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。其实存储引擎以前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。MySQL从3.23.34a开始就包含InnoDB存储引擎。原创 2022-09-27 11:27:11 · 244 阅读 · 0 评论 -
MySQL高级—SQL执行流程
比如:优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联 (join) 的时候,决定各个表的连接顺序,还有表达式简化、子查询转为连接、外连接转为内连接等。原创 2022-09-22 21:01:20 · 460 阅读 · 0 评论 -
Mysql高级—逻辑架构
的方式存在的,并完成与存储引擎的交互。当然不是,多个系统都可以和MySQL服务器建立连接,每个系统建立的连接肯定不止一个。每一个连接从线程池中获取线程,省去了创建和销毁线程的开销。不同的存储引擎具有的功能不同,这样 我们可以根据自己的实际需要进行选取。,SQL的分析和优化及部分内置函数的执行。所有的数据,数据库、表的定义,表的每一行的内容,索引,都是存在文件系统 上,以。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。:如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。原创 2022-09-22 15:20:34 · 109 阅读 · 0 评论 -
设计数据库
2.Unified Modeling Language(标准建模语言-UML)1.Entity Relationship(实体关系-ER)作用:表示业务中的实体、事物或概念以及它们之间的关系。原创 2022-09-05 22:16:17 · 283 阅读 · 0 评论 -
mysql——分组查询
#进阶5:分组查询 /* 语法: select 分组函数,列表(要求出现在group by的后面) from 表 【where 筛选条件】 group by 分组的列表 【order by】 列 注意: 查询列表必须特殊,要求是分组函数和group by后出现的字段 特点: 1.分组查询中的筛选条件分为两类 数据源 位置 关键字 分组前的筛选 原始表 group by子句前 where 分组后的筛选 分组后的结果集 group by字句后 having Ⅰ.分组函数原创 2021-02-21 21:52:01 · 98 阅读 · 0 评论 -
mysql——数据类型
#常见的数据类型 /* 数值型: 整型 小数:定点数、浮点数 字符型: 较短的文本:char,varchar 较长的文本:text,blob(较长的二进制数据,列如图片) 日期型: */ #一,整型 /* 分类:tinyint、smallint、mediumint、int/integer、bigint 1字节 2字节 3字节 4字节 8字节 特点: 1.默认是有符号,无符号需要添加unsigned关键字 2.如果插入的数值超出了整型的范围,会报out o原创 2021-02-10 12:45:28 · 98 阅读 · 0 评论 -
mysql——DDL语言
#DDL 数据定义语言 /* 库和表的管理 一、库的管理 创建、修改、删除 二、表的管理 创建、修改、删除 创建:create 修改:alter 删除:drop */ #一、库的管理 #1.库的创建 /* 语法: create datebase if not exists 库名; */ #案例:创建books CREATE DATABASE IF NOT EXISTS books #2.库的修改 #更改字符集 ALTER DATABASE books CHARACTER SET gbk; #3原创 2021-01-31 14:11:10 · 104 阅读 · 0 评论 -
mysql——DML语言
#DML语言(数据操作语言) /* 插入:insert 修改:update 删除:delete */ #一、插入语句 #方式一: /* 语法: insert into 表名(列名,...) value(值1,...); */ #1.插入的值的类型要与列的类型一致或兼容 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUE(13,'唐艺昕','女','1990-4-23','1898888',NULL,2);原创 2021-01-28 22:06:51 · 98 阅读 · 0 评论 -
mysql——联合查询
#进阶9:联合查询 /* union 联合,合并:将多条查询语句合并成一个结果 语法: 查询语句1 union 查询语句2 union ... 应用场景: 要查询的结果来自多个表,且多个表没有直接的连接关系,但查询的信息一致时 特点: 1.要求多条查询语句的查询列数是一致的 2.要求多条查询语句的查询的每一列的类型和顺序最好一致 3.union关键字默认去重,使用union all可以包含重复项 */ #引入的案例:查询部门编号>90或邮箱包含a的员工信息 #方式一 SELE原创 2021-01-28 15:11:31 · 71 阅读 · 0 评论 -
mysql——分页查询
#进阶8:分页查询 /* 应用场景: 当要显示的数据,一页显示不全时,需要分页提交sql请求 语法: select 查询列表 from 表 【 join type 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段 】 limit 【offset,】size offset 要显示条目的起始索引(起始索引从0开始) size 要显示的条目数 特点: 1.limit语句放在最后 2.公式:要显示的页原创 2021-01-24 20:24:07 · 223 阅读 · 1 评论 -
mysql——子查询
#进阶7:子查询 /* 含义:出现在其他语句中的select语句,称为子查询或内查询,外部查询语句,称为主查询或外查询 分类: 按子查询出现的位置: select 后面: 标量子查询 from后面: 表子查询 where或having后面(重点) 标量子查询(单行子查询) 列子查询(多行子查询) 行子查询 exists后面 表子查询 按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集只有一行多列) 表子查询(结原创 2021-01-23 21:30:25 · 115 阅读 · 0 评论 -
mysql——连接查询
#进阶6 连接查询 /* 含义:又称多表查询,当查询字段来自多个表时,就会用到连接查询 笛卡尔乘积:表1有m行,表2有n行,结果=m*n行 发生原因:没有有效的连接条件 如何避免:添加有效的连接条件 分类: 按年代分: sql92标准:仅仅支持内连接 sql99标准【推荐】:支持内连接、外连接(左外和右外)、交叉连接 按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: 左外连接 右外连接 全外连接 交叉连接 */ SELE原创 2021-01-17 16:20:28 · 102 阅读 · 0 评论 -
mysql——分组函数
#分组函数 /* 功能:做统计使用,又称为统计函数,聚合函数,组函数 分类:sum,avg,max,min,count计算个数 特点: 1.sum,avg 用于处理数值型。max,min,count 可以处理任何类型 2.所有分组函数都忽略null 3.和distinct搭配 4.count 函数 5.和分组函数一同查询的字段要求是group by后的字段 */ #1.简单使用 SELECT SUM(salary) FROM employees; SELECT AVG(salary) FROM原创 2021-01-05 12:19:13 · 145 阅读 · 0 评论 -
mysql——单行函数
#常见函数 /* 好处:1.隐藏了实现细节 2.提高了代码的重用性 调用:select 函数名(实参列表) 【from 表】 分类: 1.单行函数 如 concat length 2.分组函数 功能:做统计使用,又称为统计函数,聚合函数,组函数 常见函数 字符函数:length,concat,substr,instr,trim,upper,lower,lpad,rpad,replace 数学函数:round,ceil,floor,truncate,mod 日期函数:mow,curdate,curt原创 2021-01-04 16:29:07 · 147 阅读 · 0 评论 -
mysql——排序查询
#进阶3:排序查询 /* 语法: select 查询列表 from 表 where 筛选条件 order by 排序列表 asc/desc(不写默认升序) 特点: 1.order by可支持单个字段,多个字段,表达式,函数,别名 2.order by子句一般放在查询语句最后,但limit子句除外 */ #1.案例:查询员工信息,要求工资从高到低排序 SELECT * FROM employees ORDER BY salary DESC ; #2.查询部门编号>原创 2021-01-03 14:41:52 · 138 阅读 · 0 评论 -
mysql——条件查询
#1.按条件表达式筛选 #筛选工资大于12000的员工信息 SELECT * FROM employees WHERE salary > 12000 ; #筛选部门号不等于90的员工名和部门号 SELECT `last_name`, `department_id` FROM employees WHERE `department_id` <> 90 ; #2.按逻辑表达式筛选 #筛选工资大于10000且小于20000的员工名,工资,奖金 SELECT原创 2021-01-03 11:03:44 · 94 阅读 · 0 评论 -
mysql——基础查询
#基础查询 /* 语法:select 查询列表 from 表名; 特点: 1.查询列表可以是,表中的字段,常量值,表达式,函数 2.查询的结果是一个虚拟的表格 */ USE myemployees; #1.查询单个字段 SELECT last_name FROM employees; #2.查询表中的多个字段 SELECT last_name, salary, email FROM employees ; #3.查询表中所有字段 #方式一 SELECT `emplo原创 2021-01-02 19:53:29 · 104 阅读 · 0 评论