目录

MySQL数据库基础与库的操作

MySQL——数据库基础与库的操作


一、MySQL数据库基础

当MySQL安装完成之后,bin⽬录下有⼀个mysqld(Linux)或mysqld.exe(windoows)的可执⾏程序,mysqld可执⾏程序运⾏后,MySQL服务也就启动了。当把MySQL服务配置为⾃启动,操作系统启动时会⾃动运⾏mysqld可执⾏程序,从⽽启动MySQL服务。

1.1 数据库服务器与数据库与表

数据库服务器是指在计算机上安装了一个数据库管理系统程序,这个程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库

那为了保存应用中的实体,一般会在书库中创建多个表,已保存程序中实体的数据

所以他们的关系就是:数据库服务器——管理——>数据库——管理——>

1.2 客户端工具

MySQL安装成功后有自带的命令行客户端工具,可以输入命令并且执行SQL语句,所以MySQL的使用还是非常简单的,打开终端输入命令即可

https://i-blog.csdnimg.cn/direct/b5810093b08b45c99724a90424fcb25e.png

我们输入安装时就设置的密码,连接成功了,我们使用select version( )的SQL语句查看了当前MySQL的版本

1.3 可视化工具

MySQL官方提供了可视化工具MySQL Workbench,但是博主在这里使用的是Navicat可视化客户端工具,在业内广泛使用

https://i-blog.csdnimg.cn/direct/87983b072ef443ea80d0990132a5a903.png

二、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;

https://i-blog.csdnimg.cn/direct/346bed712fef4b309411f2e5d98c0ef6.png

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;

https://i-blog.csdnimg.cn/direct/355c643d32a34bbfa8f0fed6226361d1.png

3.2.2自定义一个数据库名,如果该数据库不存在则创建

create database if not exists test;

如果不加 if not exists,观察发现报错显示test已经存在无法创建

https://i-blog.csdnimg.cn/direct/b99db83d01b84a5b85c2639f3bb62677.png

我们加上 if not exists,观察发现数据库里面已经存在test,所以没有创建,出现了一个警告

https://i-blog.csdnimg.cn/direct/be6e7aed8897425298539a0a1bdd021c.png

我们显示警告,提示test已经存在不能创建

https://i-blog.csdnimg.cn/direct/db9dde578c2b48e69e6e5510f501b587.png

所以建议创建数据库的时候加上 if not exists,可以有效防止报错,而导致程序中断

在设置字符集编码之前,我们先来了解一下字符集编码和校验排序规则

show charset;

https://i-blog.csdnimg.cn/direct/0d16b48de0ff48ec88d6d0390965874f.png

我们看到当前数据库支持的所以字符集编码,MySQL8.0默认的字符集编码是utf8mb4,而MySQL5.7默认的字符集是latin1

show collation;

https://i-blog.csdnimg.cn/direct/56c3c99063f042dfb9687a4c5be81772.png

这里我们只显示部分排序排序规则,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%’  查看当前系统默认排序规则

https://i-blog.csdnimg.cn/direct/45950b8a81d94c2488c79bb922117c72.png

3.2.3 创建一个制定字符集和排序规则的数据库

create database if not exists java character set utf8mb4 collate utf8mb4_0900_ai_ci;

https://i-blog.csdnimg.cn/direct/c6c001f15d8c4a1e8e1628d769bee7aa.png

3.3 查看创建库的语句

show create database db_name;

我们查询一下java数据库的创建语句

https://i-blog.csdnimg.cn/direct/c4a7c99a7161410bab13aec7d9679437.png

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

https://i-blog.csdnimg.cn/direct/269cb3b2c54b45ec9b077e5ec4daa45c.png

3.5 删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

我们删除test数据库,可以观察到删除后test数据库不存在了

https://i-blog.csdnimg.cn/direct/e6c4efbcd2404a6da86b72fdf9154659.png

🌟删除数据库是非常危险的操作,不要随意删除数据库