08 2020 档案
摘要:在 数据库事务的概念和特性 中介绍了 MySQL 事务的四大特性,其中事务的隔离性就是指当多个事务同时运行时,各事务之间相互隔离,不可互相干扰。如果事务没有隔离性,就容易出现脏读、不可重复读和幻读等情况。 为了保证并发时操作数据的正确性,数据库都会有事务隔离级别的概念。 1) 脏读 脏读是指一个事务
阅读全文
摘要:MySQL 默认开启事务自动提交模式,即除非显式的开启事务(BEGIN 或 START TRANSACTION),否则每条 SOL 语句都会被当做一个单独的事务自动执行。但有些情况下,我们需要关闭事务自动提交来保证数据的一致性。下面主要介绍如何设置事务自动提交模式。 在 MySQL 中,可以通过 S
阅读全文
摘要:MySQL 提供了多种存储引擎来支持事务。支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 REDO 日志实现,MyISAM 存储引擎不支持事务。 拓展:任何一种数据库,都会拥有各种各样的日志,用来记录数据库的运行情况、日常操作、错误信息等,
阅读全文
摘要:数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。 在数据库系统上执行并发操作时,事务是作为最小的控制单元来使用的,特别
阅读全文
摘要:在银行业务中,有一条记账原则,即有借有贷,借贷相等。为了保证这种原则,每发生一笔银行业务,就必须确保会计账目上借方科目和贷方科目至少各记一笔,并且这两笔账要么同时成功,要么同时失败。如果出现只记录了借方科目,或者只记录了贷方科目的情况,就违反了记账原则。会出现记错账的情况。 在银行的日常业务中,只要
阅读全文
摘要:当多个用户访问同一数据时,一个用户在更改数据的过程中可能有其它用户同时发起更改请求,为保证数据的一致性状态,MySQL 引入了事务。 接下来首先会去了解事务控制语句和隔离级别,然后在了解字符集和校对规则的相关概念和操作... ...
阅读全文
摘要:修改事件 在 MySQL 中,事件创建之后,可以使用 ALTER EVENT 语句修改其定义和相关属性。 修改事件的语法格式如下: ALTER [DEFINER = user] EVENT event_name [ON SCHEDULE schedule] [ON COMPLETION [NOT]
阅读全文
摘要:创建好事件后,用户可以通过以下 3 种方式来查看事件的状态信息: 查看 mysql.event 查看 information_schema.events 切换到相应的数据库后执行 SHOW EVENTS; 以上方式的运行结果基本一致,这里就不一一演示了。下面查看 information_schema
阅读全文
摘要:在 MySQL 中,可以通过 CREATE EVENT 语句来创建事件,其语法格式如下: CREATE [DEFINER = user] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESER
阅读全文
摘要:在数据库管理中,经常要周期性的执行某一命令或 SQL 语句,于是 MySQL 5.1 版本以后就提供了事件,它可以很方便的实现 MySQL 数据库的计划任务,定期运行指定命令,使用起来非常简单方便。 事件(Event)也可称为事件调度器(Event Scheduler),是用来执行定时任务的一组 S
阅读全文
摘要:修改触发器可以通过删除原触发器,再以相同的名称创建新的触发器。 基本语法 与其他 MySQL 数据库对象一样,可以使用 DROP 语句将触发器从数据库中删除。 语法格式如下: DROP TRIGGER [IF EXISTS] [数据库名.]<触发器名> 语法说明如下: 1) 触发器名 要删除的触发器
阅读全文
摘要:查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。下面将详细介绍这两种查看触发器的方法。 SHOW TRIGGERS语句查看触发
阅读全文
摘要:触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 CREATE TRIGGER <触发器名> {BEFORE | AFTER} {INSERT | UPDATE | DELETE }
阅读全文
摘要:在存储过程和自定义函数中可以使用流程控制语句来控制程序的流程。MySQL 中流程控制语句有:IF 语句、CASE 语句、LOOP 语句、LEAVE 语句、ITERATE 语句、REPEAT 语句和 WHILE 语句等。 下面将详细讲解这些流程控制语句。 1. IF语句 IF 语句用来进行条件判断,根
阅读全文
摘要:在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。游标在部分资料中也被称为光标。 关系数据库管理系统实质是面向集合的,在 MySQL 中并没有一种描述表中单一记录的表
阅读全文
摘要:在程序的运行过程中可能会遇到问题,此时我们可以通过定义条件和处理程序来事先定义这些问题。 定义条件是指事先定义程序执行过程中遇到的问题,处理程序定义了在遇到这些问题时应当采取的处理方式和解决办法,保证存储过程和函数在遇到警告或错误时能继续执行,从而增强程序处理问题的能力,避免程序出现异常被停止执行。
阅读全文
摘要:在 MySQL 中,除了支持标准的存储过程和函数外,还引入了表达式。表达式与其它高级语言的表达式一样,由变量、运算符和流程控制来构成。 变量是表达式语句中最基本的元素,可以用来临时存储数据。在存储过程和函数中都可以定义和使用变量。用户可以使用 DECLARE 关键字来定义变量,定义后可以为变量赋值。
阅读全文
摘要:存储过程和存储函数都是存储在服务器端的 SQL 语句集合。要想使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现。 存储过程通过 CALL 语句来调用,存储函数的使用方法与 MySQL 内部函数的使用方法相同。执行存储过程和存储函数需要拥有 EXECUTE 权限(EXECUTE 权限
阅读全文
摘要:存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。存储函数可以通过 return 语句返回函数值,主要用于计算并返回一个值。而存储过程没有直接返回值,主要用于执行操作。 在 MySQL 中,使用 CREATE FUNCTION 语句来创建存储函数,其语法形式如下: CREATE F
阅读全文
摘要:MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具。不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工启动,而是通过对数据表的相关操作来触发、激活从而实现执行。比如当对 stude
阅读全文
摘要:存储过程被创建后,就会一直保存在数据库服务器上,直至被删除。当 MySQL 数据库中存在废弃的存储过程时,我们需要将它从数据库中删除。 MySQL 中使用 DROP PROCEDURE 语句来删除数据库中已经存在的存储过程。语法格式如下: DROP PROCEDURE [ IF EXISTS ] <
阅读全文
摘要:在实际开发过程中,业务需求修改的情况时有发生,所以修改 MySQL 中的存储过程是不可避免的。 MySQL 中通过 ALTER PROCEDURE 语句来修改存储过程。这里将详细讲解修改存储过程的方法。 MySQL 中修改存储过程的语法格式如下: ALTER PROCEDURE 存储过程名 [ 特征
阅读全文
摘要:创建好存储过程后,用户可以通过 SHOW STATUS 语句来查看存储过程的状态,也可以通过 SHOW CREATE 语句来查看存储过程的定义。这里主要讲解查看存储过程的状态和定义的方法。 查看存储过程的状态 MySQL 中可以通过 SHOW STATUS 语句查看存储过程的状态,其基本语法形式如下
阅读全文
摘要:MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。 编写存储过程并不是件简单的事情,但是使用存储过程可以简化操作,且减少冗余的操作步骤,同时,还可以减少操作过
阅读全文
摘要:之前我们涉及到的MySQL 语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,经常会有需要多条 SQL 语句处理多个表才能完成的操作。 例如,为了确认学生能否毕业,需要同时查询学生档案表、成绩表和综合表,此时就需要使用多条 SQL 语句来针对这几个数据表完成处理要求。 存储过
阅读全文
摘要:索引的设计可以遵循一些已有的原则,创建索引的时候应尽量考虑符合这些原则,便于提升索引的使用效率,更高效的使用索引。这里将介绍一些索引的设计原则。 1. 选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的
阅读全文
摘要:索引可以提高查询的速度,但并不是使用带有索引的字段查询时,索引都会起作用。使用索引有几种特殊情况,在这些情况下,有可能使用带有索引的字段查询时,索引并没有起作用,下面重点介绍这几种特殊情况。 1. 查询语句中使用LIKE关键字 在查询语句中使用 LIKE 关键字进行查询时,如果匹配字符串的第一个字符
阅读全文
摘要:删除索引是指将表中已经存在的索引删除掉。不用的索引建议进行删除,因为它们会降低表的更新速度,影响数据库的性能。对于这样的索引,应该将其删除。 在 MySQL 中修改索引可以通过删除原索引,再根据需要创建一个同名的索引,从而实现修改索引的操作。 基本语法 当不再需要索引时,可以使用 DROP INDE
阅读全文
摘要:索引创建完成后,可以利用 SQL 语句查看已经存在的索引。在 MySQL 中,可以使用 SHOW INDEX 语句查看表中创建的索引。 查看索引的语法格式如下: SHOW {INDEX|INDEXES|KEYS} {FROM|IN} <表名> [{FROM|IN} <数据库名>] 语法说明如下: <
阅读全文
摘要:创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 MySQL 数据库的高效运行来说是很重要的。 基本语法 MySQL 提供了三种创建索引的方法: 1) 使用 CREATE INDEX 语句 可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创
阅读全文
摘要:索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同。MySQL 索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。 存储方式区分 根据存储方式的不同,MySQL 中常用的索引在物理上分为 B-树索引和 HASH 索引两类,两种不同类型的索引各有其不同的适用范围。 1) B-树
阅读全文
摘要:索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。这里将详细讲解索引的含义、作用和优缺点。 通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。 可以把索引比作新华字典的音序表。例如,要
阅读全文
摘要:删除视图是指删除 MySQL 数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据。 基本语法 可以使用 DROP VIEW 语句来删除视图。语法格式如下: DROP VIEW <视图名1> [ , <视图名2> …] 其中:<视图名>指定要删除的视图名。DROP VIEW 语句可以一
阅读全文
摘要:修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。 基本语法 可以使用 ALTER VIEW 语句来对已有的视图进行修改。 语法格式如下: ALTER VIEW <视图名> AS <SELECT语句> 语法说明如下: <视图名>:
阅读全文
摘要:创建好视图后,可以通过查看视图的语句来查看视图的字段信息以及详细信息。本节主要讲解如何使用 SQL 语句来查看视图的字段信息以及详细信息。 查看视图的字段信息 查看视图的字段信息与查看数据表的字段信息一样,都是使用 DESCRIBE或DESC 关键字来查看的。具体语法如下: DESCRIBE|DES
阅读全文
摘要:创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 基本语法 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名>:指定视图的名称。该名称在
阅读全文
摘要:MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。 数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查
阅读全文
摘要:视图在数据库中的作用类似于窗户,用户可以通过这个窗口看到只对自己有用的数据。既保障了数据的安全性,又大大提高了查询效率。 索引是提高数据库性能的重要方式,用来快速找出数据表中的特定记录。如果在表中查询的列有一个索引,MySQL 能快速到达一个位置去搜寻数据,而不必查看所有数据。 存储过程是在数据库中
阅读全文
摘要:这里主要介绍数据库的具体工作流程。下面是一张简单的数据库执行流程图: 下面从数据库架构的角度介绍数据库的工作流程: 1. 连接层 1)连接处理:客户端同数据库服务层通过连接管理模块建立 TCP 连接,并请求一个连接线程。如果连接池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的
阅读全文
摘要:MySQL处理数据的基本原则是“垃圾进来,垃圾出去”,通俗一点说就是你传给 MySQL 什么样的数据,它就会存储什么样的数据。如果在存储数据时没有对它们进行验证,那么在把它们检索出来时得到的就不一定是你所期望的内容。 有几种 SQL 模式可以在遇到“非正常”值时抛出错误,如果你对其他数据库管理系统比
阅读全文
摘要:MySQL 提供了 DELETE 和 TRUNCATE 关键字来删除表中的数据。本节主要讲解 TRUNCATE 关键字的使用。 TRUNCATE 关键字用于完全清空一个表。其语法格式如下: TRUNCATE [TABLE] 表名 其中,TABLE 关键字可省略。 例 1 新建表 tb_student
阅读全文
摘要:在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。 删除单个表中的数据 使用 DELETE 语句从单个表中删除数据,语法格式为: DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句] 语法说明如下: <表名>:指定要删除数
阅读全文
摘要:在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ] [ORDER BY 子句] [LIM
阅读全文
摘要:数据库与表创建成功以后,需要向数据库的表中插入数据。在 MySQL 中可以使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。 基本语法 INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。 1) INSERT…VALUES语句
阅读全文
摘要:正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。 MySQL 中,使用 REGEXP 关键字指定正则表达式的字符匹配模式,其基本语法
阅读全文
摘要:在完成较复杂的数据查询时,经常会使用到子查询,编写子查询语句时,要注意如下事项。 1) 子查询语句可以嵌套在 SQL 语句中任何表达式出现的位置 在 SELECT 语句中,子查询可以被嵌套在 SELECT 语句的列、表和查询条件中,即 SELECT 子句,FROM 子句、WHERE 子句、GROUP
阅读全文
摘要:子查询是 MySQL 中比较常用的查询方法,通过子查询可以实现多表查询。子查询指将一个查询语句嵌套在另一个查询语句中。子查询可以在 SELECT、UPDATE 和 DELETE 语句中使用,而且可以进行多层嵌套。在实际开发时,子查询经常出现在 WHERE 子句中。 子查询在 WHERE 中的语法格式
阅读全文
摘要:上一节我们了解了 MySQL 的内连接。内连接的查询结果都是符合连接条件的记录,而外连接会先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录。 外连接可以分为左外连接和右外连接,下面根据实例分别介绍左外连接和右外连接。 左连接 左外连接又称为左连接,使用 LEFT OUTER J
阅读全文
摘要:上一节我们了解了 MySQL 的交叉连接,本节主要介绍多表查询的另一种方式——内连接 内连接(INNER JOIN)主要通过设置连接条件的方式,来移除查询结果中某些数据行的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。 内连接使用 INNER JOIN 关键字连接两张表,并使用
阅读全文
摘要:之间所讲的查询语句都是针对一个表的,但是在关系型数据库中,表与表之间是有联系的,所以在实际应用中,经常使用多表查询。多表查询就是同时查询两个或两个以上的表。 在 MySQL 中,多表查询主要有交叉连接、内连接和外连接。由于篇幅有限,这里主要讲解交叉连接查询。内连接和外连接将在接下来的教程中讲解。 交
阅读全文
摘要:在 MySQL 中,可以使用 HAVING 关键字对分组后的数据进行过滤。 使用 HAVING 关键字的语法格式如下: HAVING <查询条件> HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。 但是 WHERE 和 H
阅读全文
摘要:在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。 使用 GROUP BY 关键字的语法格式如下: GROUP BY <字段名1>,<字段名2>, ... ... 其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开。 GROUP BY单独使用 单独使用
阅读全文
摘要:MySQL 提供了 IS NULL 关键字,用来判断字段的值是否为空值(NULL)。空值不同于 0,也不同于空字符串。 如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件。 使用 IS NULL 的基本语法格式如下: IS [NOT] NULL 其中,“N
阅读全文
摘要:MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返回。 使用 BETWEEN AND 的基本语法格式如下: [NOT] BE
阅读全文
摘要:在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下: [NOT] LIKE '字符串' 其中: NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。 LIKE 关键字支
阅读全文
摘要:在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 关键字来指定查询条件。 使用 WHERE 关键字的语法格式如下: WHERE 查询条件 查询条件可以是: 带比较运算符和逻辑运算符的查询条件 带 BETWEEN AND 关键字的查询条件 带 IS NULL 关键字的查询条
阅读全文
摘要:通过条件查询语句可以查询到符合用户需求的数据,但是查询到的数据一般都是按照数据最初被添加到表中的顺序来显示。为了使查询结果的顺序满足用户的要求,MySQL 提供了 ORDER BY 关键字来对查询结果进行排序。 在实际应用中经常需要对查询结果进行排序,比如,在网上购物时,可以将商品按照价格进行排序;
阅读全文
摘要:当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力。这时就可以用 LIMIT 关键字来限制查询结果返回的条数。 LIMIT 是 MySQL 中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。 LIMIT 关键字有 3
阅读全文
摘要:为了查询方便,MySQL 提供了 AS 关键字来为表和字段指定别名。本节主要讲解如何为表和字段指定一个别名。 为表指定别名 当表名很长或者执行一些特殊查询的时候,为了方便操作,可以为表指定一个别名,用这个别名代替表原来的名称。 为表指定别名的基本语法格式为: <表名> [AS] <别名> 其中各子句
阅读全文
摘要:在 MySQL 中使用 SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT 关键字。 DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进
阅读全文
摘要:在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式>
阅读全文
摘要:MySQL 提供了功能丰富的数据库管理语句,包括向数据库中插入数据的 INSERT 语句,更新数据的 UPDATE 语句,以及当数据不再使用时,删除数据的 DELETE 语句。 后面会继续介绍在 MySQL 中如何使用这些语句操作数据表中的记录。表中数据的增删改查是数据库中最常用的操作...
阅读全文
摘要:IF函数:判断 MySQL IF 语句允许您根据表达式的某个条件或值结果来执行一组 SQL 语句。 要在 MySQL 中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回 TRUE,FALSE 或 NULL,这三个值之一。 语法结构如下: IF(expr,v1,v2) 其中:
阅读全文
摘要:MAX函数:查询指定列的最大值 MySQL MAX() 函数是用来返回指定列中的最大值。 为了方便理解,首先创建一个学生成绩表 tb_students_score,学生成绩表的数据内容如下所示。 mysql> use test_db; Database changed mysql> SELECT *
阅读全文
摘要:CURDATE和CURRENT_DATE函数:获取系统当前日期 MySQL 中 CURDATE() 和 CURRENT_DATE() 函数的作用相同,将当前日期按照“YYYY-MM-DD”或“YYYYMMDD”格式的值返回,具体格式根据函数用在字符串或数字语境中而定。 【实例】使用日期函数 CURD
阅读全文
摘要:LENGTH函数:获取字符串长度 MySQL LENGTH(str) 函数的返回值为字符串的字节长度,使用 uft8(UNICODE 的一种变长字符编码,又称万国码)编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。 【实例】使用 LENGTH 函数计算字符串长度,输入的 SQL 语句
阅读全文
摘要:ABS函数:求绝对值 在 MySQL 中绝对值函数 ABS(x) 返回 x 的绝对值。正数的绝对值是其本身,负数的绝对值为其相反数,0 的绝对值是 0。 【实例】求 5、-2.4、-24 和 0 的绝对值,输入的 SQL 语句和执行结果如下所示。 mysql> SELECT ABS(5),ABS(-
阅读全文
摘要:MySQL 函数是 MySQL 数据库提供的内部函数,这些内部函数可以帮助用户更加方便地处理表中的数据。函数就像预定的公式一样存放在数据库里,每个用户都可以调用已经存在的函数来完成某些功能。 提示:函数就是输入值然后得到相应的输出结果,输入值称为参数(parameter),输出值称为返回值。 函数可
阅读全文
摘要:MySQL 中的 IN 运算符用来判断表达式的值是否位于给出的列表中;如果是,返回值为 1,否则返回值为 0。 NOT IN 的作用和 IN 恰好相反,NOT IN 用来判断表达式的值是否不存在于给出的列表中;如果不是,返回值为 1,否则返回值为 0。 IN 和 NOT IN 的语法格式如下: ex
阅读全文
摘要:运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。 优先级由低到高排列运算符 1 =(赋值运算)、:= 2 II、OR 3 XOR 4 &&、AND 5 NOT 6 BETWEEN、CASE、WHEN、THEN、ELSE 7 =(比较运算)、
阅读全文
摘要:所谓位运算,就是按照内存中的比特位(Bit)进行操作,这是计算机能够支持的最小单位的运算。程序中所有的数据在内存中都是以二进制形式存储的,位运算就是对这些二进制数据进行操作。 位运算一般用于操作整数,对整数进行位运算才有实际的意义。整数在内存中是以补码形式存储的,正数的补码形式和原码形式相同,而负数
阅读全文
摘要:当使用 SELECT 语句进行查询时,MYSQL 允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。MySQL 支持的比较运算符如下表所示。 MySQL 中的比较运算符 运算符作用 = 等于 <=> 安全的等于 <> 或者 !
阅读全文
摘要:逻辑运算符又称为布尔运算符,用来确定表达式的真和假。MySQL中支持的逻辑运算符如下表所示。 MySQL 中的逻辑运算符 运算符作用 NOT 或者 ! 逻辑非 AND 或者 && 逻辑与 OR 和 || 逻辑或 XOR 逻辑异或 下面分别讨论 MySQL 逻辑运算符的使用方法。 NOT和!都是逻辑非
阅读全文
摘要:算术运算符是 SQL 中最基本的运算符,MySQL 支持的运算符包括加、减、乘、除和取余运算,它们是最常用、最简单的一类运算符。下表列出了这些运算符的作用和使用方法。 MySQL中的算术运算符 运算符作用使用方法 + 加法运算 用于获得一个或多个值的和 - 减法运算 用于从一个值中减去另一个值 *
阅读全文
摘要:在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。例如,学生表中存在一个 birth 字段,这个字段表示学生的出生年份。如果想得到这个学生的实际年龄,可以使用 MySQL 中的算术运算符用当前的年份减学生出生的年份,求出的结果就是这个学生的实际年龄了。 MySQL 所提供的运算符可以直
阅读全文
摘要:在 MySQL 中可以使用 SHOW CREATE TABLE 语句来查看表中的约束。 查看数据表中的约束语法格式如下: SHOW CREATE TABLE <表名>; 例 1 创建数据表 tb_emp8 并指定 id 为主键约束,name 为唯一约束,deptId 为非空约束和外键约束,salar
阅读全文
摘要:MySQL 非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
阅读全文
摘要:默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。 例如,员工信息表中,部门位置在北京的较多,那么部门位置就可以默认为“北京”,系统就会自动为这个字段赋值
阅读全文
摘要:MySQL 检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。设置检查约束时要根据实际情况进行设置,这样能够减少无效数据的输入。 后面说到的默认值约束和非空约束也可看作是特殊的检查约束。 选取设置检查约束的字段
阅读全文
摘要:MySQL 唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为 id 字段加上唯一性约束后,每条记录的 id 值都是唯一的,不能出现重复的情况。如果其中一条记录的 id 值为‘0001’,那么该表中就不能出现另一条记录的 id 值也为‘0001’。 唯一约束与主键约束相似的
阅读全文
摘要:MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果
阅读全文
摘要:在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如下: 字段名 数据类型 AUTO_INCREMENT 注意:
阅读全文
摘要:主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。 主键分为单字段主键和多字段联合主键,本节将分别讲解这两种主键约束的创建、修改和删除。 使用主键应注意以下几点: 每个表只能定
阅读全文
摘要:在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。 例如,在数据表中存放年龄的值时,如果存入 200、300 这些无效的值就毫无意义了。因此,使用约束来限定表中的数据范围是很有必要的。 在 MySQL 中,主要支持以下
阅读全文
摘要:约束是一种限制,它通过限制表中的数据,来确保数据的完整性和唯一性。使用约束来限定表中的数据是很有必要的。 MySQL 提供了很多功能强大、使用方便的运算符和函数。我们可以通过使用这些运算符完成各种各样的运算操作。函数可以帮助开发人员简单、快速的编写 SQL 语句。 接下来就继续来了解这些... ..
阅读全文
摘要:MySQL 数据表是由行和列构成的,通常把表的“列”称为字段(Field),把表的“行”称为记录(Record)。随着业务的变化,可能需要在已有的表中添加新的字段。 MySQL 允许在开头、中间和结尾处添加字段。 在末尾添加字段 一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语
阅读全文
摘要:创建完数据表之后,经常需要查看表结构(表信息)。在 MySQL 中,可以使用 DESCRIBE 和 SHOW CREATE TABLE 命令来查看数据表的结构。 DESCRIBE:以表格的形式展示表结构 DESCRIBE/DESC 语句会以表格的形式来展示表的字段信息,包括字段名、字段数据类型、是否
阅读全文
摘要:数据表之间经常存在外键关联的情况,这时如果直接删除父表,会破坏数据表的完整性,也会删除失败。 删除父表有以下两种方法: 先删除与它关联的子表,再删除父表;但是这样会同时删除两个表中的数据。 将关联表的外键约束取消,再删除父表;适用于需要保留子表的数据,只删除父表的情况。 下面介绍了如何取消关联表的外
阅读全文
摘要:在 MySQL 数据库中,对于不再需要的数据表,我们可以将其从数据库中删除。 在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。 下面我们来了解一下 MySQL 数据库中数据表的删除方法。 基本语法 使用 DROP TABLE 语句可以删除一
阅读全文
摘要:这里主要介绍 MySQL 修改和删除数据表字段的方法。 修改字段名称 MySQL 中修改表字段名的语法规则如下: ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>; 其中: 旧字段名:指修改前的字段名; 新字段名:指修改后的字段名; 新数据类型:指修改后的数
阅读全文
摘要:修改数据表的前提是数据库中已经存在该表。修改表指的是修改数据库中已经存在的数据表的结构。修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上。 不了解如何修改数据表,就相当于是我们只要画错了就要扔掉重画,这样就增加了不必要的成本。 在 MySQL 中可
阅读全文
摘要:在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。 基本语法 在 MySQL 中,可以使用
阅读全文
摘要:数据表是数据库的重要组成部分,每一个数据库都是由若干个数据表组成的。换句话说,没有数据表就无法在数据库中存放数据。 比如,在电脑中创建一个空文件夹,如果要把“Hello MySQL”存放到文件夹中,必须把它写在 Word 文档、记事本或其它能存放文本的文档中。这里的空文件夹就相当于数据库,存放文本的
阅读全文
摘要:在前面提到,MySQL 的核心就是存储引擎。MySQL 存储引擎主要有 InnoDB、MyISAM、Memory、BDB、Merge、Archive、Federated、CSV、BLACKHOLE 等。 MySQL 中修改数据表的存储引擎的语法格式如下: ALTER TABLE <表名> ENGIN
阅读全文
摘要:这里介绍如何根据不同的应用场景去选择合适的存储引擎... ... 在使用 MySQL 数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题。不同的存储引擎都有各自的特性、优势和使用的场合,正确的选择存储引擎可以提高应用的使用效率。 为了能够正确地选择存储引擎,必须掌握各种存储引擎的特性。下面
阅读全文
摘要:主要介绍关于默认存储引擎的操作。如果需要操作默认存储引擎,首先需要查看默认存储引擎。可以通过执行下面的语句来查看默认的存储引擎,具体 SQL 语句如下: SHOW VARIABLES LIKE 'default_storage_engine%'; 执行上面的 SQL 语句,其结果如图所示。 执行结果
阅读全文
摘要:MySQL 支持 InnoDB、MyISAM、Memory、Merge、Archive、CSV、BLACKHOLE 几种存储引擎,不同存储引擎的数据表在文件系统中的表示也各不相同。 MySQL 中的每一个数据表在磁盘上至少被表示为一个文件,即存放着该数据表结构定义的 .frm 文件。不同的存储引擎还
阅读全文
摘要:MyISAM 存储引擎是 MySQL 中常见的存储引擎,曾(MySQL 5.1及之前版本)是 MySQL 的默认存储引擎。 MyISAM 是基于 ISAM 存储引擎发展起来的。实际上那会还没有存储引擎的概念,ISAM 只是一种算法,或者说是数据的处理方式。如同 SQL Server/Oracle 这
阅读全文
摘要:InnoDB 是 MySQL 中第一个提供外键约束的存储引擎,而且它对事务的处理能力是其它存储引擎无法与之相比的。 MySQL 5.5 版本以后,默认存储引擎由 MyISAM 修改为 InnoDB。InnoDB 是目前最重要、使用最广泛的存储引擎。 InnoDB 一直在持续改进,随着处理能力的不断提
阅读全文
摘要:数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。简而言之,存储引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 现在许多数据库管理系
阅读全文
摘要:在 MySQL 数据库,变量分为系统变量和用户自定义变量。系统变量以 @@ 开头,用户自定义变量以 @ 开头。 服务器维护着两种系统变量,即全局变量(GLOBAL VARIABLES)和会话变量(SESSION VARIABLES)。全局变量影响 MySQL 服务的整体运行方式,会话变量影响具体客户
阅读全文
摘要:在 MySQL 中,除了常见的字符之外,我们还会遇到一些特殊的字符,如换行符、回车符等。这些符号无法用字符来表示,因此需要使用某些特殊的字符来表示特殊的含义,这些字符就是转义字符。 转义字符一般以反斜杠符号\开头,用来说明后面的字符不是字符本身的含义,而是表示其它的含义。MySQL 中常见的转义字符
阅读全文
摘要:MySQL 提供了大量的数据类型,为了优化存储和提高数据库性能,在任何情况下都应该使用最精确的数据类型。 前面主要对 MySQL 中的数据类型及其基本特性进行了描述,包括它们能够存放的值的类型和占用空间等。这里主要讨论创建数据库表时如何选择数据类型。 可以说字符串类型是通用的数据类型,任何内容都可以
阅读全文
摘要:MySQL 支持两类字符型数据:文本字符串和二进制字符串。上一教程22中讲了文本字符串,这节来讲解二进制字符串。 二进制字符串类型有时候也直接被称为“二进制类型”。 MySQL 中的二进制字符串有 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LON
阅读全文
摘要:字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。 MySQL 中的字符串类型有 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET 等。 下表中列出了
阅读全文
摘要:MySQL 中有多处表示日期的数据类型:YEAR、TIME、DATE、DTAETIME、TIMESTAMP。当只记录年信息的时候,可以只使用 YEAR 类型。 每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。 下表中列出了 MySQL 中的日期与时间类型。 类型名称
阅读全文
摘要:MySQL 中使用浮点数和定点数来表示小数。 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只有一种,就是 DECIMAL。 浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数(小数点"."不占位数);D称为标度,表示小数的位数。
阅读全文
摘要:整数类型又称数值型数据,数值型数据类型主要用来存储数字。 MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。 MySQL 主要提供的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其属性字段可
阅读全文
摘要:数据类型(data_type)是指系统中所允许的数据的类型。MySQL 数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。 数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,则相应的数据类型应该为数值类型。 如果使用错误的数据类型可能会严重影响
阅读全文
摘要:数据表由多个字段组成,每个字段在进行数据定义的时候都要确定不同的数据类型。向每个字段插入的数据内容决定了该字段的数据类型。MySQL 提供了丰富的数据类型,根据实际需求,用户可以选择不同的数据类型。不同的数据类型,存储方式是不同的。 另外,MySQL 还提供了存储引擎,我们可以通过存储引擎决定数据表
阅读全文
摘要:MySQL 出错时反馈的代码代表出错的原因,我们只有明白这些代码代表的意思,才能了解 MySQL 数据库的错误,找出原因,解决问题。下面介绍 MySQL 服务器和客户端中的错误代码、提示消息的生成方式和查看方法,最后还对 MySQL 中常见的错误代码做了详细说明。 MySQL服务器端错误代码和消息
阅读全文
摘要:无论在学习还是在实际工作中,我们都会经常遇到各种意想不到的困难,需要利用我们的智慧和能力攻克。 那么如何才能及时解决学习 MySQL 时的疑惑呢?可以通过 MySQL 的系统帮助来解决遇到的问题。 在 MySQL 中,查看帮助的命令是 HELP,语法格式如下: HELP 查询内容 其中,查询内容为要
阅读全文
摘要:SQL 语句的大小写规则与语句组成元素、引用内容和服务器所使用的操作系统有关。 1) SQL 关键字和函数名 SQL 的关键字和函数名不区分大小写。例如,下面这些语句都是等价的: SELECT NOW(); select now(); sElEcT nOw(); 2) 数据库名、表名和视图名 MyS
阅读全文
摘要:每一种语言都有自己的注释方式,代码量越多,代码注释的重要性也就越明显。一般情况下,注释可以出现在程序中的任何位置,用来向用户或程序员提示或解释程序的功能及作用。 下面主要介绍 MySQL 中 SQL 语句的注释方法。 注释在 SQL 语句中用来标识说明或者注意事项的部分,对 SQL 的执行没有任何影
阅读全文
摘要:在 MySQL 中就有很多系统自带的数据库,那么在操作数据库之前就必须要确定是哪一个数据库。 在 MySQL 中,USE 语句用来完成一个数据库到另一个数据库的跳转。 当用 CREATE DATABASE 语句创建数据库之后,该数据库不会自动成为当前数据库,需要用 USE 来指定当前数据库。其语法格
阅读全文
摘要:当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。 在 MySQL 中,当需要删除已创建的数据库时,可以使用 DROP DATABASE 语句。其语法格式为: DROP DATABASE
阅读全文
摘要:在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。下面介绍一下修改数据库的基本操作。 在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为: ALTER DAT
阅读全文
摘要:在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下: CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>]; [
阅读全文
摘要:数据库可以看作是一个专门存储数据对象的容器,每一个数据库都有唯一的名称,并且数据库的名称都是有实际意义的,这样就可以清晰的看出每个数据库用来存放什么数据。在 MySQL 数据库中存在系统数据库和自定义数据库,系统数据库是在安装 MySQL 后系统自带的数据库,自定义数据库是由用户定义创建的数据库。
阅读全文
摘要:对于 SQL 初学者,在写 SQL 语句时,只要遵守下面几个书写规则,就可以避免很多错误。这些规则都非常简单,下面我们来逐一介绍。 SQL 语句要以分号;结尾 在 RDBMS (关系型数据库)当中,SQL 语句是逐条执行的,一条 SQL 语句代表着数据库的一个操作。 我们通常在句子的句尾加注标点表示
阅读全文
摘要:MySQL 安装好之后就可以进行数据库的相关操作了。数据库就像车库一样,每一个小区里都有很多车库用来存放车,它们都有唯一的车库号。同样,在 MySQL 中也可以创建多个不同名称的数据库存储数据。 SQL 是一种专门用来与数据库通信的语言,我们使用 SQL 来操作数据库。 接下来将通过丰富的实例对 S
阅读全文
摘要:my.ini 是 MySQL 数据库中使用的配置文件,MySQL 服务器启动时会读取这个配置文件,我们可以通过修改这个文件,达到更新配置的目的。本节以 Windows 系统下的 my.ini 配置文件为样板,讲解 MySQL 配置文件中的参数。 一般情况下,my.ini 在 MySql 安装的根目录
阅读全文
摘要:MySQL 安装完成后,会在磁盘上生成一个目录,该目录就被称为 MySQL 的安装目录。 MySQL 的安装目录包含一些子目录以及一些后缀名为.ini的配置文件。为了更好地学习 MySQL,初学者必须要对 MySQL 安装目录下各个子目录的意义和作用有所了解。下面对 MySQL 的安装目录进行详细讲
阅读全文
摘要:MySQL 服务器正确安装以后,可以通过命令行管理工具或者图形化的管理工具来操作 MySQL 数据库。 MySQL 图形化管理工具极大地方便了数据库的操作与管理,除了系统自带的命令行管理工具之外,常用的图形化管理工具还有 MySQL Workbench、phpMyAdmin、Navicat、MySQ
阅读全文
摘要:当 MySQL 服务开启后,就可以通过客户端来登录 MySQL 数据库了。在 Windows 操作系统下可以使用 DOS 命令登录数据库,本节将介绍使用命令方式登录 MySQL 数据库的方法。 登录 MySQL 数据库的具体操作步骤如下: 步骤 1):启动CMD命令窗口, 如果没有配置环境变量, 需
阅读全文
摘要:注意: 不在介绍如何下载和安装以及配置MySQL, 网上教程很多, 这里不多赘述... 如何判断MySQL是否安装成功 MySQL 安装完成后,用户可以通过 DOS 窗口或者 MySQL Command Line Client 验证 MySQL 是否安装成功。 DOS窗口验证 步骤 1):打开 DO
阅读全文
摘要:转载: https://blog.csdn.net/qq_39390545/article/details/106414765 一、MySQL通配符模糊查询(%,_) 1-1. 通配符的分类 "%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次) "_" 下划线通配符:表示只能匹配单个字符
阅读全文
摘要:转载: https://blog.csdn.net/qq_39390545/article/details/107020686 理解SQL优化原理 ,首先要搞清楚SQL执行顺序: SELECT语句 - 语法顺序: SELECT DISTINCT <select_list> FROM <left_ta
阅读全文
摘要:转载自: https://blog.csdn.net/qq_39390545/article/details/106690916 1.插入或替换 如果我们想插入一条新记录(INSERT),但如果记录已经存在,就先删除原记录,再插入新记录。 此时,可以使用"REPLACE INTO"语句,这样就不必先
阅读全文