MySQL 学习笔记 1

MySQL 数据库学习

Day 1

目录

  1. 基本概念

  2. MySQL 数据库软件

  3. SQL

数据库的基本概念

  1. 数据库的英文单词:DataBase 简称:DB
  2. 什么是数据库?
  • 用于存储和管理数据的仓库。
  1. 数据库的特点
  • 持久化存储数据的。其实数据库就是一个文件系统。
  • 方便存储和管理数据。
  • 使用了统一的方式操作数据库—–SQL
  1. 常见的数据库软件
  • MySQL
  • Microsoft SQL Server
  • Oracle

MYSQL 数据库软件

  • MySQL 服务启动
  1. 手动。

  2. cmd–>services.msc 打开服务的窗口

  3. 使用管理员打开 cmd

    • net start mysql : 启动 mysql 的服务
      在这里插入图片描述
    • net stop mysql : 关闭 mysql 的服务
      在这里插入图片描述
      注意:若出现图示情况(MySQL 服务无法启动。服务没有报告任何错误)有两种处理方法
      在这里插入图片描述
    1. 在任务管理器中关闭 mysqld.exe 后,重新 net start mysql
      在这里插入图片描述
    2. 在服务中,关闭 MySQLXX(XX 对应版本号),启动 MySQL,此时不用再到 cmd 中启动了。 据我猜测是 MySQL 本地服务和网络服务只能同时开启一个。
      在这里插入图片描述
  • MySQL 登录
  1. mysql -uroot -p 此时是密文显示确认后会让你输入密码
    在这里插入图片描述
  2. mysql -uroot -p123456(此时是明文显示 -p 后面的密码)
  3. mysql -hip -uroot -p 连接目标的密码 (此时是远程连接对应 ip 的数据库)
    当看见下图则登录成功
    在这里插入图片描述
  • MySQL 退出
  1. exit
  2. quit
  • 密码的修改
    1. 已知密码

在 MySQL 安装目录的 bin 目录执行命令:mysql -u root -p
  这时候会提示输入密码,记住了上面第 1.3 步安装时的密码,填入即可登录成功,进入 MySQL 命令模式。

在 MySQL8.0.4 以前,执行

SET PASSWORD=PASSWORD(‘[ 修改的密码]’);
就可以更改密码,但是 MySQL8.0.4 开始,这样默认是不行的。因为之前,MySQL 的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

  因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时还是改回了“mysql_native_password”认证插件。

修改用户密码,在 MySQL 中执行命令:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
修改密码验证插件,同时修改密码。

  如果想默认使用“mysql_native_password”插件认证,可以在配置文件中配置 default_authentication_plugin 项。

[mysqld]
default_authentication_plugin=mysql_native_password

2. 如果忘记了密码

在 MySQL 安装目录的 bin 目录下执行命令:(最好先将 MySQL 目录下的 data 文件夹删了)

mysqld –initialize –console

执行完成后,会打印 root 用户的初始默认密码,比如:

C:\Users\Administrator>cd C:\Program Files\MySQL\bin

C:\Program Files\MySQL\bin>mysqld --initialize --console
2018-04-28T15:57:17.087519Z 0 [System] [MY-013169] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 4984
2018-04-28T15:57:24.859249Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E
2018-04-28T15:57:27.106660Z 0 [System] [MY-013170] [Server] C:\Program Files\MySQL\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed

C:\Program Files\MySQL\bin>

  注意!执行输出结果里面有一段: [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rI5rvf5x5G,E 其中 root@localhost: 后面的“rI5rvf5x5G,E”就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。

  要是你手贱,关快了,或者没记住,那也没事,删掉初始化的 datadir 目录,再执行一遍初始化命令,又会重新生成的。当然,也可以使用安全工具,强制改密码,用什么方法,自己随意。

SQL

1. 什么是 SQL?

Structure Query Language :结构化查询语言

其实就是定义了操作所有关系型数据库的规则。每种数据库操作的方式存在不一样的地方,称为“方言”。

2. SQL 通用语法

  1. SQL 语句可以单行或多行书写,以分号结尾。
  2. 使用空格和缩进来增强语句的可读性。
  3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
  4. 3 种注释
    • 单行注释:– 注释内容(两个横杠加一个空格)或# 注释内容(MySQL 特有)
    • 多行注释:/* 注释 */

3. SQL 分类
1)DDL(Data Definition Language) 数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
2)DML(Data Manipulation Language) 数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
3)DQL(Data Query Language) 数据查询语言
用来查询数据库中表的记录 (数据)。关键字:select, where 等
4)DCL(Data Control Language) 数据控制语言 (了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等