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

目录

一、MySQL数据库基础

[1.1 数据库服务器与数据库与表](#1.1 数据库服务器与数据库与表)

[1.2 客户端工具](#1.2 客户端工具)

[1.3 可视化工具](#1.3 可视化工具)

二、SQL语言

[2.1 SQL是什么](#2.1 SQL是什么)

[2.2 SQL分类](#2.2 SQL分类)

三、库的操作

[3.1 查看数据库](#3.1 查看数据库)

[3.2 创建数据库](#3.2 创建数据库)

3.2.1创建一个名字为test的数据库

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

[3.2.3 创建一个制定字符集和排序规则的数据库](#3.2.3 创建一个制定字符集和排序规则的数据库)

[3.3 查看创建库的语句](#3.3 查看创建库的语句)

[3.4 修改数据库](#3.4 修改数据库)

[3.5 删除数据库](#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:表示自定义的数据库名称
  • {}:表示必须选
  • |:表示任选其中一个
  • \]:表示括号中内是可选项

  • 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数据库不存在了

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

相关推荐
krielwus2 小时前
Oracle 11g R2 物理冷备操作文档
数据库·oracle
大气层煮月亮2 小时前
Oracle EBS ERP之报表开发—嵌入Web中的报表预览、报表打印
前端·数据库·oracle
会挠头但不秃2 小时前
Redis数据结构和常用命令
数据库·redis·缓存
楠目2 小时前
SQL注入与防御:从攻击原理到预编译防御
数据库·sql
无名前端小白2 小时前
Oracle 转 PostgreSQL, ora2pg docker compose 简单实践版
数据库·postgresql·oracle
庸人自扰614 小时前
Redis从零讲解
数据库·redis·缓存
musk12124 小时前
sysbench mysql 单表 insert 压测 , 自定义lua测试脚本
mysql·sysbench·insert tps
lypzcgf5 小时前
Coze源码分析-资源库-删除数据库-后端源码-领域服务/数据访问层
数据库·go·coze·coze源码分析·智能体平台·ai应用平台·agent平台
cqsztech5 小时前
oracle linux 10 +pg18 源码安装要点
linux·数据库·oracle