C-08.索引的创建和设计原则 1.索引的声明和使用 1.1索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从功能逻辑上分类,索引主要有4种,分别是普通索引,唯一索引,主键索引,全文索引。 按照物理实现方式,索引可以分为2种,聚簇索引和非聚簇索引。 按照作用字段个数进行划分,分为单列索引和联合索引。 1.1.1普通索引 在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索引以后,可以通过索引进行查询。例如,在表student的字段name...

  2Vtxr3XfwhHq   10天前   24   0   0 Java

C-07.InnoDB数据存储结构 1.数据库的存储结构:页 索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般是不同的,甚至有的存储引擎比如Memory都不用磁盘来存储数据。 由于InnoDB是MySQL的默认存储引擎,所以本章剖析InnoDB存储引擎的数据存储结构。 1.1磁盘与内存交互基本单位:页 InnoDB将数据划分为若干个页,InnoDB中页的大小默认为16KB。 以页作为磁盘和内存之间交互的基本单位,也...

  2Vtxr3XfwhHq   17天前   23   0   0 Java

1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中的索引也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条条的查找记录,知道找到与条件符合的记录。上图,是在没有索引的情况下,从磁盘读取数据的示意图。建立索引的目的,就是为了减少磁盘I/O的次数,加快查询速率。 2.索引及其优缺点 2.1索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效的获取数据的数据结构。 索引的本质:索引...

  2Vtxr3XfwhHq   22天前   23   0   0 Java

C-05.存储引擎 为了方便管理,把连接管理,查询缓存,语法解析,查询优化这些不涉及真实数据存储的功能划分为MySQLServer的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MySQLServer完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端就好了。 MySQL中提到了存储引擎的概念。简而言之,存储引擎就是表的类型。其实存储引擎之前叫做表处理器,后来改名为存储引擎,它的功能就是接收上层传下俩的指令,然后对表中的数据进行提取或写入操作。 1.查看存储引擎 查看存储引擎指令 showengines; 查询结果,MySQL8.0支持9...

  2Vtxr3XfwhHq   24天前   21   0   0 Java

C-04.逻辑架构 1.逻辑架构剖析 1.1服务器处理客户端请求 首先MySQL是典型的C/S架构,即Client/Server架构,客户端使用的是mysql,服务器端程序使用的mysqld。 不论客户端进程和服务器进程是采用那种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。 那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示: 下面具体展开看一下: 1.2Connectors Connectors,指的是不同语言中与SQL的交互。MySQL首先是一个网...

  2Vtxr3XfwhHq   2024年03月27日   31   0   0 Java

1.用户管理 MySQL用户可以分为普通用户和root用户。root用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户的密码等管理权限。普通用户只拥有被授予的各种权限。 MySQL提供了很多语句用来管理用户账号,这些语句可以用来管理包括登录和退出MySQL服务器,创建用户,删除用户、密码管理和权限管理等内容。 MySQL数据库的安全性需要通过账户管理来保证。 1.1登录MySQL服务器 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql–hhostname|hostIP–Pport–uusername–pDatabaseName–e"SQ...

  2Vtxr3XfwhHq   2024年03月17日   53   0   0 Java

C-02.MySQL的数据目录和表文件解析 1.MySQL8的主要目录结构 [root@LinuxCentOS7-132dbtest1]find/-namemysql /etc/logrotate.d/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/selinux/targeted/tmp/modules/100/mysql /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/local/maven-repo/mysql /var/lib/mysql /var/lib/m...

  2Vtxr3XfwhHq   2024年03月11日   66   0   0 Java

C-01.Linux下MySQL的安装和使用 前置说明,MySQL高级部分,需要前置知识,为Linux操作系统。如果没有该部分知识,这里推荐韩顺平老师的Linux操作系统的教程。韩老师Linux教程 1.安装前准备 1.1Linux系统及工具的准备 安装并启动好两台虚拟机:CentOS7版本 掌握克隆虚拟机的操作 mac地址 主机名 ip地址 UUID 安装有Xshell和Xftp等远程访问CentOS系统的工具 CentOS6和CentOS7在MySQL的使用区别 1.防火墙:6是iptables,7是firewalld 2.启动服务的命令:6是service,7是system...

  2Vtxr3XfwhHq   2024年03月08日   62   0   0 Java

C-18.MySQL8其他新特性 1.MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本,可见是一个令人兴奋的里程碑的版本。MySQL8版本在功能上,做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是对MySQLOptimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能体验。 1.1MySQL8.0新增特性 1.更简便的NoSQL支持NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展,传统的关系型数据库已经越来越不能满足需求。从5.6版本开始,MySQL就开始支持简单的NoSQL存储功能。MySQL8对这...

  2Vtxr3XfwhHq   2024年03月05日   72   0   0 Java

