MySQL5.7从入门到精通 (视频教学版) 刘增杰 编著

2023-02-14,,,

第1章 初识MySQL

MySQL是一个开放源代码的数据库管理系统(DBMS),它是由MySQL AB公司开发、发布和支持的。MySQL是一个跨平台(Windows、Linux、UNIX、MacOS)的开源“关系型”数据库管理系统,广泛地应用在Internet上的中小型网站开发中。

1.1 数据库基础

1.1.1 什么是数据库

1)保管数据的“仓库”;

2)数据管理的方法和技术;

1.1.2 表

类似于Excel表,行记录,列字段!

1.1.3 数据类型

常见的数据类型有:整数、浮点数、精确小数、二进制、日期/时间、字符串

1.1.4 主键

1)主键又称为主码,用于唯一标识表中的每一条记录。

2)可定义表中一列或者多列为主键(Primary Key)

3)主键列上不能有两行相同的值,也不能为空值null

1.2 数据库技术构成

1.2.1 数据库系统

数据库管理系统的3个主要组成部分

1)数据库:用于存储数据的地方

2)数据库管理系统:用于管理数据库的软件software

3)数据库应用:为了提高数据库系统的处理能力所使用的管理数据库软件的补充

数据库管理系统(DataBase Management System,DBMS)是用户创建、管理和维护数据库时使用的软件,位于操作系统和用户之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的从操作机制,维护数据库的安全性、完整性和可靠性。

用户 用户 用户———— Layer5
应用程序 ————Layer4
数据库管理系统 ————Layer3
操作系统 ————Layer2
硬件————Layer1
1.2.2 SQL语言

对数据库进行查询和修改操作的语言叫做SQL。(Structured Query Language)工业标准SQL-92

SQL包含如下

1)数据定义语言(DDL):DROP、CREATE、ALTER等语句

2)数据操作语言(DML):INSERT、UPDATE、DELETE语句

3)数据查询语言(DQL):SELECT语句

4)数据控制语言(DCL):GRANT、REVOKE、COMMIT、ROLLBACK语句

1.2.3 数据库访问接口

1)ODBC(Open Database Connectivity开放数据库互连),最大优点是可以以统一的方式处理所有数据库。

2)JDBC(Java Data Base ConnectivityJava数据库连接),用于Java应用程序连接数据库的标准和方法。

3)ADO.NET,是在微软.NET框架下开发设计的一组用于和数据源进行交互的面向对象的类库。

4)PDO(PHP Data Object),为PHP访问数据库定义了一个轻量级的、一致性的接口。

针对不同的语言,MySQL提供了不同数据库的“访问连接驱动”,可登录官网下载。

1.3 什么是MySQL

MySQL是一个小型关系型数据库管理系统,与其他大象数据库管理系统(Oracle、DB2、SQL Server)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低且它提供的功能对稍微复杂的应用已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源码数据库。

1.3.1 客户机-服务器软件

主从式架构(Client-server-model)或客户端——服务器(Client/Server)结构简称C/S结构,是一种网络架构,通常在该网络架构下软件分为客户端(Client)和服务器(Server)

这种系统的特点是,客户端和服务器程序不在同一台计算机运行,这些客户端和服务器程序通常归属不同的计算机。

主从式架构通过不同的途径应用于很多不同类型的应用程序,比如在因特网上使用的网页。

举例:当顾客从京东上买东西的时候,电脑和网页浏览器就被当做一个客户端,同时组成当当网的电脑、数据库和应用程序就被当做服务器。

服务器端一般使用高性能的计算机,并配合使用不同类型的数据,如oracle、Sybase或者MySQL。

1.3.2 MySQL版本

1)MySQL Community Server(社区版):完全免费,但官方不提供技术支持

2)MySQL Enterprise Server(企业版服务器):它能够以很高性价比为企业提供数据库仓库应用,支持ACID事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。需付费,官方提供电话技术支持。

3)MySQL Cluster主要用于架设集群服务器,需要在社区版或者企业版的基础上使用。

Server version: 5.7.13-log MySQL Community Server (GPL)

1)第1个数字,主版本号

2)第2个数字,发行级别

3)第3个数字,是再次发行系列的版本号,随每次新分发版本递增,通常是已发行的最新版本。

4)MySQL(Current Generally Available Release)版本已经过严格标准的测试,可以保证其安全可靠的使用。

