MySQL笔记:第07章_单行函数
MySQL笔记:第07章_单行函数第07章_单行函数1. 函数的理解1.1 什么是函数函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既 提高了代码效率 ,又 提高了可维护性 。在SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地 提高用户对数据库的管理效率 。从函数定义的角度出发,我们可以将函数分成 内置函数 和 自定义函数 。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,本章及下一章讲解的是 SQL 的内置函数。 1.2 不同DBMS函数的差异在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即DBMS。DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异。实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用(||)或者(+)来做拼接符,而在 MySQL 中的字符串拼接函数为concat()。大部分 DBMS...
MySQL笔记:第09章_子查询
MySQL笔记:第09章_子查询第09章_子查询子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较。 1. 需求分析与问题解决1.1 实际问题现有解决方式: 123456789101112131415161718192021#方式一:SELECT salaryFROM employeesWHERE last_name = 'Abel';SELECT last_name,salaryFROM employeesWHERE salary > 11000;#方式二:自连接SELECT e2.last_name,e2.salaryFROM employees e1,employees e2WHERE e1.last_name = 'Abel'AND e1.`salary` <...
MySQL笔记:第10章_创建和管理表
MySQL笔记:第10章_创建和管理表MySQL笔记:第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程存储数据是处理数据的第一步 。只有正确地把数据存储起来,才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。 为什么要先创建一个数据库,而不是直接创建数据表呢?因为从系统架构的层次上看,MySQL 数据库系统从大到小依次是 数据库服务器 、 数据库 、数据表 、数据表的 行与列 。MySQL 数据库服务器之前已经安装。所以就从创建数据库开始 1.2 标识符命名规则 数据库名、表名不得超过30个字符,变量名限制为29个 必须只能包含 A–Z, a–z, 0–9,...
MySQL笔记:第11章_数据处理之增删改
MySQL笔记:第11章_数据处理之增删改第11章_数据处理之增删改1. 插入数据1.1 实际问题解决方式:使用 INSERT 语句向表中插入数据。 1.2 方式1:VALUES的方式添加使用这种语法一次只能向表中插入一条数据。情况1:为表的所有字段按默认顺序插入数据 12INSERT INTO 表名VALUES (value1,value2,....); 值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。 举例: 12345INSERT INTO departmentsVALUES (70, 'Pub', 100, 1700);INSERT INTO departmentsVALUES (100, 'Finance', NULL, NULL); 情况2:为表的指定字段插入数据 12INSERT INTO 表名(column1 [, column2, …, columnn])VALUES (value1 [,value2, …,...
MySQL笔记:第08章_聚合函数
MySQL笔记:第08章_聚合函数第08章_聚合函数1. 聚合函数介绍 什么是聚合函数聚合函数作用于一组数据,并对一组数据返回一个值。聚合函数类型 AVG() SUM() MAX() MIN() COUNT() 聚合函数语法 1.1 AVG和SUM函数可以对数值型数据使用AVG 和 SUM 函数。 12345678 SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%';/*+-------------+-------------+-------------+-------------+| AVG(salary) | MAX(salary) | MIN(salary) | SUM(salary) |+-------------+-------------+-------------+-------------+| 8272.727273 | 11500.00 | 6000.00 | 273000.00...
MySQL笔记:第12章_MySQL数据类型精讲
MySQL笔记:第12章_MySQL数据类型精讲第12章_MySQL数据类型精讲1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT 浮点类型 FLOAT、DOUBLE 定点数类型 DECIMAL 位类型 BIT 日期时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP 文本字符串类型 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT 枚举类型 ENUM 集合类型 SET 二进制字符串类型 BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB JSON类型 JSON对象、JSON数组 空间数据类型 单值类型:GEOMETRY、POINT、LINESTRING、POLYGON; 集合类型:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、...
MySQL笔记:第15章_存储过程与函数
MySQL笔记:第15章_存储过程与函数第15章_存储过程与函数1. 存储过程概述1.1 理解**含义**:存储过程的英文是 Stored Procedure 。它的思想很简单,就是一组经过 预先编译 的 SQL 语句的封装。 **执行过程:**存储过程预先存储在 MySQL 服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列 SQL 语句全部执行。 1**好处**: 简化操作,提高了sql语句的重用性,减少了开发程序员的压力 减少操作过程中的失误,提高效率 减少网络传输量(客户端不需要把所有的 SQL 语句通过网络发给服务器) 减少了 SQL 语句暴露在网上的风险,也提高了数据查询的安全性 **和视图、函数的对比**:它和视图有着同样的优点,清晰、安全,还可以减少网络传输量。不过它和视图不同,视图是虚拟表 ,通常不对底层数据表直接操作,而存储过程是程序化的 SQL,可以 直接操作底层数据表...
MySQL笔记:第17章_触发器
MySQL笔记:第17章_触发器在实际开发中经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 和 库存信息 分别存放在 2 个不同的数据表中,在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在库存表中添加一条库存记录。 这样一来就必须把这两个关联的操作步骤写到程序里面,而且要用事务 包裹起来,确保这两个操作成为一个原子操作 ,要么全部执行,要么全部不执行。要是遇到特殊情况,可能还需要对数据进行手动维护,这样就很容易忘记其中的一步 ,导致数据缺失。 这个时候可以使用触发器。你可以创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作。这样一来,就不用担心因为忘记添加库存数据而导致的数据缺失了 1. 触发器概述MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。 触发器是由 事件来触发 某个操作,这些事件包括 INSERT 、 UPDATE 、 DELETE...
MySQL笔记:第16章_变量、流程控制与游标
MySQL笔记:第16章_变量、流程控制与游标第16章_变量、流程控制与游标1. 变量在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。 在 MySQL 数据库中,变量分为 系统变量 以及 用户自定义变量 。 1.1 系统变量1.1.1 系统变量分类变量由系统定义,不是用户定义,属于 服务器 层面。启动MySQL服务,生成MySQL服务实例期间,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性、特征。这些系统变量的值要么是 编译MySQL时参数 的默认值,要么是 配置文件 (例如my.ini等)中的参数值。大家可以通过网址 https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html 查看MySQL文档的系统变量。 系统变量分为全局系统变量(需要添加 global 关键字)以及会话系统变量(需要添加 session...
Mysql笔记:第01章_数据库概述
Mysql笔记:第01章_数据库概述第01章_数据库概述1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。 持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 2. 数据库与数据库管理系统2.1 数据库的相关概念 DB:数据库(Database) 即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。 DBMS:数据库管理系统(Database Management System) 是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。 SQL:结构化查询语言(Structured Query...













