前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文入门MySQL数据库

一文入门MySQL数据库

原创
作者头像
皮大大
修改2020-10-29 10:34:51
6550
修改2020-10-29 10:34:51
举报

一文入门MySQL数据库

本文中介绍的结构型数据库MySQL的基本知识,能够让你快速入门MySQL,具体内容包含:

  • 相关术语
  • 数据类型
  • 安装MySQL(以Ubuntu为例)
  • 4种语言
  • 学习资料
  • MySQL内置函数

<!--MORE-->

相关术语

  • 数据库database:以某种有组织的方式存储的数据集合。通常是一个文件或者一组文件。
  • table:结构化的文件,用来存储某种特定类型的数据。存储在表中的数据是同一种类型的数据或者清单。表名具有唯一性,表的特性:
代码语言:txt
复制
- 数据在表中如何存储
- 存储什么类型的数据
- 数据如何分解
- 各个部分的信息如何命名列
代码语言:txt
复制
- 任意两行都不具有相同的主键值
- 每一行必须有一个主键值(主键列不允许NULL值)
- 主键的值不允许修改或者更新
- 主键值不能重用

数据类型

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

  • 整数类型
  • 小数类型
  • 字符串类型
  • 日期时间类型
整数类型
小数类型
  • float(m,d):单精度,8位精度;m表示总个数,d表示小数位
  • double(m,d):双精度,16位精度;m表示总个数,d表示小数位
  • decimal(m,d):定点数,m表示总长度,d表示小数位
字符串类型

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

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

类型

大小

格式

用途

DATE

3

YYYY-MM-DD

日期值

TIME

3

HH:MM:SS

时间值或者持续时间

YEAR

1

YYYY

年份值

DATETIME

8

YYYYMMDD

混合日期和时间值

TIMESTAMP

8

HHMMSS

混合日期和时间值,时间戳

字段名修饰

常见的字段修饰语:

修饰语

作用

unsigned

无符号

auto_increment

自增

default

默认值

comment

字段解释说明

not null

非空

null

unique

唯一索引

index

普通索引

primary key

主键,必须指定为auto_increment常见运算符常用的运算符有:符号含义=赋值或者判断!=或者<>不等于<小于>大于<=、>=小于等于或者大于等于OR或AND与BETWEEN…AND…在….和….之间IN、NOT IN在或者不在安装MySQL下面是以Ubuntu18为例安装MySQL数据库。官网下载进入MySQL数据库的官网。里面有各种版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0。其中前三者是应用最广泛的,8.0目前刚出来,属于起步阶段,问题还是很多;而且网上的资源比较少。MySQL5.7社区版本文件下载这里是以安装5.7版本为例选择对应的系统和版本下载DEB文件点击开始安装安装客户端和环境进入到安装包所在的文件目录下,笔者是Downloads下:1sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb 2# 更新软件源3sudo apt-get upgrade安装客户端和环境的具体步骤:1# 安装mysql服务2sudo apt-get install mysql-server3# 安装客户端4sudo apt install mysql-client5# 安装依赖6sudo apt install libmysqlclient-dev7# 检查状态8sudo netstat -tap | grep mysql配置root密码mysql5.7安装完成后普通用户不能进mysql,原因:root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用root权限登录就不用密码,修改root密码和登录验证方式:1$sudo su  # 进入root账户2# mysql   # 输入mysql,进入mysql服务 ;root账户下分隔符是#,普通用户是$34mysql> select user, plugin from mysql.user;5+------------------+-----------------------+6| user             | plugin               |7+------------------+-----------------------+8| root             | auth_socket           |9| mysql.session   | mysql_native_password |10| mysql.sys       | mysql_native_password |11| debian-sys-maint | mysql_native_password |12+------------------+-----------------------+134 rows in set (0.00 sec)14mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root';   # 修改root账户密码15mysql> flush privileges;  # 刷新权限16mysql> exit  # 退出msyql服务17Bye18# exit   # 退出root账户,进入普通账户(第一个星号不是注释)19$ sudo /etc/init.d/mysql restart  # 重启msyql服务20$ mysql -uroot -p   # 进入mysql服务中,接下来输入上面步骤中设置的密码21Enter password: (上面的密码)配置远程登录默认的MySQL服务是只允许本地服务的,但是大部分时候需要远程服务,下面进行配置:1$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  # 进入配置文件,注释掉bind-address = 127.0.0.1

