Howen

HOWEN

MySQL基本コマンド

⚠️この記事は MySQL 8.0.X バージョンに適用されます。
MySQL がインストールされているかどうかを確認するには、コマンドmysql --versionを使用してください。

MySQL データベースへのログイン#

コマンドmysql -h localhost -u root -pを使用してログインします。
以下のようになります:

  • -uの後には MySQL のユーザー名を入力します。
  • -pはパスワードを入力することを意味します。注意:-pの後にはスペースはありません。パスワードを入力しない場合、Enter キーを押すとパスワードの入力を求められます。
  • -hパラメータを使用して、接続したい MySQL サーバーが localhost にあることを指定します。MySQL サーバーが異なるホストやリモートサーバーにある場合は、localhost をそのサーバーのホスト名または IP アドレスに置き換えることができます。

MySQL データベースのバックアップとリストア#

データベースのバックアップ#

mysqldumpツールを使用してデータベースをバックアップします。基本的な構文は次のとおりです。

mysqldump -u [username] -p[password] [database_name] > [backup_file.sql]
  • [username]:MySQL のユーザー名です。
  • [password]:MySQL のパスワードです。ここでの-pとパスワードの間にはスペースはありません。
  • [database_name]:バックアップしたいデータベースの名前です。
  • [backup_file.sql]:バックアップファイルの名前です。

例:mysqldump -u root -p123456 mydatabase > mydatabase_backup.sql

上記のコマンドは、mydatabaseデータベースをmydatabase_backup.sqlファイルにバックアップします。

データベースのリストア#

例:
mysql -u root -p123456 mydatabase < mydatabase_backup.sql

上記のコマンドは、mydatabase_backup.sqlファイルのデータをmydatabaseデータベースにリストアします。
注意:データベースをリストアする際は、データベースが既に存在している必要があります。まだ作成されていない場合は、まずデータベースを作成する必要があります。

データベースの作成と表示#

データベースの作成#

MySQL では、CREATE DATABASEステートメントを使用して新しいデータベースを作成できます。たとえば、名前が「my_database」のデータベースを作成するには、次のコマンドを使用します:
CREATE DATABASE my_database;

データベースの表示#

すべてのデータベースを表示するには、SHOW DATABASESコマンドを使用します:
SHOW DATABASES;
特定のデータベースを表示するには、まずUSEコマンドを使用してデータベースを選択し、次にSHOW TABLESコマンドを使用してそのデータベース内のすべてのテーブルを表示します:

USE my_database;
SHOW TABLES;

テーブルの作成、表示、削除#

テーブルの作成#

CREATE TABLEステートメントを使用して新しいテーブルを作成します。たとえば、「my_database」というデータベース内に「my_table」という名前のテーブルを作成するには、次のコマンドを使用します:

USE my_database;
CREATE TABLE my_table (
    id INT AUTO_INCREMENT,
    name VARCHAR(100),
    age INT,
    PRIMARY KEY (id)
);

テーブルの表示#

テーブルの構造を表示するには、DESCRIBEまたはDESCコマンドを使用します:

DESCRIBE my_table;

テーブルの削除#

DROPステートメントを使用します(テーブルの構造は保持されません):

DROP TABLE table_name;

DELETEステートメントを使用します:

DELETE FROM table_name;

TRUNCATEステートメントを使用します:

TRUNCATE TABLE table_name;

ここでのtable_nameは、データを削除するテーブルの名前です。これらの 2 つのコマンドは同じ効果があり、テーブル内のすべてのデータを削除し、テーブルの構造を保持します。ただし、TRUNCATEは通常よりも速く、テーブルのAUTO_INCREMENTカウンターをリセットします。大量のデータを削除する場合は、TRUNCATEがより良い選択肢です。

制約は、テーブルで許可されるデータを規定するために使用されます。テーブルの作成または変更中に、各列に制約を追加できます。以下は、MySQL で一般的な制約のいくつかです:

MySQL の制約#

PRIMARY KEY(主キー)#

  • 列レベルの主キー制約
    テーブルの列を定義する際に、列を直接主キーとして定義します:

    CREATE TABLE Persons (
        ID int NOT NULL PRIMARY KEY,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int
    );
    
  • テーブルレベルの主キー制約
    すべての列の定義の後、列または複数の列を主キーとして定義します:

    CREATE TABLE Persons (
        ID int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int,
        PRIMARY KEY (ID)
    );
    

    複合主キー(2 つ以上の列で構成される主キー)を作成する場合は、テーブルレベルでのみ定義できます:

    CREATE TABLE Persons (
        ID int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int,
        PRIMARY KEY (ID, LastName)
    );
    

UNIQUE#

ユニーク制約は、特定の列の各行に一意の値があることを保証します。

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL UNIQUE,
    FirstName varchar(255),
    Age int
);

NOT NULL#

NOT NULL 制約は、特定の列に NULL 値を持たせないようにします。

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

FOREIGN KEY(外部キー)#

外部キー制約は、2 つのテーブル間のリンクを壊さないために使用されます。

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(ID)
);

MySQL の CRUD 操作、グループ化と集計関数#

SQL 操作#

テーブルの作成#

CREATE TABLE table_name (
 column1 datatype,
 column2 datatype,
 column3 datatype
);

CREATE TABLEステートメントは、データベース内に新しいテーブルを作成します。テーブルの名前と各列の名前を指定することができます。

データの挿入#

  • 直接挿入

    INSERT INTO table_name
    VALUES (value1, value2);
    
  • 列を指定して挿入

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES (value1, value2, value3, ...);
    
  • 複数のデータを同時に挿入

    INSERT INTO table_name (column1, column2, column3, ...)
    VALUES 
    (value1, value2, value3, ...),
    (value4, value5, value6, ...),
    (value7, value8, value9, ...);
    

MySQL のテーブル構造の変更#

MySQL では、既存のテーブル構造を変更するためにALTER TABLEコマンドを使用します。以下は一般的なALTER TABLEコマンドのいくつかです:

  • 列の追加

    ALTER TABLE table_name
    ADD column_name datatype;
    
  • 列の削除

    ALTER TABLE table_name
    DROP COLUMN column_name;
    
  • 列の型の変更

    ALTER TABLE table_name
    MODIFY COLUMN column_name datatype;
    
  • 列の名前の変更

    ALTER TABLE table_name
    CHANGE COLUMN old_column_name new_column_name datatype;
    
  • 主キーの追加

    ALTER TABLE table_name
    ADD PRIMARY KEY (column_name);
    
  • 主キーの削除

    ALTER TABLE table_name
    DROP PRIMARY KEY;
    
  • インデックスの追加

    ALTER TABLE table_name
    ADD INDEX index_name (column_name);
    
  • インデックスの削除

    ALTER TABLE table_name
    DROP INDEX index_name;
    
  • テーブルの名前の変更

    ALTER TABLE old_table_name
    RENAME TO new_table_name;
    

レコードの削除#

DELETE FROM table_name
WHERE some_column = some_value;

DELETEステートメントは、テーブルからレコード(行)を削除するために使用されます。WHERE句は、削除するレコードまたはレコードを指定します。WHERE句を省略すると、すべてのレコードが削除されます。

レコードの更新#

UPDATE table_name
SET column1 = value1, column2 = value2
WHERE some_column = some_value;

UPDATEステートメントは、テーブル内のレコード(行)を編集するために使用されます。SET句は、編集する列を指定し、WHERE句はレコードを指定します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。