1.3.3 MySQL优势

1)速度:运行速度快;

2)价格:MySQL对多数人来说是免费的;

3)容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习掌握;

4)可移植性(跨平台):Windows、Linux、UNIX、Mac OS等众多不同的系统平台上使用;

5)丰富的接口:提供了用于C、C++、Java、Perl、PHP、Python、Ruby等语言的API;

6)支持查询语言:MySQL可以利用标准的SQL语法和支持ODBC(开放式数据库连接)的应用程序;

7)安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全;

8)MySQL是网络化的,可以在因特网上的任何地方访问,提高数据共享的效率;

1.3.4 MySQL5.7的新功能

1)支持JSON

  JSON(JavaScript Object Notation的缩写)是一种存储信息的格式,可以很好地替代XML。从MySQL5.7.8版本开始,MySQL将支持JSON。

2)性能和可拓展性

改进InnoDB的可拓展性和临时表的性能,从而实现更快的网络和大数据家在等操作

3)改进复制以提高可用性的性能

改进复制包括多源复制、多从线程增强、在线GTIDs和增强的半同步复制

4)性能模式提供更好的视角

5)安全

6)优化

7)GIS

1.4 MySQL工具

1.4.1 MySQL命令行实用程序

1)mysqld:SQL后台程序(即MySQL服务器进程)。该程序必须运行之后,客户端才能通过连接服务器来访问数据库。

2)mysqld_safe:服务器启动脚本。

3)mysql.server:服务器启动脚本。

4)mysql_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器

1.4.2 MySQL Workbench

MySQL Workbench是下一代可视化数据库设计软件,功能如下:

1)数据库设计和模型建立

2)SQL开发(取代MySQL Query Browser)

3)数据库管理(取代MySQL Administrator)

MySQL Workbench Community Edition(也叫MySQL Workbench OSS,社区版)

MySQL Workbench Standard Edition(也叫 MySQL Workbench SE,商业版)

1.5 如何学习MySQL

1)培养兴趣(兴趣是最好的老师,不论学习什么知识,兴趣都可以极大的提高学习效率)

2)夯实基础

计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深入,只有有着扎实的基础功底,才能在技术的道路上走的更快、更远。对于MySQL的学习,SQL语句就是其中最为基础的部分。

3)及时学习新知识

搜索引擎、参考他人的解决问题的思路,吸取别人的经验以及获取最新的技术资料

4)多实践操作

数据库系统具有极强的操作性,需要多动手上机操作。

第2章 MySQL的安装与配置

  Windows平台下安装MySQL,可以使用图形化的安装包,它提供了详细的安装向导,读者可一步一步地按照提示完成的MySQL的安装。

2.1 Windows平台下安装与配置MySQL5.7

2.1.1 安装MySQL5.7

  Windows平台下提供两种安装方式:

1)MySQL二进制分发版(.msi安装文件)

2)免安装版.zip压缩文件

一般来讲,应当使用二进制分发版,因为该版本比其他的分发版本使用起来要简单,不需要借助其他工具来启动就可以运行MySQL。

2.1.2 配置MySQL5.7

1)Development Machine(开发机器):该选项代表典型的个人用桌面工作站。假定机器上运行着多个桌面应用程序,将MySQL服务器配置成使用最少的系统资源。

2)Server Machine(服务器):该选项该表服务器,MySQL服务器可以同其他应用程序一起运行,如FTP、Email和Web服务器,MySQL服务器配置成使用适当比例的系统资源

3)Dedicated Machine(专用服务器):该选项代表只运行MySQL服务的服务器。假定没有运行其他服务程序,MySQL服务器配置成使用所有可用的系统资源。

2.2 启动服务并登录MySQL数据库

  MySQL安装完毕之后,需要启动服务器的进程,不然客户端无法连接数据库。客户端通过命令行工具登录数据库。

1)cmd-》net start mysql

2)cmd-》net stop mysql

2.2.1 启动MySQL服务
2.2.2 登录MySQL数据库

1)DOS窗口登录MySQL数据库

2)使用MySQL Commond Line Client登录MySQL

2.2.3 配置Path环境变量

1)解决窗口闪一下消失的问题,复制mysql-default.ini,然后将副本命名为mysql.ini即可。

2.3 MySQL常用图形化管理工具

  MySQL图形化管理工具极大地方便了数据库的操作与管理,常用图形化工具介绍如下:

