MySQL
文章平均质量分 92
冰块儿+奶茶
这个作者很懒,什么都没留下…
展开
-
第四讲 深入浅出索引
第四讲 深入浅出索引比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?索引是数据库系统里面最重要的概念之一,一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。索引的常见模型索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所原创 2022-02-08 16:44:05 · 245 阅读 · 0 评论 -
第三讲 事务隔离:为什么你改了我还看不见?
第三讲 事务隔离:为什么你改了我还看不见?提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这 100 块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了。简单来说,事务就是要保证一组数据库操作原创 2022-02-08 15:39:43 · 213 阅读 · 0 评论 -
第二讲 日志系统:一条SQL更新语句是如何执行的?
第二讲 日志系统:一条SQL更新语句是如何执行的?一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c:mysql> create table T(ID int primary key, c int);如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写:`mysql> update T set c原创 2022-02-08 13:15:32 · 550 阅读 · 0 评论 -
第一讲 一条SQL查询语句是如何执行的?
第一讲 一条SQL查询语句是如何执行的?MySQL 的逻辑架构图大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 In原创 2022-02-08 12:37:30 · 126 阅读 · 0 评论 -
MySQL基础DML语言
#DML/*DML : 数据操纵语言对表中的数据的增删改*/#一. 数据的插入/*语法:insert into 表名(字段名1,字段名2,…) values (值1,值2…);特点:1.字段和值列表一一对应包含类型 约束等必须匹配2.数值型的值,不用单引号非数值型的值,必须使用单引号3.字段顺序无要求*/SELECT * FROM stuinfo#案例一:要求字段...原创 2020-04-13 11:31:23 · 83 阅读 · 0 评论 -
MySQL基础练习
#查询各部门中的工资比本部门平均工资高的员工的员工号,姓名,工资SELECT AVG(salary) FROM employeesGROUP BY department_idSELECT job_id,last_name,salaryFROM employees eJOIN (SELECT department_id,AVG(salary) agFROM employeesGROUP...原创 2020-04-13 09:51:52 · 125 阅读 · 0 评论 -
MySQL基础DDL语言
#DDL语言/*说明:Data Define Language数据定义语言,用于对数据库和表的管理和操作*/#-------------------库的管理-----------------#一.创建数据库CREATE DATABASE stuDB;studb#二.删除数据库DROP DATABASE stuDB;DROP DATABASE IF EXISTS stuDB;#...原创 2020-04-09 10:32:29 · 91 阅读 · 0 评论 -
MySQL基础
#进阶8:分页查询/*应用场景:当页面上的数据,一页显示不全,则需要分页显示分页查询的aql命令请求数据库服务器————》服务器响应查询到的多条数据————》前台页面语法:select 查询列表from 表名 别名join 表名 别名on 连接条件where 筛选条件group by 分组having 分组后的筛选order by 排序列表limit 起始条目索引,显示的...原创 2020-04-07 20:05:04 · 108 阅读 · 0 评论 -
MySQL基础
#子查询/*说明:当一个查询语句中又嵌套了另一个完整的select语句,则被嵌套的select语句称为子查询或内查询外面的select语句称为主查询或外查询分类:按子查询出现的位置进行分类:1.select后面要求:子查询的结果为单行单列(标量子查询)2.from后面要求:子查询的结果可以为多行多列3.where或having后面要求:子查询的结果必须是单列 单行子查询...原创 2020-04-06 15:54:54 · 280 阅读 · 0 评论 -
MySQL基础
分组查询语法:SELECT 分组函数分组的字段FROM 表名WHERE 分组前得筛选条件GROUP BY 分组列表HAVING 分组后的筛选条件ORDER BY 排序列表;特点:1》分组列表可以是单个字段,多个字段2》筛选条件分为两类筛选的基表 使用的关键字 位置分组前得筛选 原始表 WHERE GROUP BY 前分组后的筛选 分组后的结...原创 2020-04-06 15:52:21 · 138 阅读 · 0 评论 -
MySQL常见函数
常见函数说明:sql中的函数分为单行函数和分组函数调用语法:select 函数名(实参列表);1》》字符函数concat(str1,str2,…):拼接字符substr(str,pos):截取从pos开始的所有字符,起始索引从1开始substr(str,pos,len):截取len个从pos开始的所有字符,起始索引从1开始length(str):获取字节个数char_length(...原创 2020-04-05 10:46:15 · 89 阅读 · 0 评论 -
MySQL基础
一.查询员工姓名,入职日期并按入职日期升序SELECT last_name,hiredateFROM employeesORDER BY YEAR(hiredate) DESC;YEAR(hiredate);MONTH(hiredate);DAY(hiredate);HOUR(hiredate);MINUTE(hiredate);SECOND(hiredate);二.将当前日期...原创 2020-04-04 22:26:08 · 355 阅读 · 0 评论 -
MySQL基础
SQL99语法#一.内连接语法:SELECT 查询列表FROM 表名1 起名[INNER] JOIN 表名2 别名ON 连接条件WHERE 筛选条件GROUP BY 排序列表;SQL92 和 SQL99的区别:SQL99,使用 JOIN 关键字代替了之前得逗号,并且将连接条件和筛选条件进行了分离,提高了阅读星#等值连接#案例1:查询员工名和部门名SELECT last_n...原创 2020-04-04 22:25:40 · 115 阅读 · 0 评论 -
MySQL基础
#进阶7:连接查询/*含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类:按年代分类:sql192标准sql199标准【推荐】按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: 左外链接 右外链接 全外连接 ...原创 2020-04-03 11:36:09 · 62 阅读 · 0 评论 -
MySQL基础练习
#进阶6:分组查询/*语法:select 查询列表from 表名where 筛选条件group by 分组列表;特点:1.查询列表往往是 分组函数和被分组的字段2.分组查询中的筛选分为两类筛选的基表 使用的关键字 位置分组前筛选 原始表 where group by 之前分组后筛选 分组后的结果表 having group by 之后*/#案例1 : ...原创 2020-04-03 11:34:44 · 238 阅读 · 0 评论 -
MySQL基础练习
#1.显示系统时间(注:日期+时间)SELECT NOW();#2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)SELECT employee_id,last_name,salary,salary*(1+0.2) ‘new salary’ FROM employees;#3.将员工的姓名按首字母排序,并写出姓名的长度(length)SELECT las...原创 2020-04-01 17:09:10 · 743 阅读 · 0 评论 -
MySQL基础练习
#二.数学函数1 ABS 绝对值SELECT ABS(-2.4);2 CEIL 向上取整 返回>=该参数的最小整数SELECT CEIL(1.09);3 FLOOR 向下取整 返回<=该参数的最大整数SELECT FLOOR(1.09);4 ROUND 四舍五入SELECT ROUND(1.87123456);SELECT ROUND(1.87123456,2);5...原创 2020-04-01 16:38:12 · 71 阅读 · 0 评论 -
MySQL基础练习
MySQL基础训练#一.字符函数1 CONCAT 拼接字符SELECT CONCAT(‘hello’,first_name,last_name) 备注 FROM employees;2 LENGTH 获取字节长度SELECT LENGTH(‘hello,中国’);3 CHAR_LENGTH 获取字符个数SELECT CHAR_LENGTH(‘hello,中国’);4 SUBSTRI...原创 2020-03-31 11:32:38 · 102 阅读 · 0 评论 -
MySQL基础练习
#进阶3:排序查询/*语法:select 查询列表from 表名【where 筛选条件】order by 排序列表执行顺序:1.from 子句2.where 子句3.select 子句4.order by 子句举例:select last_name,salaryfrom employeeswhere salary>20000,order by salary a...原创 2020-03-29 11:40:02 · 122 阅读 · 0 评论 -
MySQL基础练习
mySQL 基础#1.查询常量SELECT 100;SELECT last_name FROM employees;#4.查询多个字段SELECT last_name,email,employee_id FROM employees;#5.查询所有字段SELECT * FROM employees;F12 :对齐格式SELECTlast_name,email,job_id...原创 2020-03-29 10:48:54 · 398 阅读 · 0 评论