自学数据库-MySQL

  • MySQL 的安装和卸载
    • 基于 linux
      • 使用包管理器安装
      • 运行服务
      • 初始化配置
      • 登录 sql
      • 修改配置文件
    • 基于 windows
      • 使用压缩包安装
      • 使用安装包进行安装
      • 卸载 mysql
  • MySQL 的图形管理工具
  • MySQL 的基本语法
  • MySQL 的基本操作 DDL
    • 对数据库的常用操作
    • 对表结构的常用操作
    • 常用数据类型
      • 数值类型
      • 字符串类型
      • 日期类型
  • MySQL 的基本操作 DML
    • 数据插入
    • 数据删除
    • 数据修改
    • MySQL 的约束
  • MySQL 的基本操作 DQL
    • 基础语法
    • 简单查询
    • 运算符
      • 算术运算符
      • 比较运算符
        • 通配符
      • 逻辑运算符
      • 位运算符
    • 条件查询
    • 排序
    • 聚合查询
    • 分组查询
    • 分页查询
    • 插入查询
    • 多段查询
  • MySQL 的基本操作 DCL
    • 创建用户
    • 删除用户
    • 授权
    • 解除授权
    • 访问控制
  • MySQL 的多表操作
    • 一对一关系
    • 一对多/多对一关系
    • 多对多关系
    • 关系表数据操作
    • 取消多表关系
    • 多表联合查询
      • 交叉连接查询
      • 内连接查询
      • 外连接查询
      • 子查询
      • 表自关联
      • 多张表的写法
  • MySQL 的函数
    • 聚合函数
    • 数学函数
    • 字符串函数
    • 日期函数
    • 控制流函数
    • 窗口函数
  • MySQL 的视图
    • 创建视图
    • 修改视图
    • 更新视图
    • 重命名、删除视图
  • MySQL 的存储过程
  • 触发器
  • 索引
  • 事务
  • MySQL 的日志

MySQL 是一个关系数据库中比较流行的中型数据库。因为是开源免费的(被甲骨文收购后开始收费,但是也有社区版可以免费使用),使用范围很广。MySQL 和大多数关系型数据库一样,使用 SQL 语言。

MySQL官网
MySQL最新版本官方下载

MySQL 的安装和卸载

基于 linux

使用包管理器安装

可以使用 包管理器 来安装,需注意的是,安装包为 mysql-server

安装过程中会有提示选择时区,可以选择 Etc 然后自己选时区,例如中国是 GTM+8 东八区。

安装完成后,可以查看 mysql 版本

mysql --version

运行服务

安装完成后,可以运行 mysql 服务

service mysql start

如果运行服务或尝试重新运行时报错: warning: cannot change directory to /nonexistent: No such file or directory ,可以修改一下程序的主目录:

service mysql stop
usermod -d /var/lib/mysql/ mysql
service mysql start

初始化配置

首先需要执行初始化配置程序

mysql_secure_installation

如果报错:Error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 则是 mysql 服务没有运行成功,需要重新运行。

初始化配置程序执行后,会有提示

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No:

询问是否验证密码插件,它通过检查用户密码的强度来增强 MySQL Server 的安全性,允许用户仅设置强密码。按 Y 接受或按任意键跳过。

再接下来是设置 root 的密码。如果这一部输密码报错:... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters. 则需要手动配置密码。(注:程序会卡到这里一直让输入密码,而密码又无法设置。所以这里需要断开连接重新登录)在 ubuntu 的 shell 里输入 mysql 登录到 mysql 数据库中(因为还没配置密码,所以不需要密码)。

# 查看一下 root 使用的密码插件
select host,user,plugin from mysql.user;
# 发现密码插件是 auth_socket,改成 caching_sha2_password,并设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
# 更新一下
FLUSH PRIVILEGES;
# 再次查看
select host,user,plugin from mysql.user;

更改完成后, \q 退出数据库。重新执行初始化配置程序。这次会提示输入密码,因为刚才手动改了。然后到刚才设置 root 用户密码的步骤,变成了是否变更密码。