1)MySQL Workbench

2)phpMyAdmin

3)Navicat for MySQL

4)MySQL Dumper

5)SQLyog

2.4 Linux平台下安装与配置MySQL5.7

  Linux操作系统有众多的发行版,不同平台下需要安装不同的MySQL版本,MySQL主要支持的Linux版本有SUSE Linux enterprise Server和Red Hat&Oracle Enterprise Linux

2.4.1 Linux操作系统下的MySQL版本介绍

  Linux操作系统是自由软件和开放源代码发展中最著名的例子。其诞生以后,经过全世界各地计算机爱好者的共同努力,现已成为今天世界上使用最多的一种“类UNIX”操作系统,目前已经开发超过300个发行版本,比较流行的版本有:Ubuntu、Debian、GNU/Linux、Fedora、openSUSE、和RedHat系列。

  目前MySQL主要支持的Linux版本为SUSE和Red Hat,Linux操作系统下MySQL安装包分为3类

1)RPM:RPM软件包是一种在Linux平台下的安装文件,通过安装命令可很方便地安装与卸载。(RedHat系列),MySQL的RPM安装文件分为两个:服务端和客户端,需分别下载和安装。

2)Generic Binaries:二进制软件包,经过编译生成的二进制文件软件包。

3)源码包:源码包是MySQL数据库的源代码,用户需要自己编译成二进制文件后方可安装。

2.4.2 安装和配置MySQL的RPM包

  MySQL推荐使用RPM包进行Linux平台下的安装,从官方下载的RPM包能够在所有支持RPM packages,glibc2.3的Linux系统下安装和使用

Linux平台下的MySQL安装目录

/usr/bin 客户端和脚本

/usr/sbin MySQLD服务器

/var/lib/mysql 日志文件和数据库

/usr/share/info 信息格式的手册

/usr/share/man UNIX帮助页

/usr/include/mysql 头文件

/usr/lib/mysql 库

/usr/share/mysql 错误消息、字符集、示例配置文件等

mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar解压缩之后如下:

mysql-community-client-5.7.13-1.el7.x86_64.rpm#是客户端安装包;
mysql-community-common-5.7.13-1.el7.x86_64.rpm#是服务端的安装包;
mysql-community-devel-5.7.13-1.el7.x86_64.rpm#是包含开发用的库文件安装的包;
mysql-community-embedded-5.7.13-1.el7.x86_64.rpm#是嵌入式MySQL的安装包;
mysql-community-embedded-compat-5.7.13-1.el7.x86_64.rpm;
mysql-community-embedded-devel-5.7.13-1.el7.x86_64.rpm;
mysql-community-libs-5.7.13-1.el7.x86_64.rpm;
mysql-community-libs-compat-5.7.13-1.el7.x86_64.rpm;
mysql-community-minimal-debuginfo-5.7.13-1.el7.x86_64.rpm;
mysql-community-server-5.7.13-1.el7.x86_64.rpm;
mysql-community-server-minimal-5.7.13-1.el7.x86_64.rpm;
mysql-community-test-5.7.13-1.el7.x86_64.rpm#是一些测试的安装包;

  一般情况下,只需要安装client和server两个包,如需进行C、C++MySQL相关开发,请安装mysql-community-devel-5.7.13-1.el7.x86_64.rpm

安装之前,要查看机器上是否已经装有就办的MySQL,如果有,最好先把旧版MySQL卸载,否则可能产生冲突。

rpm -qa|grep -i mysql

从MySQL5.0开始,MySQL的服务名改为mysql,而不是4.*版本的mysqld

MySQL服务的操作命令是

1)service mysql start|stop|restart|status#CentOS6.X下

2)systemctl start|stop|restart|status mysqld#CentOS7.X下,因为CentOS7系列使用了systemd管理工具

2.4.3 安装和配置MySQL的源码包

  进入下载页面:https://downloads.mysql.com/archives/community/

源码安装需要一些开发工具

1)CMaked(cross platform make),构建程序必需的一个跨平台的构建工具。官方地址:http://www.cmake.org/

2)一个好的make工具,MySQL官方推荐使用GNU make3.75,GNUmake下载地址:http://www.gun.org/software/make/

3)ANSI C++编译器,GCC 4.2.1及以上版本

4)Perl,运行test版本所必需的。

5)rpm包管理器,rpmbuild工具

输入如下命令:

rpmbuild --rebuild --clean MySQL-5.7.20-1.linux2.6.src.rpm,编译完成后会形成一个rpm包,然后按照rpm包的安装方法就可以了。

初级用户,不建议使用源码包进行安装。

2.5 专家解惑

  计算机技术具有很强的操作性,MySQL的安装和配置是一件非常简单的事,但是在操作过程中也可能出现问题,多实践,多总结。

  在安装MySQL5.7软件安装包之前,用户需要确保系统中已经安装了.Net Framework3.5和.Net Framework4.0,如何缺少,将不能正常安装。

2.6 经典习题

1)下载并安装MySQL

2)使用配置向导配置MySQL为系统服务,在系统服务对话框中,手动启动或关闭MySQL服务

3)使用net命令启动或者关闭MySQL服务

4)使用免安装的软件包安装MySQL

第3章 数据库的基本操作

  MySQL安装好之后,首先要“创建数据库实例”,这是使用MySQL各种功能的前提。

3.1 创建数据库

  MySQL安装好之后,将会在data目录之下自动创建几个必须的数据库,可使用SHOW DATABASES;语句来查看。

1)mysql是必须的,它描述用户访问权限;

2)用户经常用test数据库实例做测试工作;

3)创建数据库是在系统磁盘上划分一块区域,用于数据的存储和管理;

MySQL中创建数据库的基本SQL语法格式为:

CREATE DATABASE database_name;

【例3.1】创建测试数据库 test_db;

CREATE DATABASE test_db;

【例3.2】查看创建好的数据库test_db的定义,如下:

SHOW CREATE DATABASE test_db\G;
[root@iZ2ze3eaa380cnnuepvyrwZ ~]# mysql -uroot  -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.7.13 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec) mysql> create database test_db;
Query OK, 1 row affected (0.15 sec) mysql> show create database test_db;
+----------+--------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.03 sec) mysql> show create database test_db\G;
*************************** 1. row ***************************
Database: test_db
Create Database: CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec) ERROR:
No query specified mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_db |
+--------------------+
5 rows in set (0.00 sec) mysql>

3.2 删除数据库

  删除数据库是将已存在的数据库从磁盘空间上清除,清除之后,数据库实例中的所有数据也将一同被删除。

1、MySQL中删除数据的基本语法格式为:

DROP DATABASE database_name(数据库实例名);如果不存在,则报错!

【例3.3】删除测试数据库test_db,输入语句如下:

DORP DATABASE test_db;
mysql> drop database test_db;
Query OK, 0 rows affected (0.01 sec) mysql> show create database test_db\G;
ERROR 1049 (42000): Unknown database 'test_db'
ERROR:
No query specified mysql> show create database test_db;
ERROR 1049 (42000): Unknown database 'test_db'
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec) mysql>

小结:

1、使用DROP DATABASE命令时要非常谨慎,在执行该命令时,MySQL不会给出任何提示确认信息,DROP DATABASE 声明删除数据库实例后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。

3.3 数据库存储引擎

  数据库存储引擎是数据库底层软件的组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。

  不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,可以获得特定的功能。MySQL数据库的核心就是存储引擎。

  可以通过SHOW ENGINES语句查看系统所支持的引擎类型,结果如下:

mysql> SHOW ENGINES\G;
*************************** 1. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
9 rows in set (0.00 sec) ERROR:
No query specified mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec) mysql>

其中,YES表示可以使用;NO表示不可以;DEFAULT表示引擎为当前默认;

3.3.1 MySQL存储引擎简介

3.3.2 InnoDB存储引擎

3.3.3 MyISAM存储引擎

3.3.4 MEMORY存储引擎

3.3.5 存储引擎的选择

3.4 综合案例——数据库的创建和删除

3.5 专家解惑

3.6 经典习题

第4章 数据表的基本操作

4.1 创建数据表

4.1.1 创建表的语法形式

4.1.2 使用主键约束

4.1.3 使用外键约束

4.1.4 使用非空约束

4.1.5 使用唯一性约束

4.1.6 使用默认约束

4.1.7 设置表的属性值自动增加

4.2 查看数据表结构

4.2.1 查看表基本结构语句DESCRIBE

4.2.2 查看表的详细结构语句SHOW CREATE TABLE

4.3 修改数据表

4.3.1 修改表名