C-16.变量,流程控制与游标 1.变量 在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。 1.1系统变量 1.1.1系统变量分类 变量由系统定义,不是用户定义,属于服务器层面。启动MySQL服务,生成MySQL服务实例期间,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性,特征。这些系统变量的值要么是编译MySQL时参数的默认值,要么是配置文件(例如my.ini等)中的参数值。可以通过网址查看mysql系统参数查看MySQL系统变量的文档。 系统变量分为全局系统变量(需要添加globa...

  2Vtxr3XfwhHq   2024年02月29日   49   0   0 Java

C-15.存储过程和函数 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 1.存储过程概述 1.1理解 含义:存储过程的英文是StoredProcedure。它的思想很简单,就是一组经过预先编译的SQL语句的封装。 执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行。 好处: 1.简化操作,提高了sql语句的重用性,减少了开发程序员的压里。 2....

  2Vtxr3XfwhHq   2024年02月22日   70   0   0 Java

1.常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录 数据字典 也叫系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护,程序员通常不应该修改,只可查看 约束(CONSTRAINT) 执行数据校验的规则,用于保证数据完整性的规则 视图(VIEW) 一个或者多个数据表里的数据的逻辑显示,视图并不存储数据 索引(INDEX) 用于提高查询性能,相当于书的目录 存储过程(PROCEDURE) 用于完成一次完整的业务处理,没有返回值,但可通过传出参数将多个值传给调用环境 存储函数(FUN...

  2Vtxr3XfwhHq   2024年02月19日   61   0   0 Java

1.约束(constraint)概述 1.1为什么需要约束 数据完整性(DataIntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效操作或错误信息而提出的。 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑: 实体完整性(EntityIntegrity):例如,同一个表中,不能存在两条完全相同无法区分的记录。 域完整性(DomainIntegrity):例如,年龄范围0-120,性别范围"男/女"。 引用完整性(ReferentialI...

  2Vtxr3XfwhHq   2024年01月21日   13   0   0 Java

1.MySQL中的数据类型 常见数据类型的属性,如下 2.整数类型 2.1类型介绍 整数类型一共有5种,包括TINYINT,SMALLINT,MEDIUMINT,INT(INTEGER)和BIGINT。 它们的区别如下表所示 2.2可选属性 整数类型的可选属性有三个 2.2.1M M:显示宽度,M的取值范围是(0,255)。例如,int(5):当数据宽度小于5位的时候在数字前面需要用字符填满宽度。该项功能需要配合"ZEROFILL"使用,表示用"0"填满宽度,否则指定显示宽度无效。 如果设置了显示宽度,那么插入的数据宽度超过显示宽度限制,会不会截断或插入失败? 答案:不会对插入的数据有任何影响...

  2Vtxr3XfwhHq   2024年01月16日   21   0   0 Java

1.插入数据(INSERT语句) 1.1问题引入 向departments表中,新增一条数据。 解决方式,使用insert语句向表中插入数据。 1.2方式1:values的方式添加 情况1:为表的所有字段按默认顺序插入数据 INSERTINTO表名 VALUES(value1,value2,...); 值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。 举例 INSERTINTOdepartments VALUES(70,'Pub',100,1700); INSERTINTOdepartments VALUES(100,'Finance',NULL,NUL...

  2Vtxr3XfwhHq   2024年01月09日   11   0   0 Java

1.基础知识 1.1一条数据存储的过程 存储数据是处理数据的第一步。只有正确的把数据存储,才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的,纷繁复杂的数据,有序,高效的存储起来呢?在MySQL中,一个完整的数据存储过程总共有4步,分别是创建数据库,确认字段,创建数据表,插入数据。为什么要先创建一个数据库,而不是直接创建数据表呢? 因为从系统架构上看,MySQL数据库系统从小到大依次是数据库服务器,数据库,数据表,数据表的行和列。 MySQL数据服务器之前已经安装。所以,从创建数据库开始。 1.2标识符命名规则 数据库名,表名不得超过30个字符,变...

  2Vtxr3XfwhHq   2024年01月07日   17   0   0 Java

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL4.1开始引入。SQL中子查询的使用大大增强了SELECT查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算出一个数据结果,然后与这个数据结果(可能是单行,也可能是多行)进行比较。 1.需求分析与问题解决 1.1实际问题 查询出employees表中,比Abel工资高的员工信息。 -方式1多表查询自连接 SELECT e2.`last_name`, e2.`salary` FROM employeese1, employeese2 WHEREe2.`salary`>e1.`salary` ...

  2Vtxr3XfwhHq   2024年01月03日   11   0   0 Java

C-08聚合(分组)函数和SQL(DQL)执行流程 上一章,讲到了SQL单行函数。实际上SQL函数还有一类,叫做聚合函数,或者多行,分组函数,它是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 1.聚合函数的介绍 什么是聚合函数 聚合函数作用于一组数据,并对一组数据返回一个值。 常用的聚合函数 AVG() SUM() MAX() MIN() COUNT() 聚合函数语法 / SELECT[column,]groupfunction(column),... FROMtable_name [WHEREcondition] GROUPBYcolumn, [ORDERB...

  2Vtxr3XfwhHq   2023年12月22日   59   0   0 Java

C-07.单行函数 1.函数的理解 1.1什么是函数 函数在计算机语言中的使用贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样即提高了代码效率,又提高了可维护性。在SQL中我们也可以使用函数对检索出的数据进行函数操作。使用这函数,可以极大地提高用户对数据库的管理效率。从函数的定义角度出发,我们可以将函数分成内置函数和自定义函数。在SQL语言中,同样也包括了内置函数的自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,本章和下一章讲解的是SQL的内置函数。 1.2不同DBMS的函数的差异 我们在使用SQL语言时,是和各种...

  2Vtxr3XfwhHq   2023年12月16日   21   0   0 Java

C-06.多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。前提条件,这些一起查询的表之间是有关系的(一对一,一对多等),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。 1.一个案例引发的多表连接 1.1案例说明 涉及到的表结构查询员工名(last_name)为'Abel'在那个城市工作。 1.1.2非多表查询实现 -第一步,首先查出'Abel'所在的department_id部门id SELECTdepartment_idFROMemployeesWHERElast_name='Abel'LIMIT0,1; -第二步,查出Abel所在部门,对应...

  2Vtxr3XfwhHq   2023年12月12日   12   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~