MySQL
文章平均质量分 60
MySQL数据库的基础应用及调优
e_nanxu
这个作者很懒,什么都没留下…
展开
-
MySQL二十二:MySQL8.0新特性
MySQL8.0 新特性一、窗口函数函数列表 语法结构# 方式一SELECT 窗口函数 OVER (PARTITION BY 字段名 ORDER BY 字段名 ASC/DESC) AS 新字段名, 字段名1,...FROM 剩余查询语句;# 方式二SELECT 窗口函数 OVER 窗口名 FROM 剩余查询语句WINDOW 窗口名 AS (PARTITION BY 字段名 ORDER BY 字段名 ASC/DESC);二、公用表表达式(CTE)普通公用表语法结构W原创 2022-01-17 23:47:20 · 104 阅读 · 0 评论 -
MySQL二十一:触发器
触发器一、概述定义触发器:是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELECT事件。事件:是指用户的动作或触发某项行为触发程序:当数据库执行这些语句时,相当于事件发生了,就会自动激发触发器执行相应的操作。使用情形当对数据表的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器实现二、创建触发器语法结构CREATE TRIGGER 触发器名称BEFORE/AFTER INSERT/UPDATE/DELETE ON 数据表名F原创 2022-01-17 22:55:17 · 357 阅读 · 0 评论 -
MySQL二十:游标
游标一、概述定义是一种临时的数据库对象,可以指向存储在数据库表中的数据行指针。作用提供了一种灵活的操作方式,能够对结果集中的每一条记录进行定位,并对指定记录中的数据进行操作的数据结构。效果让SQL这种面向集合的语言有了面向过程的开发能力。二、使用步骤声明游标DECLARE 游标名 CURSOR FOR 查询语句;打开游标OPEN 游标名;使用游标# 将数据保存在 var_nameN 变量中FETCH 游标名 INTO var_name1, var原创 2022-01-17 22:07:12 · 538 阅读 · 0 评论 -
MySQL十九:流程控制语句
流程控制一、分支结构之一 - - IF语法结构IF 表达式1 THEN 操作1;ELSEIF 表达式2 THEN 操作2;... ;ELSE 操作N;END IF;二、分支结构之二 - - CASE语法结构一:类似switch# WHEN后的值与表达式生成的值相去匹配CASE 表达式WHEN 值1 THEN 结果1或语句1(语句需加分号;)WHEN 值2 THEN 结果2或语句2(语句需加分号;)...ELSE 结果N或语句N(语句需加分号;)END C原创 2022-01-17 21:44:36 · 354 阅读 · 0 评论 -
MySQL十八:异常处理
异常处理一、定义条件定义事先定义程序执行过程中可能遇到的问题,给MySQL中的错误码命名错误码数值型错误码:MySQL_error_code字符串型错误码:sqlstate_value语法格式DECLARE 自定义错误名称 CONDITION FOR 错误码(错误条件);# 举例DECLARE Field_Not_Be_NULL CONDITION FOR 1048;DECLARE Field_Not_Be_NULL CONDITION FOR SQLSTATE '230原创 2022-01-16 21:23:05 · 1602 阅读 · 0 评论 -
MySQL十七:变量
在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间数据,或输出最终的结果数据。系统变量 及 用户自定义变量属于服务器层面。启动MySQL服务,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性、特征。要么是编译MySQL时参数的默认值,要么是配置文件 - my.ini 中的参数值。有些系统变量只能是全局的;有些系统变量既可以是全局又可以是会话;有些系统变量只能是当前会话(相当于在Natival中连接了一次用户)修改在MySQL服务原创 2022-01-16 19:59:44 · 873 阅读 · 0 评论 -
MySQL十六:存储过程与存储函数
存储过程与存储函数一、概述相当于Java中的方法定义程序化的SQL,预先存储在MySQL服务器上,直接操作底层数据表,需要执行的时候,客户端只需向服务端发出调用命令即可优点清晰、安全、减少网络传输量分类① 无参无返回② 有参无返回:带IN③ 无参有返回:带OUT④ 有参有返回:既带IN,又带OUT二、创建过程语法格式DELIMITER //CREATE PROCEDURE 过程名(IN/OUT/INOUT 参数名 参数类型, ...)[char原创 2022-01-16 16:39:39 · 131 阅读 · 0 评论 -
MySQL十五:视图
视图一、视图概述概念一个或多个数据表里的数据的逻辑显示,视图并不存储数据,是一种虚拟表引入2.1 可以帮助我们只使用表的一部分,而不是所有的表2.2 可以针对不同的用户指定不同的查询视图理解3.1 视图的创建和删除不影响对应的基表,数据的增删改会影响基表3.2 是存储起来的SELECT语句3.3 向用户提供基表数据的另一种表现形式。二、创建视图创建结构CREATE VIEW 视图名(字段名1, 字段名2, ...)ASSELECT 查询语句原创 2022-01-16 11:30:16 · 79 阅读 · 0 评论 -
MySQL十四:MySQL数据类型
MySQL数据类型一、MySQL数据类型汇总二、整型UNSIGNED无符号类型,无符号最小取值 0ZEROFILL0填充,如果整数指定了M位,则用 0 在左边填充。如何选择存在存储空间和可靠性的平衡问题,在实际工作中,系统故障产生的成本远远超过增加几个字段存储空间所产生的成本。三、浮点型数据精度FLOAT(M,D) / DOUBLE(M,D)M:精度,D <= M <= 255D:标度,小数位,0 <= D <= 30精度误差原创 2022-01-16 00:30:50 · 186 阅读 · 0 评论 -
MySQL十三:约束
约束一、约束概述引入原因为了保证数据库中的数据完整性,包括数据的精确性和可靠性,防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息。定义对数据表中字段的强制规定考虑约束的方面实体完整性:例如不能存在完全无法区分的两条记录域完整性:例如规定其取值范围引用完整性:关联性表之间的引用关系要完整用户自定义完整性:根据制定表的实际情况,进行的其它规定约束的分类① 根据数据列的限制单列约束:每个约束只约束一列多列约束:每个约束可约束多列数据原创 2022-01-15 22:21:04 · 248 阅读 · 0 评论 -
MySQL十二:DDL与DML同表对比
DDL与DML同表对比DDL与DML增删改查对比表 DDL与DML的区别DDL一旦执行,不可以回滚DML在执行前,加上SET autocommit = FALSE; 则执行后可进行回滚。原创 2022-01-12 10:30:40 · 228 阅读 · 0 评论 -
MySQL十一:DML:对于数据的增、删、改
DML:数据的增、删、改一、插入数据方式1:VALUES的方式添加情况1:为表的所有字段按默认顺序插入数据# 所有字段全部插入INSERT INTO departmentsVALUES (70,'Pub',100,1700);# 部分字段为空INSERT INTO departmentsVALUES (100,'Finance',NULL,NULL);情况2:为表的指定字段插入数据INSERT INTO departments(department_id,department_n原创 2022-01-12 10:29:20 · 206 阅读 · 0 评论 -
MySQL十: DDL (数据库/数据表的增、查、改、删)
DDL (数据库/数据表的增、查、改、删)引入存储数据时处理数据的第一步,只有正确地把数据存储起来,我们才能有效地处理和分析存储数据过程一、数据库创建数据库方式1:单纯创建数据库CREATE DATABASE 数据库名;方式2:创建数据库并指定字符集CREATE DATABASE 数据库名 CHARACTER SET 字符集;方式3:判断数据库是否已经存在,不存在则创建数据库(推荐使用)CREATE DATABASE IF NOT EXISTS 数据库名;查看数据库原创 2022-01-11 16:18:52 · 596 阅读 · 0 评论 -
MySQL九: 子查询
子查询一、概念子查询就是一个查询语句嵌套在另一个查询语句内部的查询SQL中子查询的使用大大增强了SELECT查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较二、单行子查询单行比较操作符= 、 > 、 >= 、 < 、 <= 、 <>WHERE中的子查询# 返回job_id与141号员工相同,salary比143号员工多的原创 2022-01-09 22:10:16 · 344 阅读 · 0 评论 -
MySQL 八: SELECT执行过程
SELECT执行过程一、SELECT查询结构SELECT DISTINCT选择列(字段)FROM . . . JOIN . . .ON . . .JOIN . . . ON . .多表的连接方式WHERE . . . AND . . .选择行的条件,但是不可以使用聚合函数GROUP BY分组HAVING可以使用聚合函数进行行的过滤ORDER BY . . . ASC / DESC将选择的列进行排序LIMIT进行分页显示UNION A原创 2022-01-04 20:47:30 · 585 阅读 · 0 评论 -
MySQL七: 聚合函数
聚合函数(聚集、分组)作用于一组数据,并对一组数据返回一个值。一、常用的聚合函数AVG和SUM函数可以对数值型数据使用MIN和MAX函数可以对任意数据类型使用SELECT AVG(salary),SUM(salary),MIN(salary),MAX(salary)FROM employees;COUNT函数可以对任意数据类型使用,返回表中的记录总数区别:COUNT(*),COUNT(1),COUNT(列名)① 搜索引擎为MyISAM,则三者的执行效率相同② 搜索引原创 2022-01-04 18:18:02 · 1074 阅读 · 0 评论 -
MySQL六: 单行函数
单行函数一、概念规则操作数据对象结构参数返回一个结果只对一行进行交换,且每行返回一个结果等可以嵌套参数可以是一个列或一个值二、数值函数基本函数# 绝对值函数,返回1SELECT ABS(-1)FROM DUAL;角度与弧度互换函数RADIANS(x):将角度转换为弧度DEGREES(x):将弧度转换为角度三角函数参数均为弧度数,可用RADIANS(x) 将角度转换为弧度数指数与对数进制函数三、字符串函数注:MySQL中,字符原创 2022-01-04 10:28:16 · 455 阅读 · 0 评论 -
MySQL五:多表查询
多表查询一、笛卡尔积问题产生笛卡尔积的原因省略了多表的连接条件连接条件无效所有表中的所有行互相连接解决方法在WHERE子句中写入连接条件,如果各表中有相同的列,需在列名之前加上表名前缀二、多表连接的规则数据库的查询,涉及到多个表,要对列名前加表的表名(或别名)连接n个表,至少需要n-1个连接条件如果在查询中使用了表的别名,就要在整个查询语句中全部使用别名三、等值连接 vs 非等值连接等值连接:连接条件为等于非等值连接:连接条件为非等于的条件,例如:betwe原创 2022-01-02 21:27:02 · 247 阅读 · 0 评论 -
MySQL四:排序与分页
排序与分页一、排序排序规则ASC(ascend):升序DESC(descend):降序执行语句:ORDER BY单列排序# 默认为ASC升序,SELECT last_name, job_idFROM employeesORDER BY hire_date ;多列排序SELECT last_name, job_idFROM employeesORDER BY hire_date, salary DESC;二、分页为何使用分页查询返回的记录太多,需要分原创 2022-01-02 16:54:09 · 252 阅读 · 0 评论 -
MySQL三: 运算符
运算符一、算术运算符加减运算两个整数相加减的结果还是整数两数中只要有一个数是浮点型,结果就是浮点型如果需要非数值类型,先尝试转换成数值,如果转换不成功,按0计算如果遇到NULL,结果也为NULL。乘除运算一个数乘除 1 结果均为原数一个数除以整数,不能处尽,结果为浮点数,并保留4个小数位一个数除以0,结果为NULL一个数乘或除NULL,结果为NULL。求模正常求模二、比较运算符比较运算符经常被用作SELECT查询语句的条件使用,返回符合条件的结果记录等号运原创 2021-12-30 21:07:34 · 474 阅读 · 0 评论 -
MySQL二:SQL及基本SELECT语句概述
SQL及基本SELECT语句概述一、SQL语言概述背景知识1974年,IBM研究员发布了一篇揭开数据库技术的论文《SEQUEL:一门结构化的英语查询语言》两个重要的标准:SQL92 / SQL99SQL分类DDL:数据定义语言。定义不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构关键字:CREATE(创建)、 ALTER (修改)、DROP (删除)DML:数据操作语言。用于添加、删除、更新和查询数据库记录,并检查数据完整性。关键字:INSE原创 2021-12-30 09:43:19 · 382 阅读 · 0 评论 -
MySQL一:数据库概述
数据库概述一、数据库与数据库管理系统DB:数据库存储数据的仓库,保存一系列有组织的数据,本质是一个文件系统类似:.docs、.xlsx等文档DBMS:数据库管理系统用于建立、使用和维护数据库,用户通过数据库管理系统访问数据库中表内的数据。本质是操作和管理数据库的大型软件类似:WPSSQL:结构化查询语言专门用来与数据库通信的语言二、常见的数据库RDBMS:关系型数据库Oracle:第一个商用的RDBMS,诞生于1979年MySQL:开源NO1,且被广泛应用于各大原创 2021-12-29 23:27:40 · 354 阅读 · 0 评论