4.3.2 修改字段的数据类型

4.3.3 修改字段名

4.3.4 添加字段

4.3.5 删除字段

4.3.6 修改字段的排列位置

4.3.7 更改表的存储引擎

4.3.8 删除表的外键约束

4.4 删除数据表

4.4.1 删除没有被关联的表

4.4.4 删除被其他表关联的主表

4.5 综合案例——数据表的基本操作

4.6 转接解惑

4.7 经典习题

第5章 数据类型和运算符

5.1 MySQL数据类型介绍

5.1.1 整数类型

5.1.2 浮点数类型和定点数类型

5.1.3 日期与时间类型

5.1.4 文本字符串类型

5.1.5 二进制字符串类型

5.2 如何选择数据类型

5.3 常见运算符介绍

5.3.1 运算符概述

5.3.2 算术运算符

5.3.3 比较运算符

5.3.4 逻辑运算符

5.3.5 位运算符

5.3.6 运算符的优先级

5.4 综合案例——运算符的使用

5.5 专家解惑

5.6 经典习题

第6章 MySQL函数

6.1 MySQL函数简介

6.2 数学函数

6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()

6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)

6.2.3 获取整数的函数CEIL(x)、CEILNG(x)和FLOOR(x)

6.2.4 获取随机数的函数RAND()和RAND(x)

6.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

6.2.6 符号函数SIGN(x)

6.2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)

6.2.8 对数运算函数LOG(x)和LOG10(x)

6.2.9 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)

6.2.10 正弦函数SIN(x)和反正弦函数ASIN(x)

6.2.11 余弦函数COS(x)和反余弦函数ACOS(x)

6.2.12 正切函数、反正切函数和余切函数

6.3 字符串函数

6.3.1 计算字符串字符数的函数和字符串长度的函数

6.3.2 合并字符串函数CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...)

6.3.3 替换字符串的函数INSERT(s1,x,len,s2)

6.3.4 字母大小写转换函数

6.3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

6.3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

6.3.7删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

6.3.8 删除指定字符串的函数TRIM(s1 FROM s)

6.3.9 重复生成字符串的函数REPEAT(s,n)

6.3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

6.3.11 比较字符串大小的函数STRCMP(s1,s2)

6.3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)

6.3.13 匹配子串开始位置的函数

6.3.14 字符串逆序的函数REVERSE(s)

6.3.15 返回指定位置的字符串函数

6.3.16 返回指定字符串位置的函数FIELD(s,s1,s2,...)

6.3.17 返回子串位置的函数FIND_IN_SET(s1,s2)

6.3.18 选取字符串的函数MAKE_SET(x,s1,s2,...)

6.4 日期和时间函数

6.4.1 获取当前日期的函数和获取当前时间的函数

6.4.2 获取当前日期和时间的函数

6.4.3 UNIX时间戳函数

6.4.4 返回UTC日期的函数和返回UTC时间的函数

6.4.5 获取月份的函数MONTH(date)和MONTHNAME(date)

6.4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

6.4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)

6.4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)

6.4.9 获取年份、季度、小时、分钟和秒钟的函数

6.4.10 获取日期的指定值的函数EXTRACT(type FROM date)

6.4.11 时间和秒钟转换的函数

6.4.12 计算日期和时间的函数

6.4.13 将日期和时间格式化的函数

6.5 条件判断函数

6.5.1 IF(expr,v1,v2)函数

6.5.2 IFNULL(v1,v2)

6.5.3 CASE函数

6.6 系统信息函数

6.6.1 获取MySQL版本号、连接数和数据库名的函数

6.6.2 获取用户数的函数

6.6.3 获取字符串的字符集和排序方式的函数

6.6.4 获取最后一个自动生成的ID值的函数

6.7 加/解密函数

6.7.1 加密函数PASSWORD(str)

6.7.2 加密函数MD5(str)

6.7.3 加密函数ENCODE(str,pswd_str)

6.7.4 解密函数DECODE(crypt_str,pswd_str)

6.8 其他函数

6.8.1 格式化函数FORMAT(x,n)

6.8.2 不同进制的数字进行转换的函数

6.8.3 IP地址与数字相互转换的函数

6.8.4 加锁函数和解锁函数

6.8.5 重复执行指定操作的函数

6.8.6 改变字符集的函数

6.8.7 改变数据类型的函数

6.9 综合案例——MySQL函数的使用

