MySQL从入门到剖析第一章
目录
主题
MySQL介绍和基本的SQL编写及解析
目标
- 理解关系型数据库的概念
- 掌握MySQL在Linux下的安装及远程连接
- 掌握基本SQL的编写 (略)
- 理解SQL的解析顺序
- 理解多表间关联 (略)
- 掌握多表关联查询及子查询 (略)
!重点:理解SQL的解析顺序
MySQL基础
MySQL概述
MySQL 是最流行的【关系型数据库管理系统】,在WEB应用方面 MySQL是最好的
RDBMS应用软件之一
MySQL安装
操作系统:CentOS 7
MySQL:5.6
MySQL的卸载
查看MySQL软件
rpm -qa|grep mysql
yum repolist all | grep mysql
卸载MySQL
yum remove -y mysql mysql-libs mysql-common #卸载mysql
rm -rf /var/lib/mysql #删除mysql下的数据文件
rm /etc/my.cnf #删除mysql配置文件
yum remove -y mysql-community-release-el6-5.noarch #删除组件
安装MySQL
#下载rpm文件
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm #执行rpm源文件
rpm -ivh mysql-community-release-el6-5.noarch.rpm
#执行安装文件
yum install mysql-community-server
启动MySQL
systemctl start mysqld
设置root用户密码
/usr/bin/mysqladmin -u root password 'root'
#没有密码 有原来的密码则加
/usr/bin/mysqladmin -u root -p '123' password 'root'
登录MySQL
mysql -uroot -proot
配置MySQL
vim /etc/my.cnf
修改内容如下:
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8
MySQL远程连接授权
- 授权命令
grant 权限 on 数据库对象 to 用户
- 示例
授予root用户对所有数据库对象的全部操作权限:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;--刷新权限
- 命令说明:
- ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。
- . :表示所有库中的所有表
- ‘root’@’%’ : myuser是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。 IDENTIFIED BY ‘mypassword’ :mypassword是数据库的密码。
关闭linux的防火墙
systemctl stop firewalld(默认)
systemctl disable firewalld.service(设置开启不启动)
MySQL语句
DDL语句
DML语句
DQL语句
SQL解析顺序
示例语句:
SELECT DISTINCT
< select_list >
FROM
< left_table > < join_type >
JOIN < right_table > ON < join_condition >
WHERE
< where_condition >
GROUP BY
< group_by_list >
HAVING
< having_condition >
ORDER BY
< order_by_condition >
LIMIT < limit_number >
执行顺序是:
-- 行过滤
1 FROM <left_table>
2 ON <join_condition>
3 <join_type> JOIN <right_table> 4 WHERE <where_condition>
5 GROUP BY <group_by_list>
6 HAVING <having_condition> --列过滤
7 SELECT
8 DISTINCT <select_list>
--排序
9 ORDER BY <order_by_condition> -- MySQL附加
10 LIMIT <limit_number>
第二步和第三步会循环执行
第四步会循环执行,多个条件的执行顺序是从左往右的。
分组之后才会执行SELECT
前9步都是SQL92标准语法。limit是MySQL的独有语法。
流程分析: