[MySQL 入門ガイド] データベースの基本的な DDL 操作

MySQL ライブラリ操作

1.SQL文

  • DDL (データ定義言語): データ テーブルとデータベースの属性構造を維持するために使用されるデータ定義言語。代表コマンドはcreate/drop/alter
  • DML (データ操作言語): ファイルの内容を変更するために使用されるデータ操作言語
  • DCL (Data Control Language): データ制御言語、主にデータベースのセキュリティと権限管理を担当

この記事では、データベースに対する操作の追加、削除、確認、および変更に焦点を当てます。データベースの属性構造のみを変更し、データベースのコンテンツを変更しないことに注意してください。したがって、次に紹介する SQL ステートメントはすべて DDL ステートメントです。

MySQL のバージョンが異なると、実際には異なる場合があります。このチュートリアルで使用する MySQL のバージョンは 5.7 です。

2.データベースを作成する

1. 文法

CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET   charset_name] [COLLATE collation_name]

説明します:

  • [] は、追加できるかどうかを示します
  • CHARACTER SET: データベースで使用される文字セットを指定します。そうでない場合は、構成ファイルで選択されたデフォルトを使用します
  • COLLATE: データベースの文字セットの検証規則を指定します。そうでない場合は、構成ファイルで選択されたデフォルトを使用します
  • create、database は mysql のキーワードです。mysql ペアキーワード大文字と小文字は区別されません (キーワードのみが区別されますが、たとえば、データベース名やデータ テーブル名は区別されることに注意してください)。読みやすくするために、その後は小文字で表示されます。

(文字セットとチェックサムは後で紹介します)

2.ケース

  • db1 というデータベースを作成します。

    create database db1;
    
  • 存在しない場合はプラス。ターゲット データベースが存在しない場合にのみ作成されます

    画像-20230410162253905

  • utf-8 文字セットを使用してデータベースを作成する

    create database db2 charset=utf8;  -- 写法1
    create database db2 character set utf8;  -- 写法2
    
  • utf-8 文字セットを使用し、チェックサムが utf8_general_ci であるデータベースを作成します。

    create database db3 charset=utf8 collate utf8_general_ci;
    create database db3 charset=utf8 collate=utf8_general_ci;
    
  • create という名前のデータベースを作成します。したがって、create は mysql のキーワードです。これをデータベース名として使用する必要がある場合は、``.

    create database `create`
    

文字セットと検証セットが設定されていない場合はデフォルトの設定が使用され、それ以外の場合は近接の原則に従って、ユーザーが指定したものが使用されます。一般に、両方の非推奨文字セットと検証セットをユーザーが自分で設定

3. あまりお勧めできない方法

物理レベルでデータベースを作成する場合、本質は、var/lib/mysqlパスの。

画像-20230410163949437

このパスの下にディレクトリを手動で作成すると、mysql によってデータベースとして認識されますが、この方法はお勧めしません。それはあなたのリーダーのリーダーがあなたにタスクを直接送信するようなもので、明らかにめちゃくちゃです。

画像-20230410164141431

画像-20230410164214654

3. データベースを表示する

1. 文法

show databases;   -- 显示所有的数据库
show create database db_nams  -- 显示创建一个数据库的指令

画像-20230410164522960

画像-20230410164354443

4番目に、データベースを変更します

基本的な構文:

ALTER DATABASE db_name [alter_spacification……]

一般的な変更:

  • 文字セットとチェックサムを変更する

    alter database db1 charset=gbk;
    

    画像-20230411193031532

    変更前と変更後を比較すると、文字セットのみを変更しましたが、エンコーディング セットは対応するものに自動的に調整されることがわかりました。そして、データベース作成ステートメントが変更されます

    画像-20230411193225025

  • データベース名の変更は、mysql 5.7 ではサポートされていないことに注意してください。データベース名自体を変更する行為は極力お勧めできません。最初に明確にしておくと、上位の業務に影響を与えやすくなります。

5.データベースを削除する

drop database [if exists] db_ name;

データベースを削除すると、データベース内のすべてが削除されます。気をつけて!

6. 文字セットと検証規則

1. とは

  • 文字セットとは、文字を表すために使用されるエンコード規則を指します。MySQL では、文字セットによって決定されます。保管方法文字データ、および文字データをクライアントに渡す方法。MySQL はさまざまな文字セットをサポートしており、これらの文字セットの選択は、データ ストレージの信頼性、データ転送の正確性、およびテキストの比較や並べ替えなどの操作の結果に影響します。
  • 検証規則を使用して文字データを指定します比較方法. MySQL では、検証ルールによって、大文字と小文字を区別する方法、さまざまな文字を並べ替える方法など、文字列を比較する方法が決まります。MySQL はさまざまな検証ルールをサポートしており、状況によって異なる比較結果が生成される場合があります。検証ルールを正しく選択することで、データの比較や並べ替えなどの操作の正確性を確保できます

画像-20230411085554502

データベース フォルダのdp.optファイルには、データベースで使用される文字セットとチェックサムが保存されます。

2. 関連する指示

  • データベースでデフォルトで使用される文字セットと検証規則を表示する

    show variables like 'character_set_database';
    show variables like 'collation_database';
    

    画像-20230411084407360

  • ファジー クエリで詳細を表示

    show variables like 'character%';
    show variables like 'collation%';
    

    画像-20230411084550805

  • データベースでサポートされているすべての文字セットを表示します。各文字セットがデフォルトでチェックサムに一致することがわかります

    show charset;
    

    画像-20230411084742476

    (部)

  • データベースでサポートされているすべてのチェックサムを表示します。文字セットは実際には複数のチェックサムに対応できます

    show collation;
    

    画像-20230411084936410

3. 検証ルールの影響

文字データ間の比較にチェックセットが使用されることは前述しました。チェックサムが異なると、大文字と小文字の区別と並べ替えにも影響します。

  • 文字セットが異なる 2 つのデータベースを作成する
create database db2 collate utf8_general_ci; -- 不区分大小写	
create database test2 collate utf8_bin; -- 区分大小写	
  • 次のデータをそれぞれ挿入します
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 検索結果:
select * from person where name='a';

画像-20230411091902442

  • 結果の並べ替え
select* from person order by name

画像-20230411092130302

七、バックアップデータベース

1. 基本文法

先に述べたように、物理レベルでは、データベースは基本的にvar/lib/mysqlパス、データ テーブルはフォルダー内のファイルです。cpデータベースをコピーする場合は、コマンド copy folder を使用してデータベースをコピーすることもできますが、同じ動作はあまりお勧めできません。

MySQL は、mysql データベースのバックアップおよび復元専用のコマンドラインツールを提供します。mysqldumpその使用法は次のとおりです。

mysqldump -P 3306 -uroot -p password -B database > backup.sql

説明します:

  • -P は、mysql サーバーのポート番号を示します
  • -uroot は -u root と同等で、どちらも記述できます
  • -p はデータベースのパスワードを示します
  • -B は、バックアップするデータベースの名前を示します
  • > backup.sql データ結果が backup.sql ファイルにリダイレクトされることを示します。それ以外の場合は、画面に出力されます。

次の保存された結果から、データベースのバックアップは本質的に特定のデータをバックアップするためではなく、データベースを作成した過去の SQL ステートメントを保存するためのものであることが簡単にわかります (MySQL はそれを最適化します)。このようにして、データ自体のバックアップに加えて、データベースの完全な構造、制約、トリガー、ストアド プロシージャ、およびその他の情報を含めることもできるため、バックアップ中のデータの一貫性信頼性をより確実に保証できます。復元します

画像-20230411195515903

復旧方法は次のとおりです(mysqlのコマンド):

source xxx  -- 复原xx路径下的文件

2. 注意事項

  • データベース内の 1 つまたは複数のテーブルのみをバックアップする方法は?

     mysqldump -u root -p 数据库名 表名1 表名2 > /mytest.sql
    
  • 複数のデータベースを同時にバックアップする方法

    mysqldump -u root -p -B 数据库名1 数据库名2 ... > /mytest.sql
    
  • -Bデータベースのバックアップ時にパラメーターが存在しない場合、データベースの復元時に、空のデータベースを作成 (create) し、そのデータベースを使用 (use) してから、ソースを使用して復元する必要があります

おすすめ

転載: blog.csdn.net/whc18858/article/details/130122137