MySQLFrom: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 -pEnter 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> exitBye

$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入门书籍

    mysql中日期相减_MySQL环境配置和10分钟快速入门相关推荐

    1. mysql中日期相减_解放双手!用这3个日期函数解决入职、工龄等天数的计算

      人事部门员工的入职天数.财务部门合同的到期剩余天数等等,可以通过Excel表格来实现自动计算功能. 今天小编分享三个与日期有关的函数 一.EDATE函数 很多公司新员工入职会有3个月试用期,根据入职日 ...

    2. mysql中日期相减_非凡教育教你excel怎么计算两个日期天数差和时间差

      商务办公培训老师在本文中主要是介绍如何在excel中计算日期和时间,包括两个日期之间的天数.时间之间的差和显示样式. 首先,计算两个日期之间的天数.在excel中,两个日期直接相减就可以得到两个日期间 ...

    3. mysql中日期相减_Excel教程:Excel日期问题的小妙招

      通知:安卓APP以发布课程可以缓存下载和倍速看 IOS系统(内测中,请公众号左下角学习) 1.怎么快速输入当前日期? 函数: 输入公式:=TODAY() TODAY函数:返回日期格式的当前日期. 搜狗 ...

    4. mysql中日期相减_Excel日期和时间运算

      对于Excel的日期和时间运算一般人都很头疼,文章的开始我先给大家说个真理吧,遇到这种问题,不管三七二十一,直接暴力相加或相减,然后把运算结果设置成日期或时间格式,结果也许就有了. 下边我把日期和时间 ...

    5. mysql中日期相减_如何使用MySQL数据库

      如何使用MySQL数据库 前言:前面我们已经了解了如何搭建MySQL数据库,那么接下来我们就一起来了解一下,如何使用MySQL数据库. MySQL数据库系统也是一个典型的C/S(客户端/服务器)架构应 ...

    6. sql 数据库语句中日期相减

      sql中两个日期相减 1.相差天数 select trunc(sysdate,'yyyy')-to_date('2009-01-04','yyyy-mm-dd') from dual; 2.相差月数 ...

    7. mysql timediff 时间相减_mysql时间相减的问题

      mysql时间相减的问题(bug) 今天看到宁青同学的一条微博,提到MySQL日期相减的错误结果,以前没有怎么注意,于是测试了一下,发现确实很坑爹,很容易踩雷,于是整理博客提醒一下大家. 先看一下错误 ...

    8. mysql中数据加减_mysql日期加减

      一.MySQL 为日期增加一个时间间隔:date_add(). 1.  示例: set @dt = now(); select date_add(@dt, interval 1 day);       ...

    9. MYSQL中日期加减(前一天、后一天等)以及格式化的函数

      文章目录 序言 日期的加减 date_add和date_sub 日期的格式化 date_format 日期的差值 datediff timestampdiff 序言 最近在写定时任务,查询条件中反复的 ...

    最新文章

    1. DateTime 的24小时和12小时制
    2. Remix中文版 【Solidity IDE】
    3. mysql导出数据 程序_MySQL数据导出与导入程序代码
    4. insightface测试验证集
    5. mongo-connector导入数据到Elasticsearch
    6. jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程
    7. python3 类实例化流程
    8. 您不能不知的ToString()方法
    9. 2018年python工作好找吗-2018年最火的5大Python开源项目,总有适合你的!
    10. android黑名单挂断电话(endCall)反射方法获取
    11. Could not locate zlibwapi.dll. Please make sure it is in your library path
    12. 第3关:球的表面积和体积
    13. centos安装LDAP即配置
    14. ipa 上传卡在鉴权_上传app,一直卡在“正在通过 App Store 进行鉴定”
    15. 腾讯会议APP——新手PRD文档
    16. 华为机试真题 Java 实现【数字涂色】
    17. firefox装在linux_在 Linux 中安装 Firefox
    18. 交换机口不够用能再加一个吗_PoE交换机常见6大问题,一文掌握
    19. Android Studio出现Execution failed for task ‘:app:processDebugMainManifest
    20. python模型检验_PyMC-Bernoulli模型检验

    热门文章

    1. 面试常备题---插入排序
    2. 华为机试HJ45:名字的漂亮度
    3. mysql rrd_将RRD数据库中数据导入MYSQL中
    4. redis linux工具安装,linux 安装redis缓存工具
    5. signature=ad248ee50cb35fb429594f302bf99ddf,动态源路由协议在无线自组网中的研究与应用...
    6. 万能电子狗升级工具_HUD抬头显示,车萝卜再推新品,屏幕全新升级
    7. java后台生成excel_Java后台生成Excel前台下载
    8. 3dmax导出obj序列_Houdini导出序列图片
    9. python实现排列组合公式算法_Python实现卡尔曼滤波算法之贝叶斯滤波
    10. 手工建立mysql的服务_怎样自已手工打开mysql服务