MySQL从入门到剖析第一章

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>
第二步和第三步会循环执行
第四步会循环执行,多个条件的执行顺序是从左往右的。
分组之后才会执行SELECT9步都是SQL92标准语法。limit是MySQL的独有语法。

流程分析:

FROM 笛卡尔积 VT1表
ON 按条件过滤 VT2
LEFT JOIN 保留主表记录 VT3
WHERE 过滤vt3中记录 VT4
GROUP BY 对VT4的记录进行分组 VT5
HAVING 对VT5中的记录进行过滤 VT6
SELECT 对VT6中的记录 选取指定的列 VT7
ORDER BY 对VT7的记录进行排序 VT8
SELECT 对VT6中的记录选取指定的列 VT9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值