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


    第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_dbG;
    [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_dbG;
    *************************** 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_dbG;
    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 ENGINESG;
    *************************** 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 案例总结

     

  • 相关阅读:
    实验5 Spark SQL 编程初级实践
    豆瓣基础架构
    淘宝数据魔方技术架构解析
    质量属性的六个常见属性场景--淘宝网
    Win10家庭版WindowsUpdate属性为灰色
    豆瓣的基础架构
    京东618实践:一元抢宝系统的数据库架构优化
    FunData — 电竞大数据系统架构演进
    Ubuntu14.0使用gparted调整分区大小
    二阶段开发冲刺一
  • 原文地址:https://www.cnblogs.com/tqtl911/p/8939136.html
Copyright © 2020-2023  润新知