MySQLのクイックチェック
日々の仕事や勉強の中で、mysql のステートメント、キーワード、操作などを忘れることがよくあるため、最近少し時間をとって mysql に関する次の内容を書きました。辞書のようなものです
mysql パスワードのリセット
データ型
演算子
一般的に使用される関数 データの
整合性
この記事は
テーブル自体を操作し、
テーブル内のデータを操作します サブクエリマルチテーブル接続インデックスビュー前処理 SQL ステートメントカスタム関数とストアド プロシージャMySQL でのプログラミング
データベースの基本操作
データベースを見る
公式の説明では、スキーマはデータベースの同義語です。
すべてのデータベースを表示する
# 查看全部数据库
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)
データベースの詳細を表示する
# 查看某个数据库的详情
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)
データベースの選択
use <数据库名>;
# 例如
use mysql;
データベースの作成
charsetは文字セットの略称です
CREATE {
DATABASE | SCHEMA} [IF NOT EXISTS] <数据库名>
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {
'Y' | 'N'}
}
- IF NOT EXISTS <データベース名> と同じ名前のデータベースが存在しない場合にのみ作成します
- CHARACTER SET [=] charset_name は、このデータベースで使用されるデフォルトの文字セットを指定します。
- COLLATE [=]collation_name は文字セットの照合規則を指定します
- 暗号化 暗号化オプションはバージョン 8.0.16 で導入され、この暗号化はデータベース内のデータ テーブルに継承されます。Y は暗号化をオンにし、N はオフにします
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)
データベースの削除
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
データベースを変更する
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}
}
- データベースを作成するために、文字セット、照合、暗号化が導入されています。
- 読み取り専用 読み取り専用オプションは MySQL 8.0.22 で導入されました。DEFAULT と 0 は読み取り専用ではないことを示し、1 は読み取り専用であることを示します。
# 修改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