MySQL——数据库基础与库的操作
目录
一、MySQL数据库基础
1.1 数据库服务器与数据库与表
1.2 客户端工具
1.3 可视化工具
二、SQL语言
2.1 SQL是什么
2.2 SQL分类
三、库的操作
3.1 查看数据库
3.2 创建数据库
3.2.1创建一个名字为test的数据库
3.2.2自定义一个数据库名,如果该数据库不存在则创建
3.2.3 创建一个制定字符集和排序规则的数据库
3.3 查看创建库的语句
3.4 修改数据库
3.5 删除数据库
一、MySQL数据库基础
当MySQL安装完成之后,bin⽬录下有⼀个mysqld(Linux)或mysqld.exe(windoows)的可执⾏程序,mysqld可执⾏程序运⾏后,MySQL服务也就启动了。当把MySQL服务配置为⾃启动,操作系统启动时会⾃动运⾏mysqld可执⾏程序,从⽽启动MySQL服务。
1.1 数据库服务器与数据库与表
数据库服务器是指在计算机上安装了一个数据库管理系统程序,这个程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库
那为了保存应用中的实体,一般会在书库中创建多个表,已保存程序中实体的数据
所以他们的关系就是:数据库服务器——管理——>数据库——管理——>表
1.2 客户端工具
MySQL安装成功后有自带的命令行客户端工具,可以输入命令并且执行SQL语句,所以MySQL的使用还是非常简单的,打开终端输入命令即可
我们输入安装时就设置的密码,连接成功了,我们使用select version( )的SQL语句查看了当前MySQL的版本
1.3 可视化工具
MySQL官方提供了可视化工具MySQL Workbench,但是博主在这里使用的是Navicat可视化客户端工具,在业内广泛使用
二、SQL语言
2.1 SQL是什么
SQL(Structured Query Language)是结构化查询语⾔的简称,是⼀种数据库查询和程序设计语⾔,⽤于存取数据以及查询、更新和管理关系数据库。
2.2 SQL分类
• DDL【Data Definition Language】 数据定义语⾔,⽤来维护存储数据的结构
代表指令: create, drop, alter
• DML【Data Manipulation Language】 数据操纵语⾔,⽤来对数据进⾏操作
代表指令: insert,delete,update,select
• DCL【Data Control Language】 数据控制语⾔,主要负责权限管理和事务
代表指令: grant,revoke,commit
注意:SQL语言对大小写不敏感
三、库的操作
3.1 查看数据库
show databases;
3.2 创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] { 'Y' | 'N' }
}
- db_name:表示自定义的数据库名称
- {}:表示必须选
- |:表示任选其中一个
- []:表示括号中内是可选项
- CHARACTER SET:指定数据库采⽤的字符集编码
- COLLATE:指定数据库字符集的校验规则
- ENCRYPTION:数据库是否加密,MySQL 8.0.16中引⼊的新选项、
3.2.1创建一个名字为test的数据库
create database test;
3.2.2自定义一个数据库名,如果该数据库不存在则创建
create database if not exists test;
如果不加 if not exists,观察发现报错显示test已经存在无法创建
我们加上 if not exists,观察发现数据库里面已经存在test,所以没有创建,出现了一个警告
我们显示警告,提示test已经存在不能创建
所以建议创建数据库的时候加上 if not exists,可以有效防止报错,而导致程序中断
在设置字符集编码之前,我们先来了解一下字符集编码和校验排序规则
show charset;
我们看到当前数据库支持的所以字符集编码,MySQL8.0默认的字符集编码是utf8mb4,而MySQL5.7默认的字符集是latin1
show collation;
这里我们只显示部分排序排序规则,MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci,MySQL5.7默认排序规则是utf8mb4_general_ci
我们可以分析一下当前字符集和排序规则对数据库的影响
utf8mb4_0900_ai_ci 是MySQL8.0引⼊的新规则,在⽼版本中不能识别;
utf8mb4 编码是对 Unicode 字符集的⼀种实现,⽤1到4个字节表⽰⼀个字符,可以表⽰世界上⼏乎所有的字符,⽽且更节少空间
0900 是基于UCA9.0.0算法,UCA是Unicode Collation Algorithm的缩写
- ai是Accent-insensitive的缩写,表⽰⼝声不敏感
- ci是Case-insensitive的缩写表⽰⼤⼩写不敏感
- as是Accent-sensitive的缩写,表⽰⼝声敏感
- cs是Case-sensitive的缩写,表⽰⼤⼩写敏感
show variables like '%character%' 查看当前系统默认字符集
show variables like '%collation%' 查看当前系统默认排序规则
3.2.3 创建一个制定字符集和排序规则的数据库
create database if not exists java character set utf8mb4 collate utf8mb4_0900_ai_ci;
3.3 查看创建库的语句
show create database db_name;
我们查询一下java数据库的创建语句
3.4 修改数据库
ALTER {DATABASE | SCHEMA} [db_name] alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1}
}
修改数据库主要是针对数据库的字符集和排序规则进行修改
我们修改之前的test数据库的字符集编码为gbk
可以观察到修改之前默认字符集为utf8mb4,修改后则为gbk
3.5 删除数据库
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
我们删除test数据库,可以观察到删除后test数据库不存在了
🌟删除数据库是非常危险的操作,不要随意删除数据库