大家好呀,又跳票了,我已经没脸再找借口了,所以就不解释了哈哈。
直接进入正题。Pandas 学完,Python 的学习就暂时告一段落了。从这节课开始,我们正式进入数据分析的另一利器——MySQL 的学习。
Mysql 的安装在这个课程刚开始的环境安装部分已经讲过了,这里就不再赘述了,没有安装好的童鞋,可以再复习一下之前的内容——环境安装。
这里我们需要再安装一个数据库管理工具——Navicat。这个软件是收费的,不过有 14 天的试用期,足够大家把 Mysql 学完了。
安装好之后,我们就可以开始 Mysql 的学习了。
以下是这节课的主要内容:
1、认识数据库
(1)对比Excel来认识数据库
(2)数据库的构成
(3)市面上主流的数据库管理系统
(4)SQL语言简介
2、MySQL的基本操作
(1)连接到MySQL
(2)MySQL的常用指令
(3)数据库的操作
(4)创建表
3、常用的数据类型
(1)数值型
(2)日期时间型
(3)字符型
(4)其他
4、Navicat 管理工具
(1)连接MySQL:在Navicat中新建⼀个连接
(2)Navicat基本操作
(3)数据库的备份与恢复
一、认识数据库
1、对比Excel来认识数据库
对于之前没接触过数据库的同学来说,这可能是一个比较陌生的概念,但是 Excel 相信大家都很熟悉,我们可以用 Excel 来帮助自己理解数据库。
一个 Excel 文件可以有多张工作表(Sheet),一张工作表中有很多行和列。
相对应的,一个数据库(Database)也可以有多张数据表(Table),一张数据表中也有很多行(Rows)和列(Columns)。
不过不同的是,Excel 最多只能存放 104 万行、1024 列数据,而 MySQL 每个数据库最多可以创建20亿张表,所以 MySQL 通常被企业用来存放规模较大的数据。当然了,MySQL 虽然对每个表中行的数量没有直接限制,但它会受到数据库存储空间的限制。
2、数据库的构成
从上面的对比我们可以看出,数据库由数据表、行和列组成。MySQL 可以存放多个数据库实例,一个数据库实例可以存放多张数据表,一张数据表可以存放多条数据。
3、市面上主流的数据库管理系统
目前,市面上有很多数据库管理系统,,Mysql 由于其开源性和强大的功能,是应用最为广泛的数据库之一,其排名仅次于商用数据库 Oracle。
4、SQL语言简介
SQL(Structured Query Language),即结构化的查询语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
数据分析师最常用的就是:数据查询语言(DQL)、数据操作语言
(DML)、数据定义语言(DDL),也就是众所周知的——增删改查。
二、MySQL 的基本操作
1、连接到MySQL
首先要确保 MySQL 服务正常启动,处于正在运行的状态。(可以百度一下如何启动和关闭 Mysql 服务,就知道怎么查看 Mysql 服务是否正在运行了。)
然后以命令行的方式连接到MySQL:
mysql -u root -p
之后输入密码即可,也可以在 -p
后直接输入密码。
(2)MySQL的常用指令
- 查看所有的数据库:
show databases;
- 使用/进入数据库:
use 数据库名;
- 查看创建的数据库:
show create database 库名;
- 查看数据表结构:
describe/desc 表名;
- 查看数据表详细结构:
show create table 表名;
注意:Mysql 命令结束必须要加分号 ;
(英文分号)!并且命令一般默认用大写,数据库名、表名、字段名等默认用小写。
(3)数据库的操作
语法结构:
CREATE DATABASE 数据库名;
# 或者在工具中创建
例如:创建名为 xuexii 的数据库:
CREATE DATABASE xuexii
查看创建的数据库信息:
SHOW CREATE DATABASE xuexii;
删除数据库(谨慎操作,谢绝删库跑路!):
DROP DATABASE xuexii;
(4)创建表
语法结构
CREATE TABLE 表名 -- 创建的表名不区分大小写,但不能使⽤关键字,如DROP、ALTER等
(
字段1 数据类型 [列级别约束条件] [默认值],
字段2 数据类型 [列级别约束条件] [默认值],
.......,
[表级别约束条件]
)[ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='关于表的注释'];
注:
ENGINE=InnoDB -- 引擎类型(事务处理引擎)
AUTO_INCREMENT=1 -- 每增加⼀行时自动增量
CHARSET=utf8mb4 -- 编码格式
这样看可能不够直观,我们来看一个例子:
-- 主键约束
create table tb_emp1(
id INT PRIMARY KEY,
name VARCHAR(20),
deptId INT,
salary FLOAT
);
注 :PRIMARY KEY:表示主键约束,限制了该列的值都是唯⼀且非空的。
-- 唯⼀性约束
create table tb_dept1(
id INT PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
);
说明:唯⼀性约束要求该列的值都是唯⼀的,允许为空,但只能出现⼀个空值。因此唯⼀性约束的功能是确保⼀列或者几列不出现重复值。⼀个表中可以有多个UNIQUE字段,但只能有⼀个PRIMARY KEY声明,声明为主键的列不允许有空值,而唯⼀性约束的列可以 且只有⼀个空值。
-- 默认约束:用来指定某列的默认值
create table tb_emp2(
id INT PRIMARY KEY,
name VARCHAR(25) not null,
deptId INT default 1000,
salary float
);
说明:如果在插⼊数据时没有指定部⻔编号,则默认都为1000。
-- 属性值⾃动增加
create table tb_emp3(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
deptId INT,
salary FLOAT 36
);
说明:在插⼊记录时,默认的⾃增字段id的值从1开始,每次添加
⼀条新纪录时该值⾃动加1。
INSERT INTO tb_emp3 (name,salary)
values('Tom',2000),('Jack',10000),('Kevin',40);
select * from tb_emp3;
扩展1:查看表基本结构
desc tb_emp3;
扩展2:查看表详细结构语句
show create table tb_emp3;
show create table tb_emp3\G
三、常用的数据类型
注:蓝色高亮为常用数据类型