序文
以前にインストールしたデータベースを使用して、SQL
ステートメントのいくつかの使用法を学習できます。この記事では主に、データベースの追加、削除、変更、クエリのいくつかの方法と形式について説明します。
注:SQL
実はこの文の形式は比較的理解しやすく、説明性の高い英単語で構成されているので、一緒に見てみましょう。
1. データベース情報
まずデータベース管理システムにログインしましょう
1.1 データベースへのログイン
サーバー内の-u
およびパラメータを直接使用して-p
データベースにログインします
mysql -u用户 -p密码
写真の意味は次のとおりです。
コマンドは ; で終わります。または \g はコマンドの最後に追加する必要があることを意味します。または \g。
version: データベースのバージョン情報は 8.0.30 です。
同時に、help、\h などのヘルプ情報を表示するクエリもあります。ステートメントが作成されて間違っていることが判明した場合は、\ を使用することもできます。 c を実行しないようにします。
SQL ステートメントを使用してバージョン情報を表示することもできます
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.30 |
+-----------+
1 row in set (0.00 sec)
1.2 データベースの文字セット情報を表示する
MySQL8.0
デフォルトでは、utf-8 の文字セットがサポートされています。MySQL5.0
左右のデータベースを使用する場合は、utf-8
中国語のコンテンツを表示するためにデータベースの形式を設定する必要があります。
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.23 sec)
左側または右側のバージョンの場合MySQL5.0
、データベースの作成時に utf-8 文字セットを設定できます。
create database (数据库名) character set utf8 collate utf8_bin;
1.3 データベースのストレージエンジンを表示する
mysql8.0
上記でデフォルトで使用されるinnodb
ストレージ エンジンは次のとおりです。
mysql> show global variables like '%storage_engine%';
+---------------------------------+-----------+
| Variable_name | Value |
+---------------------------------+-----------+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| disabled_storage_engines | |
| internal_tmp_mem_storage_engine | TempTable |
+---------------------------------+-----------+
4 rows in set (0.02 sec)
もちろん、mysql
データベースがサポートしているストレージ エンジンを確認することもできます。
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
2. データベース SQL ステートメント
2.1 データベース情報の表示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
デフォルトでは、これらのデータベースはインストールに付属するライブラリ ファイルですが、具体的な機能を見てみましょう。
- information_schema は主に、データベース名やテーブル名、列のデータ型、アクセス権などのデータに関するデータであるデータベース メタデータへのアクセスを提供するために使用されます。mysql 管理システム内の他のすべてのデータベースに関する情報はここに保存されます。
- Performance_schema は、ストレージ エンジンとみなすことができる、下位レベルの実行プロセスにおける MySQL サーバーのリソース消費とリソース待機を監視するために使用されます。
- sys: MySQL のパフォーマンスを表示、開発を支援、監視します。
- mysql: 主に、MySQL ユーザー アカウント、権限、ストアド プロシージャ、トランザクション定義などの情報を保存するために使用されます。
最初に言ったことを今でも覚えています。ステートメントの最後にセミコロンを追加することも、追加することもできます。その効果を\g
見てみましょう。\g
mysql> show databases \g
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
効果はセミコロンで表示されるものと同じです。\G に置き換えてもう一度見てください。
mysql> show databases \G
*************************** 1. row ***************************
Database: information_schema
*************************** 2. row ***************************
Database: mysql
*************************** 3. row ***************************
Database: performance_schema
*************************** 4. row ***************************
Database: sys
4 rows in set (0.00 sec)
G に変更して表示される結果は、前のフレームがなく、1 行ずつ横線の形式で表示されます。
通常、データベースを作成する場合、この構文を使用してデータベースの情報を表示できます。
コマンド構文
show create database 数据库名称
例:
mysql> show create database book;
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
| book | CREATE DATABASE `book` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
表示される情報には、データベースの名前、文字セット情報、暗号化するかどうかなどの情報が含まれます。
2.2 データベースの作成
データベースを作成するための構文
create database 数据库名;
例
mysql> create database book;
Query OK, 1 row affected (0.00 sec)
出力の Query OK.1 行が影響を受けました (0.00 秒) は、作成が成功したことを示します
作成データベースを作成したいとします。それが正常に作成できるかどうか
mysql> create database create;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create' at line 1
正常に作成できないことがわかります。これは、create がデータベース内の予約語であるため、正常に作成したい場合は、バッククォート ` を追加する必要があるためです。
mysql> create database `create`;
Query OK, 1 row affected (0.01 sec)
データベースの作成時に一部の特殊文字が含まれるため、作成も失敗します。
mysql> create database student!;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' at line 1
mysql> create database `student!`;
Query OK, 1 row affected (0.07 sec)
同様に、解決策はバッククォートを追加して成功したものを作成することです。
2.3 データベースを削除する
データベースを削除するための構文
drop database 数据库名称
例:
mysql> drop database book;
Query OK, 3 rows affected (0.05 sec)
データベースの削除は特に重大な問題であるため、必要がない限り削除することはお勧めできません。
要約する
上記の内容はここまでで、次の記事ではデータベーステーブルの SQL 文について説明します。内容が大丈夫だと思ったら、高評価を押してサポートしてください。