「はじめに」の記事の内容は、データベースの基本的な操作を大まかにまとめています。
「所属カラム」MySQL
「ホームページリンク」個人ホームページ
《作者》 メイプルリーフ氏(fy)
「メイプルリーフさんはちょっと文学的」「文章シェア」
一人でいることを好む人はいませんが、失望するのは好きではありません。
- 村上春樹『ノルウェイの森』
目次
1. データベースの作成・閲覧
データベースを作成する構文:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]
create_specification
オプション:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
説明する:
db_name
作成されたデータベースの名前です- 大文字のキーワード
- []は任意です、書かないことも可能です
- CHARACTER SET: データベースで使用される文字セットを指定します。
- COLLATE: データベース文字セットの検証規則を指定します。
すべてのデータベースを表示します。
show databases;
[IF NOT EXISTS]
つまり、データベースが存在する場合は作成されず、データベースが存在しない場合は作成されます。たとえば、既存のtest
データベースを作成します。
create database if not exists test;
或者 create database test; // 直接创建
存在しない場合は作成する
create database if not exists test1;
データベースは基本的に/var/lib/mysql/
以下に
2. データベースを削除します
文法:
DROP DATABASE [IF EXISTS] db_ name;
db_name
作成されたデータベースの名前です- []は任意です、書かないことも可能です
削除を実行した後の結果:
- 対応するデータベースがデータベース内に存在しない
- 対応するデータベース フォルダーが削除され、カスケード削除され、その中のすべてのデータ テーブルが削除されます。
- データベースの削除は基本的に
/var/lib/mysql/
以下の
知らせ: データベースを勝手に削除せず、不要なデータベースの名前を変更してバックアップしてみてください。
3. データベース文字セットとデータベース検証ルール
db1 という名前のデータベースを作成します
create database db1;
説明する: キャラクタ セットと検証ルールを指定せずにデータベースを作成する場合、システムはデフォルトのキャラクタ セットを使用します: 、検証ルールは次のとおりです。これはutf8
MySQL
構成utf8_ general_ ci
ファイル/etc/my.cnf
で設定されます。キャラクタ セットまたは検証ルールを自分で指定する場合、システムのデフォルトの文字セットと検証ルールを使用する場合は、そうではありません。文字セットを使用して db2 データベース
を作成するように指定することもできますutf8
create database db2 charset=utf8;
或者 create database db2 CHARACTER SET utf8
utf
文字セットと照合規則を使用してutf8_general_ci
db3 データベースを作成することもできます。
create database db3 charset=utf8 collate utf8_general_ci;
文字セットと検証ルールとは何ですか? ?
- 文字セットはコード セットであり、データベースはデータの表現と保存に使用されます。
- 検証ルールは、データの整合性、つまりフィールドを比較するときにデータベースが使用する必要があるエンコーディング (データの読み取り、データの比較) を検出および検証するための方法です。
データに対して実行される操作に関係なく、データベース ライブラリはエンコード形式が一貫していることを確認する必要があります。
システムのデフォルトの文字セット (現在のデータベース) を確認します ( /etc/my.cnf
MySQL 構成ファイルに設定されています)。
show variables like 'character_set_database';
システムのデフォルトの検証ルールの表示 (現在のデータベース)
show variables like 'collation_database';
データベースでサポートされている文字セットを確認します。文字セットは主に、使用する言語を制御します。たとえば、utf8 では中国語を使用できます。
show charset;
データベースでサポートされているキャラクタ・セット検証ルールを表示します。
各検証ルールはキャラクタ・セットと一致します。たとえば、utf8_general_ci
検証ルールによって一致するキャラクタ・セットは次のとおりです。utf8
4 番目に、検証ルールがデータベースに与える影響
大文字と小文字を区別しません
utf8_general_ci [大文字と小文字を区別しない] を使用して検証ルールを含むデータベースを作成します。
create database test1 charset=utf8 collate utf8_general_ci;
テーブルの作成 データの挿入
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
データベースのディレクトリに、db.opt
ライブラリのコーディングルールを格納するファイル
cat /var/lib/mysql/test1/db.opt
テーブル情報の
表示 文字の検索a
select * from person where name='a';
a
と の両方がA
検出され、検査ルールでutf8_general_ci
大文字と小文字が区別されないことを示します。
大文字と小文字を区別
utf8_ bin [大文字と小文字を区別する] を使用して検証ルールを含むデータベースを作成する
create database test2 collate utf8_bin;
テーブルの作成 データの挿入
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
データベースのディレクトリに、db.opt
ライブラリのエンコード ルールを保存するファイルがあります。
検索文字はa
、条件を満たすものだけが検索され、検査ルールがutf8_bin
大文字と小文字を区別することを示します。
5. データベースを変更する
データベース作成時のステートメントを表示する
show create database 数据库名;
説明する:
- MySQL では大文字のキーワードを使用することを推奨していますが、必須ではありません。
- データベース名のバックティック `` は、データベース名が単なるキーワードとして使用されるのを防ぐためのものです。
/*!40100 default.... */
これはコメントではありません。現在の mysql バージョンがバージョン 4.01 より大きいことを意味します。この文を実行するだけです。バージョン 4.01 より小さい場合は、実行しないでください。
データベースを変更する
文法:
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification
オプション:
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 大文字のキーワード
- []は任意です、書かないことも可能です
説明する
: データベースの変更とは、主にデータベースのtest2
文字セットと検証ルールの変更を指します。gbk
alter database test1 charset=gbk collate gbk_chinese_ci;
知らせ: 現在のデータベースはデータベース名の変更をサポートしていませんが、以前はサポートされていました。
6. データベースのバックアップとリカバリ
バックアップ
文法
mysqldump -P3306 -u root -p -B 数据库名 > 数据库备份存储的文件路径
注: > は出力リダイレクトです。
たとえば、test1
ライブラリをファイルにバックアップするには、mysql 接続を終了する必要があります。
mysqldump -P3306 -uroot -p -B test1 > /home/fy/mysql/test1.sql
vimを開いて確認すると、データの効果的な操作とデータがすべてバックアップされています
割引
文法:
source 备份的文件(路径)
注: > は出力リダイレクトです。
削除test1
、テスト、
復元しtest1
、mysql 接続で操作します。
source /home/fy/mysql/test1.sql;
データベースを確認してください。データは復元されています
予防:
バックアップがデータベース全体ではなく、テーブルの 1 つである場合
mysqldump -uroot -p 数据库名 表名1 表名2... > 备份的文件(路径),如:/mytest.sql
複数のデータベースを同時にバックアップする
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
データベースのバックアップ時に -B パラメータが含まれていない場合、データベースを復元するときは、最初に空のデータベースを作成し、次にデータベースを使用し、次にソースを使用して復元する必要があります
。
7、データベース接続を確認します
文法:
show processlist;
現在 MySQL に接続しているユーザーを教えてください。ユーザーが通常のログインではないことがわかった場合は、データベースが侵入されている可能性が非常に高くなります。将来データベースが遅いことがわかった場合は、このコマンドを使用してデータベースの接続ステータスを確認できます
--------------------- END ----- ------ -----------
「 作者 」 枫叶先生
「 更新 」 2023.7.7
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
或有谬误或不准确之处,敬请读者批评指正。