Mac环境下MySQL的安装和基本命令的使用
MySQL
是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL
所使用的SQL
语言是用于访问数据库的最常用标准化语言。- 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了
MySQL
作为网站数据库。 MySQL
是一个多用户、多线程的关系型数据库管理系统。 工作模式是基于客户机/服务器结构。目前它可以支持几乎所有的操作系统- 简单的来说,
MySQL
是一个开放的、快速的、多线程的、多用户的SQL数据库服务器
MySQL的安装
工欲善其事必先利其器, 要研究MySQL
我们首先要安装MySQL
, 这里只介绍Mac
环境下的安装和数据库操作
下载MySQL
直接打开MySQL官网下载页, 选择mac OS
系统后, 选择DMG
格式下载软件
接着, 会跳转到如下页面, 你只需要选择不登录,直接下载即可(当然也可以选择注册并登录)
- 下载好后, 按照
dmg
里面的pkg
文件一路安装即可, 但是需要注意的是- 除了倒数第二步之外按照默认一路安装即可
- 倒数第二步会有一个设置管理员密码的过程, 设置好后, 一定要牢记该密码, 后期链接数据库会需要
- 最后打开系统偏好设置, 最后会有一个
MySQL
的图标 - 打开
MySQL
会看到默认是开启的(安装的时候按照默认设置安装的情况下)
到这里`MySQL`就已经基本安装完成了, 不需要再修改什么配置了
安装Navicat for MySQL
Navicat for MySQL
是一套专为MySQL
设计的高性能数据库管理及开发工具- 它可以用于任何版本
3.21
或以上的MySQL
数据库服务器 - 支持大部份
MySQL
最新版本的功能,包括触发器、存储过程、函数、事件、视图、管理用户等 - 正版下载地址, 不过正版只有14天的试用时间
- 安装后, 按照下图完善配置即可, 其中连接名随意, 密码即为安装
MySQL
环境的时候设置的密码
MySQL
的基本命令
基本命令
- 首先要打开终端(
Windows
中是cmd
), 以下命令均是在终端运行 - 启动/停止服务只有在
Windows
系统中才需要运行,Mac
环境下不需要
启动/停止服务
1 | // 启动服务 |
连接数据
1 | 格式:mysql -u 用户名 -p |
远程连接
- 链接他人或其他服务器的数据库
- 格式:
mysql -h ip地址 -u 用户名 -p
- 输入对方
mysql
密码
- 格式:
其他命令
需要注意的是:
以下所有命令中如过结尾有分号(;
)的一定不能省略, 否则不是一条完整的命令, 系统会提示你继续输入命令
1 | // 查看版本(连接后可以执行) |
数据库操作
1 | // 1、创建数据库 |
创建完成记得刷新Navicat for MySQL
表操作
1 | // 1、查看当前数据库中所有表 |
数据操作
1 | 1、增 |
查询数据
基本语法
- 格式:
select * from 表名;
- 说明:
from
关键字后面是表名,表示数据来源于这张表select
后面写表中的列名,如果是*表示在结果集中显示表中的所有列- 在
select
后面的列名部分,可以使用as
为列名起别名,这个别名显示在结果集中 - 如果要查询多个列,之间使用逗号分隔
- 示例:
1 | //查询所有数据 |
消除重复行
- 在
select
后面列前面使用distinct
可以消除重复的行 - 示例:
1 | select gender from student; |
条件查询
1 | // 1、语法 |
聚合操作
- 为了快速等到统计数据,提供了5个聚合函数
count(*)
: 表示计算总行数,括号中可以写*和列名max(列)
: 表示求此列的最大值min(列)
: 表示求此列的最小值sum(列)
: 表示求此列的和avg(列)
: 表示求此列的平均值
1 | //需求:查询学生总数 |
分组
- 按照字段分组,表示此字段相同的数据会被放到一个集合中。
- 分组后,只能查询出相同的数据列,对于有差异的数据列无法显示在结果集中
- 可以对分组后的数据进行统计,做聚合运算
- 语法:
select 列1,列2,聚合…… from 表名 group by 列1,列2,列3,……;
- 需求:查询男女生总数
- 示例:
1 | select gender,count(*) from student group by gender; |
分组后的数据筛选:
1 | select 列1,列2,聚合…… from 表名 group by 列1,列2,列3,…… having 列1,……聚合……; |
`where`与`having`的区别:
where
是对from
后面指定的表进行筛选,属于对原始数据的筛选having
是对group by
的结果进行筛选
排序
- 语法:
select * from 表名 order by 列1 asc|desc,列2 asc|desc , ……;
- 说明:
- 将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序
- 默认按照从小到大的顺序排序
asc
: 升序desc
: 降序
1 | //需求:将没有被删除的数据按年龄排序 |
分页
- 语法:
select * from 表名 limit start,count;
- 说明:
start
索引从0开始 - 示例:
1 | select * from student limit 0,3; |
关联
1 | // 建表语句: |
至此, `MySQL`中一些常用的命令行也基本介绍完了
下面看一些MySQL
和Python
是如何进行交互的
MySQL
和Python
的交互
Python
要对MySQL
数据库进行操作, 需要引入pymysql
模块pymsql
是Python
中操作MySQL
的模块, 并且pymysql
支持python3.x
版本- 首先要先安装
pymysql
, 终端执行一下语句
1 | pip3 install pymysql |
创建数据库连接
1 | # 链接数据库 |
创建表
1 | import pymysql |
在表中插入数据
1 |
|
修改/更新/删除数据
1 | import pymysql |
查询数据
fetchone
: 获取下一个查询结果集,结果集是一个对象fetchall
: 接收全部的返回的行rowcount
: 是一个只读属性,返回execute()
方法影响的行数
1 | import pymysql |
至此, `Python`和`MySQL`交互的最基本最简单的使用也介绍完了, 如有不足之处还望告知