6.10 专家解惑

6.11 经典习题

第7章 查询数据

7.1 基本查询语句

7.2 单表查询

7.2.1 查询所有字段

7.2.2 查询指定字段

7.2.3 查询指定记录

7.2.4 带IN关键字的查询

7.2.5 带BETWEEN AND的范围查询

7.2.6 带LIKE的字符匹配查询

7.2.7 查询空值

7.2.8 带AND的多条件查询

7.2.9 带OR的多条件查询

7.2.10 查询结果不重复

7.2.11 对查询结果排序

7.2.12 分组查询

7.2.13 使用LIMIT限制查询结果的数量

7.3 使用聚合函数查询

7.3.1 COUNT()函数

7.3.2 SUM()函数

7.3.3 AVG()函数

7.3.4 MAX()函数

7.3.5 MIN()函数

7.4 连接查询

7.4.1 内连接查询

7.4.2 外连接查询

7.4.3 复合条件连接查询

7.5 子查询

7.5.1 带ANY、SOME关键字的查询

7.5.2 带ALL关键字的查询

7.5.3 带EXISTS关键字的查询

7.5.4 带IN关键字的查询

7.5.6 带比较运算符的子查询

7.6 合并查询结果

7.7 为表和字段取别名

7.7.1 为表取别名

7.7.2 为字段取别名

7.8 使用正则表达式查询

7.8.1 查询以特定字符或字符串开头的记录

7.8.2 查询以特定字符串或字符串结尾的记录

7.8.3 用符号“.”来替代字符串中的任意一个字符

7.8.4 使用“*”和“+”来匹配多个字符

7.8.5 匹配指定字符串

7.8.6 匹配指定字符串的任意一个

7.8.7 匹配指定字符串以外的字符

7.8.8 使用{n,}或者{n,m}来指定字符串连续出现的次数

7.9 综合案例——数据表查询操作

7.10 专家解惑

7.11 经典习题

第8章 插入、更新与删除数据

8.1 插入数据

8.1.1 为表的所有字段插入数据

8.1.2 为表的指定字段插入数据

8.1.3 同时插入多条记录

8.1.4 将查询结果插入到表中

8.2 更新数据

8.3 删除数据

8.4 综合案例——记录的插入、更新和删除

8.5 专家解惑

8.6 经典习题

第9章 索引

9.1 索引简介

9.1.1 索引的含义和特点

9.1.2 索引的分类

9.1.3 索引的设计原则

9.2 创建索引

9.2.1 创建表的时候创建索引

9.2.2 在已经存在的表上创建索引

9.3 删除索引

9.4 综合案例——创建索引

9.5 专家解惑

9.6 经典习题

第10章 存储过程和函数

10.1 创建存储过程和函数

10.1.1 创建存储过程

10.1.2 创建存储函数

10.1.3 变量的使用

10.1.4 定义条件和处理程序

10.1.5 光标的使用

10.1.6 流程控制的使用

10.2 调用存储过程和函数

10.2.1 调用存储过程

10.2.2 调用存储函数

10.3 查看存储过程和函数

10.3.1 使用SHOW STATUS语句查看存储过程和函数的状态

10.3.2 使用SHOW CREATE语句查看存储过程和函数的定义

10.3.3 从information_schema.Routines 表中查看存储过程和函数的信息

10.4 修改存储过程和函数

10.5 删除存储过程和函数

10.6 综合案例——创建存储过程和函数

10.7 专家解惑

10.8 经典习题

第11章 视图

11.1 视图概述

11.1.1 视图的含义

11.1.2 视图的作用

11.2 创建视图

11.2.1 创建视图的语法形式

11.2.2 在表单上创建视图

11.2.3 在多表上创建视图

11.3 查看视图

11.3.1 使用DESCRIBE语句查看视图基本信息

11.3.2 使用SHOW TABLE STATUS语句查看视图基本信息

11.3.3 使用SHOW CREATE VIEW语句查看视图详细信息

11.3.4 在views表中查看视图详细信息

11.4 修改视图

11.4.1 使用CREATE OR REPLACE VIEW语句修改视图

11.4.2 使用ALTER语句修改视图

11.5 更新视图

11.6 删除视图

11.7 综合案例——视图应用

11.8 专家解惑

11.9 经典习题

第12章 MySQL触发器

12.1 创建触发器