保存退出,进入MySQL服务,执行授权命令:1$sudo -uroot -p2Enter password: (上面的密码)3mysql> grant all on *.* to root@'%' identified by 'renrenren' with grant option;4Query OK, 0 rows affected, 1 warning (0.00 sec)5mysql>flush privileges;6mysql> exit7Bye89$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数据查询语言DDLdata defination language,数据定义语言;作用主要是:创建、删除、修改库表结构。针对库表结构DMLdata manipulation language,数据操作语言;作用主要是:增、删、改表的记录针对表的操作DCLdata control language,数据控制语言;用户创建及授权操作针对数据库的用户DQLdata query language,数据查询语言;查询数据主要是查询功能学习资料首先推荐是一本书《SQL必知必会》,一本非常经典的SQL入门书籍📚一个网站:sqlzoo,是一个非常适合新手和提升SQL的练习网站一门课程:《网易课程-MySQL从入门到精通》菜鸟课程:提供很多MySQL的学习资料MySQL内置函数大全介绍MySQL中常见的内置函数:[

符号

含义

=

赋值或者判断

!=或者<>

不等于

<

小于

大于

<=、>=

小于等于或者大于等于

OR

AND

BETWEEN…AND…

在….和….之间

IN、NOT IN

在或者不在

符号

含义

=

赋值或者判断

!=或者<>

不等于

<

小于

大于

<=、>=

小于等于或者大于等于

OR

AND

BETWEEN…AND…

在….和….之间

IN、NOT IN

在或者不在

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

MySQL5.7**社区版本**

文件下载

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

安装客户端和环境

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

1

sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb

2

更新软件源

3

sudo apt-get upgrade

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

1

安装mysql服务

2

sudo apt-get install mysql-server

3

安装客户端

4

sudo apt install mysql-client

5

安装依赖

6

sudo apt install libmysqlclient-dev

7

检查状态

8

sudo netstat -tap | grep mysql

配置root密码

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

1

$sudo su  # 进入root账户

2

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

3

4

mysql> select user, plugin from mysql.user;

5

+------------------+-----------------------+

6

| user             | plugin               |

7

+------------------+-----------------------+

8

| root             | auth_socket           |

9

| mysql.session   | mysql_native_password |

10

| mysql.sys       | mysql_native_password |

11

| debian-sys-maint | mysql_native_password |

12

+------------------+-----------------------+

13

4 rows in set (0.00 sec)

14

mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root';   # 修改root账户密码

15

mysql> flush privileges;  # 刷新权限

16

mysql> exit # 退出msyql服务

17

Bye

18

exit   # 退出root账户,进入普通账户(第一个星号不是注释)

19

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

20

$ mysql -uroot -p   # 进入mysql服务中,接下来输入上面步骤中设置的密码

21

Enter password: (上面的密码)

配置远程登录

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

1

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

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

1

$sudo -uroot -p

2

Enter password: (上面的密码)

3

mysql> grant all on *.* to root@'%' identified by 'renrenren' with grant option;

4

Query OK, 0 rows affected, 1 warning (0.00 sec)

5

mysql>flush privileges;

6

mysql> exit

7

Bye

8

9

$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
代码语言:txt
复制
- `data query language`,数据查询语言;查询数据
- 主要是`查询`功能

学习资料

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

MySQL内置函数大全

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一文入门MySQL数据库
  • 相关术语
  • 数据类型
  • 字段名修饰
  • 更新软件源
  • 安装mysql服务
  • 安装客户端
  • 安装依赖
  • 检查状态
  • mysql   # 输入mysql,进入mysql服务 ;root账户下分隔符是#,普通用户是$
  • exit   # 退出root账户,进入普通账户(第一个星号不是注释)
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档