weixin_41275260
畅销书作者
展开
-
视图
15.1 视图概述 MySQL从5.0版本开始支持视图。视图能够方便开发人员对数据进行增、删、改、查等操作。不仅如此,访问视图能够根据相应的权限来限制用户直接访问数据库中的数据表,在一定程度上,能够保障数据库的安全性。 15.1.1 视图的概念 视图可以由数据库中的一张表或者多张表生成,在结构上与数据表类似,但是视图本质上是一张虚拟表...原创 2022-06-25 19:25:08 · 1133 阅读 · 0 评论 -
创建索引
14.3 创建数据表时创建索引 MySQL支持在创建数据时创建索引,本节简单介绍一下MySQL中如何在创建数据的同时为字段创建索引。 14.3.1 语法格式 创建数据表时为字段创建索引的语法格式如下: CREATE TABLE table_name column_name1 data_type1 [, column_na...原创 2022-06-25 19:24:27 · 1148 阅读 · 0 评论 -
触发器
17.1 创建触发器 MySQL中创建触发器可以使用CREATE TRIGGER语句。MySQL中的触发器可以包含一条执行语句,也可以包含多条执行语句。 17.1.1 语法格式 创建触发器的语法格式如下: CREATE [DEFINER = user] TRIGGER trigger_name ...原创 2022-06-25 19:23:44 · 748 阅读 · 0 评论 -
最大值
MAX(字段名称)函数 MAX(字段名称)函数返回数据表中某列的最大值。使用示例如下: mysql> SELECT MAX(age) FROM employee; +----------+ | MAX(age) | +----------+ | 29 | +----------+ 1 row in set (0.00 sec...原创 2022-06-25 19:23:05 · 464 阅读 · 0 评论 -
表
8.1 创建数据表 在MySQL中创建完数据库后,需要先使用“USE 数据库名”的形式指定在哪个数据库中进行操作,然后再执行创建数据表的SQL语句,或者直接使用“数据库名.数据表名”的形式创建数据表。 8.1.1 创建空数据表 MySQL中创建数据表需要遵循一定的语法格式,这些语法格式为创建数据表提供了模板依据。同时,遵循一定的语法格...原创 2022-06-25 19:22:22 · 1263 阅读 · 0 评论 -
创建和删除数据库
7.1 创建数据库 在MySQL中创建数据库比较简单,使用的是CREATE DATABASE语句,本节简单介绍如何在MySQL中创建数据库。 7.1.1 使用CREATE DATABASE语句创建数据库 1.语法格式 创建数据库的语法格式如下: CREATE DATABASE database_name ...原创 2022-06-25 19:21:42 · 16863 阅读 · 1 评论 -
计数
COUNT(*/字段名称)函数 COUNT(*/字段名称)函数的参数可以为“*”和数据表中的某个字段名称。使用示例如下: mysql> SELECT COUNT(*), COUNT(id) FROM employee; +----------+-----------+ | COUNT(*) | COUNT(id) | +----------+...原创 2022-06-25 19:21:01 · 496 阅读 · 0 评论 -
HAVING
GROUP BY语句 MySQL支持按照某个字段或者多个字段进行分组,并使用GROUP BY语句实现对结果数据的分组处理,语法格式如下: SELECT * | column1 [,column2, … ,columnn] FROM table_name [WHERE condition] GROUP BY column GROUP BY语句通...原创 2022-06-25 19:20:19 · 514 阅读 · 0 评论 -
IN
IN子查询 IN关键字表示如果比较的数据在IN列表中,则返回TRUE,否则返回FALSE。 例如,查询t_goods_category数据表中名称为“女装/女士精品”的id数据,并根据查询出的id数据查询t_goods数据表中的数据。 mysql> SELECT id, t_category_id, t_category, t_name, t_p...原创 2022-06-25 19:19:40 · 321 阅读 · 0 评论 -
索引入门
14.1 索引简介 数据库中的索引是一个排好序的数据结构,实际上索引记录了添加索引的列值与数据表中每行记录之间的一一对应关系。 举个通俗易懂的例子,索引就好比是一本书的目录,如果书籍没有编排目录,那么想要找到书籍中的某个知识点时,就只能逐页查看是否有自己想要的内容,这样就会花费大量的时间。如果为书籍编排好目录,那么只需要查看书籍的目录来定位某个知识点的页码,随...原创 2022-06-25 19:18:59 · 2653 阅读 · 0 评论 -
创建和删除表
8.1 创建数据表 在MySQL中创建完数据库后,需要先使用“USE 数据库名”的形式指定在哪个数据库中进行操作,然后再执行创建数据表的SQL语句,或者直接使用“数据库名.数据表名”的形式创建数据表。 8.1.1 创建空数据表 MySQL中创建数据表需要遵循一定的语法格式,这些语法格式为创建数据表提供了模板依据。同时,遵循一定的语法格...原创 2022-06-25 19:18:18 · 4122 阅读 · 0 评论 -
函数
11.1 MySQL函数简介 MySQL提供了丰富的内置函数,这些函数使得数据的维护与管理更加方便,能够更好地提供数据的分析与统计功能,在一定程度上提高了开发人员进行数据分析与统计的效率。同时,使用MySQL内置函数,在一定程度上不用编写复杂的查询和分析逻辑,通过SELECT查询语句并结合MySQL提供的函数,便可以完成相应的数据分析与统计。 MySQL提供的...原创 2022-06-25 19:17:37 · 1053 阅读 · 0 评论 -
最小值
MIN(字段名称)函数 MIN(字段名称)函数返回数据表中某列的最小值。使用示例如下: mysql> SELECT MIN(age) FROM employee; +----------+ | MIN(age) | +----------+ | 18 | +----------+ 1 row in set (0.00 se...原创 2022-06-25 19:16:56 · 309 阅读 · 0 评论 -
EXISTS
EXISTS子查询 EXISTS关键字表示如果存在某种条件,则返回TRUE,否则返回FALSE。 例如,查询t_goods_category数据表中是否存在id为1的数据,如果存在,则查询t_goods数据表中t_category_id为1的数据。 mysql> SELECT id, t_category_id, t_category, t_na...原创 2022-06-25 19:16:16 · 363 阅读 · 0 评论 -
存储过程和函数
16.1 存储过程和函数简介 存储过程和函数不仅能够简化开发人员开发应用程序的工作量,而且对于存储过程和函数中SQL语句的变动,无须修改上层应用程序的代码,这也大大简化了后期对于应用程序维护的复杂度。 16.1.1 什么是存储过程和函数 在MySQL数据库中,存储程序可以分为存储过程和存储函数。存储过程和存储函数都是一系列SQL语句的...原创 2022-06-25 19:15:34 · 1230 阅读 · 0 评论 -
求和
SUM(字段名称)函数 SUM(字段名称)函数返回数据表中某列数据的求和结果。使用示例如下: mysql> SELECT SUM(age) FROM employee; +----------+ | SUM(age) | +----------+ | 111 | +----------+ 1 row in set (0.00 ...原创 2022-06-25 19:14:53 · 418 阅读 · 0 评论 -
索引和约束
14.1 索引简介 数据库中的索引是一个排好序的数据结构,实际上索引记录了添加索引的列值与数据表中每行记录之间的一一对应关系。 举个通俗易懂的例子,索引就好比是一本书的目录,如果书籍没有编排目录,那么想要找到书籍中的某个知识点时,就只能逐页查看是否有自己想要的内容,这样就会花费大量的时间。如果为书籍编排好目录,那么只需要查看书籍的目录来定位某个知识点的页码,随...原创 2022-06-25 19:14:12 · 1439 阅读 · 0 评论 -
平均值
AVG(字段名称)函数 AVG(字段名称)函数返回数据表中某列数据的平均值。使用示例如下: mysql> SELECT AVG(age) FROM employee; +----------+ | AVG(age) | +----------+ | 22.2000 | +----------+ 1 row in set (0.00 s...原创 2022-06-25 19:11:09 · 275 阅读 · 0 评论 -
30.10.4 角色管理
30.10.4 角色管理 角色管理是MySQL 8.x版本中增加的新特性,其中角色可以理解为一组权限的集合。本节就简单介绍下MySQL 8.x中的角色管理。 (1)在MySQL 8.x中创建一个测试用的数据库testdb。 mysql> CREATE DATABASE testdb;Query OK, 1 row affected (0.10 sec) (2)...原创 2022-06-25 17:35:45 · 105 阅读 · 0 评论 -
30.10.3 密码管理
30.10.3 密码管理 从MySQL 8.x版本开始允许限制重复使用以前的密码,关键的配置项如下: ·password_hostory=n:表示新密码不能和最近n次使用过的密码相同。·password_reuse_interval=n:表示按照日期进行限制,表示新密码不能与最近n天内使用过的密码相同。·password_require_current=ON:表示修改密码时,需要...原创 2022-06-25 17:35:02 · 151 阅读 · 0 评论 -
30.10.2 认证插件更新
30.10.2 认证插件更新 在MySQL 8.x中,默认的身份认证插件是caching_sha2_password,替代了之前的mysql_native_password。可以通过系统变量default_authentication_plugin和mysql数据库中的user表来看到这个变化。 在MySQL 5.x中,可以通过如下语句查看默认的身份认证插件。 mysql&g...原创 2022-06-25 17:34:23 · 108 阅读 · 0 评论 -
30.10.1 用户创建和授权
30.10.1 用户创建和授权 在MySQL 5.x版本中可以使用一条语句创建用户并为用户授权。 GRANT ALL PRIVILEGES ON *.* TO 'binghe'@'%' IDENTIFIED BY 'binghe123'; 在MySQL 8.x版本中需要执行如下两条语句创建用户并为用户授权。 CREATE USER 'binghe'@'%' IDENTI...原创 2022-06-25 17:33:42 · 93 阅读 · 0 评论 -
30.9.3 解除用户的资源限制
30.9.3 解除用户的资源限制 删除用户的资源限制时,只需要将相应的资源限制设置为0即可。例如,删除binghe_test的资源限制。 mysql> GRANT USAGE ON *.* TO 'binghe_test'@'localhost' -> WITH MAX_QUERIES_PER_HOUR 0 -> MAX_UPDATES_PER_H...原创 2022-06-25 17:33:02 · 84 阅读 · 0 评论 -
30.9.2 修改用户的资源限制
30.9.2 修改用户的资源限制 将binghe_test用户每小时的查询次数限制修改为200,将每小时的更新次数限制修改为50。 mysql> GRANT USAGE ON *.* TO 'binghe_test'@'localhost' -> WITH MAX_QUERIES_PER_HOUR 200 -> MAX_UPDATES_PER_HO...原创 2022-06-25 17:32:21 · 83 阅读 · 0 评论 -
30.9.1 限制用户使用资源示例
30.9.1 限制用户使用资源示例 例如,为binghe_test用户授予goods数据库上的查询和更新权限,并且每小时的查询次数最多为100,每小时的更新次数最多为20,使用binghe_test用户最多同时有10个并发连接。 mysql> GRANT SELECT, UPDATE ON goods.* TO 'binghe_test'@'localhost' -&...原创 2022-06-25 17:31:41 · 76 阅读 · 0 评论 -
30.8.2 使用DELETE语句删除用户
30.8.2 使用DELETE语句删除用户 例如,使用DELETE语句删除binghe_test用户。 mysql> DELETE FROM mysql.user WHERE user = 'binghe_test' AND host = 'localhost';Query OK, 1 row affected (0.00 sec) SQL语句执行成功,查看MySQ...原创 2022-06-25 17:31:01 · 162 阅读 · 0 评论 -
30.8.1 使用DROP USER语句删除用户
30.8.1 使用DROP USER语句删除用户 例如,使用DROP USER删除binghe_login用户。 mysql> DROP USER 'binghe_login'@'localhost';Query OK, 0 rows affected (0.00 sec) SQL语句执行成功,查看MySQL中是否还存在binghe_login用户。 mysql...原创 2022-06-25 17:30:19 · 191 阅读 · 0 评论 -
30.7.5 忘记root密码的解决方案
30.7.5 忘记root密码的解决方案 修改用户密码中,有一种特殊的情况就是忘记root账户的密码时,如何修改root账户的密码,本节就简单介绍下忘记root账户密码的解决方案。 (1)编辑MySQL的配置文件my.conf,在[mysqld]下添加skip-grant-tables=1配置项,使MySQL在启动时不进行密码验证。 [root@binghe150 ~]# v...原创 2022-06-25 17:29:39 · 178 阅读 · 0 评论 -
30.7.4 通过操作user数据表修改用户密码
30.7.4 通过操作user数据表修改用户密码 MySQL中的用户信息存储在mysql数据库下的user数据表中,可以通过修改user数据库中的密码字段来修改用户的密码,需要注意的是,MySQL 5.7以下版本中user表的密码字段与MySQL 5.7及以上版本的user表中的密码字段不同。 (1)在MySQL 5.6版本中修改binghe_test用户的密码为@Binghe1...原创 2022-06-25 17:28:59 · 507 阅读 · 0 评论 -
30.7.3 使用GRANT语句修改用户密码
30.7.3 使用GRANT语句修改用户密码 MySQL支持使用GRANT语句修改用户的密码,但是不影响当前修改密码的用户权限。例如,使用GRANT语句修改binghe_test用户的密码为binghe_test。 mysql> GRANT USAGE ON *.* TO 'binghe_test'@'localhost' IDENTIFIED BY 'binghe_test...原创 2022-06-25 17:28:18 · 561 阅读 · 0 评论 -
30.7.2 使用SET PASSWORD语句修改用户密码
30.7.2 使用SET PASSWORD语句修改用户密码 使用SET PASSWORD语句可以修改其他用户的密码,也可以修改当前用户自身的密码。 (1)使用root用户登录MySQL后,修改binghe用户的密码为@Binghe123456。 mysql> SET PASSWORD FOR 'binghe_test'@'localhost' = PASSWORD('@...原创 2022-06-25 17:27:38 · 1172 阅读 · 0 评论 -
30.7.1 通过mysqladmin修改用户密码
30.7.1 通过mysqladmin修改用户密码 通过mysqladmin即可以修改root用户的密码,也可以修改普通用户的密码。 (1)使用mysqladmin将root用户的密码修改为root。 [root@binghe150 ~]# mysqladmin -u root -h localhost -p password "root"Enter password: ...原创 2022-06-25 17:26:56 · 1845 阅读 · 0 评论 -
30.6.2 通过操作数据表撤销用户权限
30.6.2 通过操作数据表撤销用户权限 本节以撤销binghe_test用户的权限为例进行简单说明。例如,通过修改mysql.user数据表的权限字段的值来撤销binghe_test用户对所有数据表的修改权限。 mysql> UPDATE mysql.user SET update_priv = 'N' WHERE user = 'binghe_test' AND host...原创 2022-06-25 17:26:15 · 89 阅读 · 0 评论 -
30.6.1 使用REVOKE语句撤销用户权限
30.6.1 使用REVOKE语句撤销用户权限 REVOKE语句可以撤销用户的权限,其语法格式如下: REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user_or_role [, user_or...原创 2022-06-25 17:25:35 · 763 阅读 · 0 评论 -
30.5.2 通过操作数据表修改用户权限
30.5.2 通过操作数据表修改用户权限 MySQL可以通过修改数据表中的权限字段的值来达到修改用户权限的目的。例如,通过操作mysql.user数据表来为binghe_test用户增加对所有数据表的删除权限。 mysql> UPDATE mysql.user SET delete_priv = 'Y' WHERE user = 'binghe_test' AND host ...原创 2022-06-25 17:24:56 · 103 阅读 · 0 评论 -
30.5.1 使用GRANT语句修改用户权限
30.5.1 使用GRANT语句修改用户权限 使用GRANT语句修改用户权限的语法格式,与使用GRANT语句创建用户的语法格式相同,不再赘述。 本节首先为binghe_test用户授予登录权限,接下来使用GRANT语句修改binghe_test用户的数据库权限。 (1)为binghe_test用户授予登录权限。 mysql> GRANT USAGE ON *.* ...原创 2022-06-25 17:24:14 · 286 阅读 · 0 评论 -
30.4.3 通过查询information_schema数据库查看用户权限
30.4.3 通过查询information_schema数据库查看用户权限 在MySQL 5.0版本之后,支持通过nformation_schema数据库查看用户权限,例如,查看binghe用户所具有的权限。 mysql> SELECT * FROM information_schema.SCHEMA_PRIVILEGES WHERE GRANTEE = "'binghe'...原创 2022-06-25 17:23:35 · 601 阅读 · 0 评论 -
30.4.2 通过查询mysql.user数据表查看用户权限
30.4.2 通过查询mysql.user数据表查看用户权限 mysql数据库下的user数据表中存储的用户权限层级为全局,也就是说,在user数据表中存储的权限,在MySQL服务中全局有效。 注意:通过查询mysql.user数据表查看用户权限的方式在为用户授权时,已经使用过,这里不再赘述,读者可以参见30.3节的相关内容。...原创 2022-06-25 17:22:53 · 273 阅读 · 0 评论 -
30.4.1 通过SHOW GRANTS FOR语句查看用户权限
30.4.1 通过SHOW GRANTS FOR语句查看用户权限 例如,查看binghe用户的权限。 mysql> SHOW GRANTS FOR binghe@localhost \G*************************** 1. row ***************************Grants for binghe@localhost: GRA...原创 2022-06-25 17:22:14 · 2674 阅读 · 0 评论 -
30.3.3 通过操作权限表为用户授权
30.3.3 通过操作权限表为用户授权 例如,为binghe_goods用户授予对goods数据库的增、删、改、查权限,并且可以在任何主机上连接MySQL服务,设置其密码为@Binghe123456。使用GRANT语句实现。 mysql> GRANT INSERT, DELETE, UPDATE, SELECT ON goods.* TO 'binghe_goods'@'%'...原创 2022-06-25 17:21:32 · 93 阅读 · 0 评论