Verificação rápida do MySQL
Como muitas vezes esqueço algumas instruções, palavras-chave, operações do MySQL, etc. em meu trabalho e estudo diário, recentemente reservei algum tempo para escrever o seguinte conteúdo sobre MySQL. É como um dicionário
Redefinir senha do mysql Operador
de tipo de dados Funções comumente usadas Integridade de dados Este artigo opera na própria tabela e nos dados da tabela Subconsulta Conexão multitabela Visualização de índice Pré-processamento de instruções SQL Funções personalizadas e procedimentos armazenados Programação em MySQL
Operações básicas de banco de dados
Ver banco de dados
A explicação oficial é que esquema é sinônimo de banco de dados.
Ver todos os bancos de dados
# 查看全部数据库
SHOW {
DATABASES | SCHEMAS}
[LIKE 'pattern']
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
# like 子句用来匹配数据库名
mysql> show databases like "%schema";
+--------------------+
| Database (%schema) |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)
Ver detalhes de um banco de dados
# 查看某个数据库的详情
SHOW CREATE {
DATABASE | SCHEMA} [IF NOT EXISTS] <数据库名>
mysql> show create database test;
+----------+--------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Selecione banco de dados
use <数据库名>;
# 例如
use mysql;
Criar banco de dados
charset é a abreviatura de conjunto de caracteres
CREATE {
DATABASE | SCHEMA} [IF NOT EXISTS] <数据库名>
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {
'Y' | 'N'}
}
- IF NOT EXISTS Cria apenas se não houver banco de dados com o mesmo nome de <nome do banco de dados>
- CHARACTER SET [=] charset_name especifica o conjunto de caracteres padrão usado por este banco de dados
- COLLATE [=] collation_name especifica as regras de agrupamento do conjunto de caracteres
- Opção de criptografia ENCRYPTION introduzida na versão 8.0.16.Esta criptografia é herdada pelas tabelas de dados do banco de dados. Y ativa a criptografia, N desativa
create database if not exists test charset utf8;
mysql> create database if not exists test charset utf8;
Query OK, 1 row affected, 1 warning (0.02 sec)
Excluir banco de dados
DROP {
DATABASE | SCHEMA} [IF EXISTS] <数据库名>
drop database if exists test;
mysql> drop database if exists test;
Query OK, 0 rows affected (0.02 sec)
# 如果删除不存在的数据库
# 有if exists时
mysql> drop database if exists test;
Query OK, 0 rows affected, 1 warning (0.01 sec)
# 没if exists时
mysql> drop database test;
ERROR 1008 (HY000): Can't drop database 'test'; database doesn't exist
Modificar banco de dados
ALTER {
DATABASE | SCHEMA} [<数据库名>]
alter_option ...
alter_option: {
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| [DEFAULT] ENCRYPTION [=] {
'Y' | 'N'}
| READ ONLY [=] {
DEFAULT | 0 | 1}
}
- Conjunto de caracteres, agrupamento e criptografia são introduzidos para criar o banco de dados .
- somente leitura A opção somente leitura foi introduzida no MySQL 8.0.22. DEFAULT e 0 indicam que não é somente leitura e 1 indica que é somente leitura.
# 修改test表的默认字符集
# 原来的test
mysql> show create database test;
+----------+--------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
# 可以看出是utf8
# 现在改成gbk
mysql> alter schema test charset gbk;
Query OK, 1 row affected (0.02 sec)
# 再看看test
mysql> show create database test;
+----------+-------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
# 已经变成了gbk