12.1.1 创建只有一个执行语句的触发器

12.1.2 创建有多个执行语句的触发器

12.2 查看触发器

12.2.1 SHOW TRIGGERS语句查看触发器信息

12.2.2 在triggers表中查看触发器信息

12.3 触发器的作用

12.4 删除触发器

12.5 综合案例——触发器的作用

12.6 专家解惑

12.7 经典习题

第13章 MySQL用户管理

13.1 权限表

13.1.1 user表

13.1.2 db表和host表

13.1.3 tables_priv表和columns_priv表

13.1.4 procs_priv表

13.2 账户管理

13.2.1 登录和退出MySQL服务器

13.2.2 新建普通用户

13.2.3 删除普通用户

13.2.4 root用户修改自己的密码

13.2.5 root用户修改普通用户的密码

13.2.6 普通用户修改密码

13.2.7 root用户密码丢失的解决办法

13.3 权限管理

13.3.1 MySQL的各种权限

13.3.2 授权

13.3.3 收回权限

13.3.4 查看权限

13.4 访问控制

13.4.1 连接核实阶段

13.4.2 请求核实阶段

13.5 综合案例——综合管理用户权限

13.6 专家解惑

13.7 经典习题

第14章 数据备份与恢复

14.1 数据备份

14.1.1 使用MySQLdump命令备份

14.1.2 直接复制整个数据库目录

14.1.3 使用MySQLhotcopy工具快速备份

14.2 数据恢复

14.2.1 使用MySQL命令恢复

14.2.2 直接复制到数据库目录

14.2.3 MySQLhotcopy快速恢复

14.3 数据库迁移

14.3.1 相同版本的MySQL数据库之间的迁移

14.3.2 不同版本的MySQL数据库之间的迁移

14.3.3 不同数据库之间的迁移

14.4 表的导出和导入

14.4.1 使用SELECT...INT OUTFILE导出文本文件

14.4.2 使用MySQLdump命令导出文本文件

14.4.3 使用MySQL命令导出文本文件

14.4.4 使用LOAD DATA INFILE方式导入文本文件

14.4.5 使用MySQLimport命令导入文本文件

14.5 综合案例——数据备份与恢复

14.6 专家解惑

14.7 经典习题

第15章 MySQL日志

15.1 日志简介

15.2 二进制日志

15.2.1 启动和设置二进制日志

15.2.2 查看二进制日志

15.2.3 删除二进制日志

15.2.4 使用二进制日志恢复数据库

15.2.5 暂时停止二进制日志功能

15.3 错误日志

15.3.1 启动和设置错误日志

15.3.2 查看错误日志

15.3.3 删除错误日志

15.4 通用查询日志

15.4.1 启动和设置通用查询日志

15.4.2 查看通用查询日志

15.4.3 删除通用查询日志

15.5 慢查询日志

15.5.1 启动和设置慢查询日志

15.5.2 查看慢查询日志

15.5.3 删除慢查询日志

15.6 综合案例——MySQL日志综合管理

15.7 专家解惑

15.8 经典习题

第16章 性能优化

16.1 优化简介

16.2 优化查询

16.2.1 分析查询语句

16.2.2 索引对查询速度的影响

16.2.3 使用索引查询

16.2.4 优化子查询

16.3 优化数据库结构

16.3.1 将字段很多的表分解成多个表

16.3.2 增加中间表

16.3.3 增加冗余字段

16.3.4 优化插入记录的速度

16.3.5 分析表、检查表和优化表

16.4 优化MySQL服务器

16.4.1 优化服务器硬件

16.4.2 优化MySQL的参数

16.5 综合案例——全面优化MySQL服务器

16.6 专家解惑

16.7 经典习题

第17章 MySQL Replication

17.1 MySQL Replication概述

17.2 Windows环境下的MySQL主从复制

17.2.1 复制前的准备工作

17.2.2 Windows环境下实现主从复制

17.2.3 Windows环境下主从复制测试

17.3 Linux环境下的MySQL复制

17.3.1 下载并安装MySQL5.7

17.3.2 单击主从复制前的准备工作

17.3.3 MySQLd_multi实现单机主从复制

17.3.4 不同服务器之间实现主从复制

17.3.5 MySQL主从复制启动选项

17.3.6 指定复制的数据库或者表

17.4 查看Slave的复制进度

17.5 日常管理维护

17.5.1 了解服务器的状态

