社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL环境配置和入门讲解!

Datawhale • 4 年前 • 562 次点击  
↑↑↑关注后"星标"Datawhale
每日干货 & 每月组队学习,不错过
 Datawhale干货 
作者:皮钱超,厦门大学,Datawhale原创作者
本文约3000字,建议阅读9分钟
审稿人:杨煜,Datawhale成员,就职于毕马威,从事数据分析工作。
本文中介绍的结构型数据库MySQL的基础知识,能够让你快速入门MySQL,具体内容包含:
  • 相关术语
  • 数据类型
  • 安装MySQL(以Ubuntu为例)
  • 4种语言
  • 学习资料
  • MySQL内置函数

一、相关术语

  • 数据库database:以某种有组织的方式存储的数据集合。通常是一个文件或者一组文件。

  • table:结构化的文件,用来存储某种特定类型的数据。存储在表中的数据是同一种类型的数据或者清单。表名具有唯一性,表的特性:

    • 数据在表中如何存储
    • 存储什么类型的数据
    • 数据如何分解
    • 各个部分的信息如何命名
  • column:表由列组成,列存储表中的某部分的信息。列是表中的字段。表中每个列存储特定的信息,比如商品的表中有:商品的名称、生产日期、产地等。每个列都有相应的数据类型

  • row:表中的数据是按照行存储的,所保存的记录是存储在自己的行内。比如顾客表中,每行存储一个顾客的相关信息。有时候行业称之为记录record

    垂直的列为表列,水平行为表行

  • 主键primary key:一列(或一组列),能够唯一标识表中每一行,比如订单表中的订单ID。主键是用来表示一个特定的行。表中任何一列都是可以作为主键,满足条件:

    • 任意两行都不具有相同的主键值
    • 每一行必须有一个主键值(主键列不允许NULL值)
    • 主键的值不允许修改或者更新
    • 主键值不能重用

二、数据类型

MySQL数据库中主要的数据类型有四种:

  • 整数类型
  • 小数类型
  • 字符串类型
  • 日期时间类型

2.1 整数类型

2.2 小数类型

  • float(m,d):单精度,8位精度;m表示总个数,d表示小数位
  • double(m,d):双精度,16位精度;m表示总个数,d表示小数位
  • decimal(m,d):定点数,m表示总长度,d表示小数位

2.3 字符串类型

用的最多的是charvarchar以及text,其中:

  • char:定长,不够补空格,多了减掉;比如char(10):输入12345678**,后面自动补两个空格。特点:存取速度快,占空间
  • varchar:变长,根据实际自动改变长度。特点:存取速度慢,节省空间
  • text:主要是用于存储文本信息

2.4 日期类型

类型大小格式用途
DATE3YYYY-MM-DD日期值
TIME3HH:MM:SS时间值或者持续时间
YEAR1YYYY年份值
DATETIME8YYYYMMDD混合日期和时间值
TIMESTAMP8HHMMSS混合日期和时间值,时间戳

2.5 字段名修饰

常见的字段修饰语:

修饰语作用
unsigned无符号
auto_increment自增
default默认值
comment字段解释说明
not null非空
null
unique唯一索引
index普通索引
primary key主键,必须指定为auto_increment

2.6 常见运算符

常用的运算符有:

符号含义
=赋值或者判断
!=或者<>不等于
<小于
>大于
<=、>=小于等于或者大于等于
OR
AND
BETWEEN…AND…在….和….之间
IN、NOT IN在或者不在

三、安装MySQL

下面是以Ubuntu18为例安装MySQL数据库。

3.1 官网下载

  • 进入MySQL数据库的官网。里面有各种版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0
  • 其中前三者是应用最广泛的,8.0目前刚出来,属于起步阶段,问题还是很多;而且网上的资源比较少。

MySQL5.7社区版本

文件下载

  1. 这里是以安装5.7版本为例
  1. 选择对应的系统和版本
  1. 下载DEB文件
  1. 点击开始安装

3.2 安装客户端和环境

进入到安装包所在的文件目录下,笔者是Downloads下:

sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb 
# 更新软件源
sudo apt-get upgrade

安装客户端和环境的具体步骤:

# 安装mysql服务
sudo apt-get install mysql-server
# 安装客户端
sudo apt install mysql-client
# 安装依赖
sudo apt install libmysqlclient-dev
# 检查状态
sudo netstat -tap | grep mysql

3.3 配置root密码

mysql5.7安装完成后普通用户不能进mysql,原因:rootplugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用root权限登录就不用密码,修改root密码和登录验证方式:

$sudo su  # 进入root账户
# mysql # 输入mysql,进入mysql服务 ;root账户下分隔符是#,普通用户是$

mysql> select user, plugin from mysql.user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
4 rows in set (0.00 sec)
mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root'; # 修改root账户密码
mysql> flush privileges; # 刷新权限
mysql> exit # 退出msyql服务
Bye
# exit # 退出root账户,进入普通账户(第一个星号不是注释)
$ sudo /etc/init.d/mysql restart # 重启msyql服务
$ mysql -uroot -p # 进入mysql服务中,接下来输入上面步骤中设置的密码
Enter password: (上面的密码)

3.4 配置远程登录

默认的MySQL服务是只允许本地服务的,但是大部分时候需要远程服务,下面进行配置:

$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  # 进入配置文件,注释掉bind-address = 127.0.0.1

保存退出,进入MySQL服务,执行授权命令:

$sudo -uroot -p
Enter password: (上面的密码)
mysql> grant all on *.* to root@'%' identified by 'renrenren' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges;
mysql> exit
Bye

$sudo /etc/init.d/mysql restart # 重启mysql配置服务

四、4种语句

语句分类

结构化查询语言Structured Qurey Language语句必须是以分号结束,且关键词不区分大小写,主要包含四种语句:

  • DDL,data defination language数据定义语言
  • DML,data manipulation language数据操作语言
  • DCL,data control language数据控制语言
  • DQL,data query language数据查询语言

DDL

  • data defination language,数据定义语言;作用主要是:创建、删除、修改库表结构
  • 针对库表结构

DML

  • data manipulation language,数据操作语言;作用主要是:增、删、改表的记录
  • 针对的操作

DCL

  • data control language,数据控制语言;用户创建及授权操作
  • 针对数据库的用户

DQL

  • data query language,数据查询语言;查询数据
  • 主要是查询功能

五、学习资料

  1. 首先推荐是一本书《SQL必知必会》,一本非常经典的SQL入门书籍📚
  2. 一个网站:sqlzoo,是一个非常适合新手和提升SQL的练习网站
  3. 一门课程:《网易课程-MySQL从入门到精通》
  4. 菜鸟课程:提供很多MySQL的学习资料

六、MySQL内置大全

介绍MySQL中常见的内置函数:

“原创不易,三连
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74567
 
562 次点击