接下来就是继续之前的,询问是否删除匿名用户。

然后询问,是否禁止 root 用户从远程登录。

是否删除 test 数据库和对它的访问权限。

最后询问是否刷新授权表,并让初始化后的设定立即生效。

登录 sql

配置完成后,就可以登录了

mysql -uroot -p123456

修改配置文件

mysql 的默认配置文件是 /etc/mysql/mysql.conf.d/mysqld.cnf 修改此文件即可。

基于 windows

MySQL 分为安装包安装和压缩包安装两种方式,区别在于压缩包安装的配置在安装包的安装过程中进行设置。

使用压缩包安装

压缩包直接解压到文件夹里即可。解压完成后,在根目录下建立配置文件 my.ini。

[mysqld]
# 设置访问主机和端口,默认127.0.0.1:3306
bind-address=127.0.0.1
port=3306
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许最大连接数
max_connections=20
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

然后设置环境变量,新建变量名 MYSQL_HOME ,值为解压目录。然后添加 %MYSQL_HOME%\bin 到 path 环境变量里:。

之后可以对 mysql 进行一些操作:

  1. 对 mysql 进行初始化,产生一个临时密码
mysqld --initialize --user=mysql --console
  1. 安装 mysql 服务
mysqld --install
  1. 启动 mysql 服务
net start mysql
  1. 登录 mysql,这里需要使用之前产生的临时密码
mysql -uroot -p
  1. 修改 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';

初始化后会在 mysql 目录下生成一个 data 文件夹,即之后使用的数据库所在。如果临时密码丢失了可以删除此文件夹重新初始化。

使用安装包进行安装

使用安装包安装比较简单,只是一些选项需要选择:

  • Choosing a Setup Type 选择安装类型,使用 developer default 开发者默认
  • Select Products and Features 选择产品和功能,将 mysql server / mysql workbench / mysql notiyier 三项添加到右侧

其他的选择 next 和 是 就可以了,接下来会自动进行安装。当安装完成后会进行配置。

  • Type and Networking 类型和网络,使用 Development Computer 开发者电脑的默认配置即可
  • Authentication Method 身份验证方法使用密码校验身份,然后输入数据库密码
  • Windows Service 可以将mysql添加到服务中,设置服务名称并随系统启动

之后一路下路步,就会开始进行配置了。配置完成后会有连接测试,输入用户名和密码,点击 check ,会显示连接成功。之后没有什么需要配置的了,一路 next 就行。

卸载 mysql

  1. 停止服务
net stop mysql
  1. 卸载服务
SC delete mysql
或使用
mysqld -remove MySQL
  1. 执行卸载程序(使用安装包安装)
  2. 删除安装文件夹下所有文件
  3. 删除隐藏文件夹 C:\ProgramData\MySQL 下所有文件
  4. 删除注册表信息

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL

  1. 删除环境变量

MySQL 的图形管理工具

MySQL 的图形管理工具还是挺多的,推荐使用 Navicat、SQLyog、phpMyAdmin

  • Navicat 是一款使用比较广泛的数据库管理工具,支持多种数据库,也有 MySQL 专用版。缺点在于需要收费。
  • SQLyog 是一个很简单的轻量化的 MySQL 管理工具,对于中文的支持还是比较好的。SQLyog 也是需要注册收费的。
  • phpMyAdmin 是一个基于 web 的 MySQL 管理工具。

MySQL 的基本语法

mysql 的基本语法是

命令 [参数1 [, 参数2…]] 子命令 [参数1 [, 参数2 …]] [子命令 [参数1 [, 参数2]]];

即一个命令附带若干参数,然后接此命令支持的若干子命令。最后会以分号结尾,表示执行此命令。