17.5.2 服务器复制出错的原因

17.6 切换主从服务器

17.7 专家解惑

17.8 经典习题

第18章 MySQL Workbench的使用

18.1 MySQL Workbench的概述

18.1.1 MySQL Workbench的概述

18.1.2 MySQL Workbench的优势

18.1.3 MySQL Workbench的安装

18.2 SQL Development的基本操作

18.2.1 创建数据库连接

18.2.2 创建新的数据库

18.2.3 创建和删除新的数据表

18.2.4 添加、修改表记录

18.2.5 查询表记录

18.2.6 修改表结构

18.3 Data Modeling的基本操作

18.3.1 建立ER模型

18.3.2 导入ER模型

18.4 Server Administration的基本操作

18.4.1 管理MySQL用户

18.4.2 备份MySQL数据库

18.4.3 恢复MySQL数据库

18.5 专家解惑

18.6 经典习题

第19章 MySQL Cluster

19.1 MySQL Cluster概述

19.1.1 MySQL Cluster基本概念

19.1.2 理解MySQL Cluster节点

19.2 Linux环境下MySQL Cluster安装和配置

19.2.1 安装MySQL Cluster软件

19.2.2 管理节点配置步骤

19.2.3 配置SQL节点和数据节点

19.3 管理MySQL Cluster

19.3.1 Cluster的启动

19.3.2 Cluster的测试

19.3.3 Cluster的关闭

19.4 维护MySQL Cluster

19.4.1 Cluster的日志管理

19.4.2 Cluster的联机备份

19.4.3 Cluster的数据恢复

19.5 Windows操作系统中配置Cluster

19.6 专家解惑

19.7 经典习题

第20章 MySQL管理利器——MySQL Utilities

20.1 MySQL Utilities概述

20.2 安装与配置

20.2.1 下载与安装MySQL Utilities

20.2.2 MySQL Utilities连接数据库

20.3 管理与维护

20.3.1 使用mysqldbcompare比较数据

20.3.2 使用mysqldbcopy复制数据

20.3.3 使用mysqldbexport导出数据

20.3.4 使用mysqldbimport导入数据

20.3.5 使用mysqldiff比较对象的定义

20.4 专家解惑

20.5 经典习题

第21章 读写分离利器——MySQL Proxy

21.1 概述

21.2 安装与配置

21.2.1 下载与安装MySQL Proxy

21.2.2 配置MySQL Proxy参数

21.2.3 配置Path变量

21.3 使用MySQL Proxy实现读写分离

21.3 专家解惑

21.4 经典习题

第22章 PHP操作MySQL数据库

22.1 PHP访问MySQL数据的一般步骤

22.2 连接数据库前的准备工作

22.3 PHP操作MySQL数据库的函数

22.3.1 通过MySQLi类库访问MySQL数据库

22.3.2 使用MySQLi_connect()函数连接MySQL服务器

22.3.3 使用MySQLi_select_db()函数选择数据库文件

22.3.4 使用MySQLi_query()函数执行SQL语句

22.3.5 使用MySQLi_fetch_assoc()函数从数组结果集中获取信息

22.3.6 使用MySQLi_fetch_object()函数从结果中获取一行作为对象

22.3.7 使用MySQLi_num_rows()函数获取查询结果集中的记录数

22.3.8 使用MySQLi_free_result()函数释放资源

22.3.9 使用MySQLi_close()函数关闭连接

22.4 综合案例1——使用insert语句动态添加用户信息

22.5 综合案例2——使用select语句查询数据信息

22.6 专家解惑

22.7 经典习题

第23章 新闻发布系统数据库设计

23.1 系统概述

23.2 系统功能

23.3 数据库设计和实现

23.3.1 设计表

23.3.2 设计索引

23.3.3 设计视图

23.3.4 设计触发器

23.4 案例总结

第24章 论坛管理系统数据库设计

24.1 系统概述

24.2 系统功能

24.3 数据库设计和实现

24.3.1 设计方案图表

24.3.2 设计表

24.3.3 设计索引

24.3.4 设计视图

24.3.5 设计触发器

24.4 案例总结

MySQL5.7从入门精通视频教学版) 刘增杰 编著的相关教程结束。

《MySQL5.7从入门到精通 (视频教学版) 刘增杰 编著.doc》

下载本文的Word格式文档,以方便收藏与打印。