↑↑↑关注后"星标"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 日期类型

类型 大小 格式 用途
DATE 3 YYYY-MM-DD 日期值
TIME 3 HH:MM:SS 时间值或者持续时间
YEAR 1 YYYY 年份值
DATETIME 8 YYYYMMDD 混合日期和时间值
TIMESTAMP 8 HHMMSS 混合日期和时间值,时间戳

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中常见的内置函数:

“原创不易,三连

MySQL环境配置和入门讲解!相关推荐

  1. C#环境下GDAL / OGR环境配置与入门

    C#环境下GDAL.OGR环境配置与入门 0.概述 1.环境配置 2.类库介绍 3.代码实践 4. 总结 0.概述 由于需要进行一些Shapefile文件的读取和管理,但是ArcGIS的二次开发工具又 ...

  2. mac mysql 链接_mac上搭建mysql环境配置和Navicat连接mysql

    mac上搭建mysql环境配置 注意:mysql版本要和你的MAC版本保持一致 2.一路傻瓜式点击下一步 此处选择"Use Legacy Password Encryption", ...

  3. Java环境下GDAL / OGR环境配置与入门

    Java环境下GDAL / OGR环境配置与入门 0.概述 1.环境配置 1.1 开发环境下载 1.2 环境变量配置 1.3java工程配置 1.3.1新建Java工程 1.3.2添加GDAL的jar ...

  4. flask mysql环境配置_Flask教程4:数据库

    Flask中的数据库 Flask并不原生支持数据库,而是通过Python包以及Flask数据库插件. 数据库分为关系型数据库和非关系型数据库,这里我们使用关系型数据库.我们使用Flask-SQLAlc ...

  5. Jpa环境配置及入门(增删改查)

    案例:客户的相关操作(增删改查) 1.分析: 1.搭建环境: 创建maven工程,导入相关坐标: 配置使用jpa的核心配置文件: 位置:需要配置到类路径下叫做 META-INF的文件夹下 命名:per ...

  6. 详细程序注解学OpenCL一 环境配置和入门程序

    本专栏是通过注解程序的方法学习OpenCL,我觉得一个一个地去抠原理也不是办法,干脆直接学习程序,然后把相关原理都直接注解到程序语句当中. 原创地址:http://blog.csdn.net/kend ...

  7. 图文解说OpenCV开发一 - 环境配置和入门程序详解

    1 我用的是OpenCV 2.4.3版本,当前最新版本已经比这个新了:安装好的目录结构如下图: OpenCV 2.4.3的安装包可以到我网盘下载: http://pan.baidu.com/s/1kT ...

  8. apache2 php mysql_二、Linux服务器apache2+PHP7+mysql环境配置

    关于网站搭建的基础知识,请见我的另一篇文章 https://www.jianshu.com/p/9c65fcb14e4f 此处不加赘述.本文仅介绍Linux服务器环境的配置. 一.安装包下载与安装 1 ...

  9. java mysql tomcat my_Java、Tomcat 及 MySQL 环境配置

    Java开发环境的配置 首先我们要下载JDK. 到Oracle官网上去下载即可,目前最新版是Java SE 8u25. 开始我很混乱,Java SE 和 JDK是什么关系呢?最后查了一下 Java S ...

最新文章

  1. java用爬虫爬一个页面_使用Java写一个简单爬虫爬取单页面
  2. [node 工具] 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格在线版本之一(server 端)...
  3. 从系统的启动过程分析,为什么我们划分分区的时候 /sbin 、/bin、/lib、/dev不能做为独立的分区?...
  4. 基于Fixed定位的框选功能
  5. 删除计算机插优盘记录,如何彻底清除U盘在PC里的使用记录呢
  6. Boost:基于Boost的发送者和接收者的测试程序
  7. vant组件搜索并选择_借助PARTsolutions 选型助手,轻松快速地找到组件。
  8. 数据类型及其基本操作
  9. CSS3 2D 转换
  10. 使用这些先进的GC技术提高应用程序性能
  11. 用Java解决生产者-消费者问题
  12. Java初学者必知 关于Java字符串问题
  13. 大数据下的精准实时监控系统 | Promethus or Zabbix?
  14. 匈牙利算法与python实现
  15. 低调的大神!他改变了半导体产业!史上唯一两次获得诺贝尔物理奖,却几乎被人遗忘...
  16. 淡雅色系秀丽线条 照常性感十足的鞋履
  17. onedrive登陆以后是白板,我下载了onedrive以后,安装到登陆界面,输入账号,提示:我们的系统中没有 - Microsoft Community...
  18. JavaScript 动画效果
  19. 女人撒娇18计玩转男人心
  20. 绿色物流-智慧仓储监控管理 3D 可视化系统

热门文章

  1. Android通过ksoap2调用.net(c#)的webservice
  2. LevelDb系列之简介
  3. flex--unable to transcode image
  4. silverlight学习之storyboard (动画)
  5. 怎么成为优秀的软件模型设计者?
  6. GPT-3 再更新,新增编辑和插入文本功能,简直不要太好用!
  7. 如何用 Python 将 Excel 表格转成可视化图形?| 原力计划
  8. 五年循环期限已到,我们又要步入“AI寒冬”了吗?
  9. 人工智能写手,好用吗?
  10. 朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)