# 一、MySQL 简介
# 1、基本概述
MySQL 当前属于甲骨文公司(AB->Sun->Oracle),是一个开源免费(部分存储引擎))的数据库软件,可以通过 SQL 指令对数据库进行操作。
MySQL 是一种 C/S 结构软件,因此需要 MySQL 的客户端来访问服务端(数据管理)
- mysql.exe:客户端(MySQL 5.7 Command Line Client)
- mysqld.exe:服务端
# 2、软件安装
拓展:MySQL 解压版使用
官方下载地址:
https://downloads.mysql.com/archives/community/
若使用的是解压版,关于环境变量就暂时不用配置了,直接在 mysql 数据库的 bin 目录打开终端操作即可。
使用解压版的优点是可以电脑上可以方便的切换 MySQL 版本,缺点是要频繁手动的启动(个人更加推荐使用 安装版)
① 启动服务端(mysqld.exe):
- 根目录新建 my.ini
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 正式启动:
.\mysqld.exe --initialize-insecure #(会在根目录生成一个data文件夹)
.\mysqld.exe
② 启动客户端(mysql.exe):
.\mysql.exe -u root -p (默认密码为空)
官方下载地址:
https://dev.mysql.com/downloads/windows/installer/8.0.html
默认安装路径:
C:\Program Files\MySQL\MySQL Server 5.7\bin
# 3、启动软件
通常情况下,next 一步到底的话,mysql 默认在本地会启动一个 MySQL57 或 MySQL80(与安装版本有关)的服务。
mysql 服务
在 window 中,我们可以通过在任务管理器等地方查看 MySQL 服务的状态。
也可以通过命令的方式操作 mysql 服务:
net start
net start MySQL57
net stop MySQL57
# 4、使用 mysql
在 window 中安装完 mysql 后,默认会安装一个 mysql.exe:客户端(MySQL 5.7 Command Line Client),我们可以直接在该终端窗口下与 mysql 交互。
但为了方便使用,还是建议将 mysql.exe 的安装路径添加到 window 环境变量中,这样我们就可以直接在 CMD 中直接使用 mysql 了。
mysql --version
mysql -uroot -p
> exit
# 二、MySQL 基础
# 1、客户端
对于 mysql,我们可以通过在客户端 mysql.exe 打开中终端中,编写 SQL 语句与服务端 mysqld.exe 进行交互。
终端中(与服务器中类似)
mysql -u root -p
> create database ry_vue;
> show databases;
> use ry-vue;
> source /home/app_code/RuoYi-Vue/ry_20230706.sql;
> show tables;
但在某些场景下(如创建表、插入数据等),我们不会一条一条的输入 SQL 语句与服务端交互(效率太低),而是直接运行.sql 文件,一次性执行多条 SQL 语句。
Navicat、vscode 插件 (opens new window)等 中(执行的 SQL 结果,会同步以可视化的方式展示)
初始化.sql 文件
-- ----------------------------
-- 8、角色和部门关联表 角色1-N部门
-- ----------------------------
drop table if exists sys_role_dept;
create table sys_role_dept (
role_id bigint(20) not null comment '角色ID',
dept_id bigint(20) not null comment '部门ID',
primary key(role_id, dept_id)
) engine=innodb comment = '角色和部门关联表';
-- ----------------------------
-- 初始化-角色和部门关联表数据
-- ----------------------------
insert into sys_role_dept values ('2', '100');
insert into sys_role_dept values ('2', '101');
insert into sys_role_dept values ('2', '105');
select * from sys_menu
# 2、SQL 分类
SQL,全称:Structured Query Language(结构化查询语言),是一种针对关系型数据库特殊标准化的编程语言。根据操作的不同,可以分为:
类型 | 作用 | 举例 | |
---|---|---|---|
Data Control Language | DCL | 数据控制 | 用户权限管理 |
Data Definition Language | DDL | 数据定义 | 创建数据结构 |
Data Manipulation Language | DML | 数据操作 | 数据内容操作(增删改) |
Transaction Process Language | TPL | 事务处理 | 辅助 DML 进行事务操作 |
Data Query Language | DQL | 数据查询 🎈 | 查询和检索数据 |
# 3、语法规则
- 基础 SQL 指令通常是以行为单位
- SQL 指令需要语句结束符,默认是英文分号:
;
- 编写的 SQL 中如果用到了关键字、保留字等,需要使用反引号``来包裹,让系统忽略
-- 创建库
create database if not exists `ry-vue`;
-- 切换库
use `ry-vue`;
_
表示匹配一个字符(固定位置),%
表示匹配 N 个字符
数据控制-DCL →