一条命令是可以分为多行书写的,且不需要连字符,当使用分号 (

自学数据库-MySQL相关推荐

  1. 视频教程-必会神器之MySQL数据库-MySQL

    必会神器之MySQL数据库 精通Python.PHP.MySQL.MongoDB.Redis.HTML.CSS.JavaScript和jQuery等 因为心中一直怀揣教育梦 所以毅然决然从开发一线转到 ...

  2. QuickBI-自建数据库MySQL连接

    今天在学习Quick BI时,发现QuickBI有很多数据源,其中有一个数据源叫做"自建数据库"连接. 其实自己本地搭建数据源不难,用quickBI操作也不难,难得是如何将Quic ...

  3. linux笔记本没有insert,无法在Linux中将UTF8插入数据库MySQL(Can not insert UTF8 to Database MySQL in Linux)...

    无法在Linux中将UTF8插入数据库MySQL(Can not insert UTF8 to Database MySQL in Linux) 当创建表时,我已经设置了charset = utf8. ...

  4. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  5. mysql数据库64免安装_MYSQL数据库mysql 5.7.18 winx64 免安装 配置方法

    <MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法>要点: 本文介绍了MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法,希望对您有用.如果有 ...

  6. mysql 分区指定路径_[数据库]MySQL 指定各分区路径

    [数据库]MySQL 指定各分区路径 0 2016-11-08 18:00:44 介绍 可以针对分区表的每个分区指定各自的存储路径,对于innodb存储引擎的表只能指定数据路径,因为数据和索引是存储在 ...

  7. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  8. 解决向数据库mysql插入double数据小数点不显示问题

    解决向数据库mysql插入double数据小数点不显示问题 参考文章: (1)解决向数据库mysql插入double数据小数点不显示问题 (2)https://www.cnblogs.com/sovi ...

  9. mysql存储的判断if_if在数据库mysql存储中判断

    我们经常会对一个事物作出选择,就如屏幕前的小伙伴们选择继续浏览本篇文章,或者关闭这个界面,这就是我们所说的判断.当然看文章的判断条件是,文章的内容是否符合小伙伴们的兴趣.今天我们就数据库mysql存储 ...

最新文章

  1. 大数据-平台-解决方案-基础架构一览
  2. python sftp传输文件总是报文件不存在_Paramiko:通过SFTP传输文件时,windows文件路径出错...
  3. linux rmp命令安装包在哪里_【MongoDB系列】Linux系统安装MongoDB
  4. Python中的高阶函数reduce
  5. AM8不能下任何载附件及所有聊天记录无法登记
  6. Packer创建阿里云本地镜像
  7. 低功耗/远距离lora模块:物联网智能家居、抄表多领域应用SX1262芯片方案
  8. gcc -l参数和-L参数
  9. 图论 —— 网络流 —— 费用流 —— MCMF 算法
  10. axios的数据拦截(拦截器)
  11. 荣耀30会不会升级鸿蒙,荣耀手机不能升级鸿蒙吗?有博主给出升级名单
  12. CVPR自动驾驶运动预测挑战赛:轻舟智航夺冠方案
  13. C语言(面积计算器)不能输入负数[程序以要求]
  14. 使用 Beyond Compare 和版本控制系统
  15. 【贪心算法】哈夫曼编码问题
  16. 用matlab符号计算求解二元函数极值
  17. 安装用友U8的常见错误
  18. php判断信用卡,PHP函数验证信用卡卡号是否正确
  19. matlab基础学习——基础数学函数(持续更新)
  20. 偏振器件传输矩阵matlab编程,关于传输矩阵法模拟光子晶体的MATLAB编程

热门文章

  1. IDEA工具使用技巧--工具栏调出svn操作栏
  2. sitecore-多变量测试与A / B测试概念论述
  3. PostgreSQL 执行查询语句报错 ERROR: relation “table_xxx“ does not exist
  4. l1、l2正则化在pytorch框架下的实现方式
  5. VS Code 开发asp.net.web.API,C#后端开发
  6. [冀信2021-pwn] pwn19
  7. 對方上訴期限15日內的某日致電
  8. 十大累成狗的大学专业排名,第一名我服!
  9. 阿里巴巴大数据实践-读书笔记
  10. 题目17:某旅游景点规定,身高在1.2米以下的儿童免票,身高1.2~1.5米(包含1.2米和1.5米)的儿童购买半价票,身高超过1.5米的游客购买全价票。