[MySQL 初心者シリーズ 2]: MySQL の開始方法 - データベースとデータ テーブルの操作を説明します。

MySQL を学び始めたばかりの初心者の場合、この記事では、すぐに使い始めるのに役立つ実践的な入門知識とスキルを提供します。
[MySQL 初心者シリーズ 1]: MySQL の入門方法を説明します。mysql
のインストールについては以前に説明しました。この記事では、Windows を例として、MySQL データベースとデータ テーブルの操作 (追加、削除、変更とクエリ)。

1。概要

MySQL のインストールが完了したら、次のステップはデータベースを作成し、データ テーブルを作成することです。

2、MySQLデータベースの操作

MySQL をインストールすると、データベース関連の操作を実行できるようになりますが、現時点では独自に使用するデータベースがないため、最初に独自の新しいデータベースを作成する必要があります。

2.1 データベースを作成する

文法:

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];

構文は次のように説明されます。

1. <データベース名>: 作成するデータベースの名前 (数字で始めることはできません)
2. IF NOT EXISTS: データベースを作成する前に判断し、データベースが存在しない場合にのみ作成ステートメントを実行します。
3. [デフォルト] CHARACTER SET: データベースの文字セットを指定します。データベースに格納されるデータの文字化けを回避することが目的です。
4. [デフォルト] COLLATE: 文字セットのデフォルトの照合規則を指定します。

例を見てみましょう。今、本屋があります。本関連の情報を保存するには、新しいデータベースを作成し、「bookstore」という名前を付けます。

CREATE DATABASE IF NOT EXISTS bookstore
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;

一部のプロパティを設定したくない場合は、次の簡単なステートメントを直接使用できます。

CREATE DATABASE bookstore;

見るとき

“Query OK, 1 row affected (0.32 sec);”

プロンプト内の「Query OK」はコマンドが正常に実行されたことを意味し、「0.32 秒」は実行時間を意味します。

2.2 すべてのデータベースを表示する

実用的な文法

SHOW DATABASES [LIKE 'データベース名'];

例:
ここに画像の説明を挿入
1 つ目は作成したばかりの書店です

2.3 データベースを変更する

  • 文法:
ALTER DATABASE [数据库名] { 
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}

以下は、exampleDB という名前のデータベースのデフォルトの文字セットと照合規則を変更するための SQL ステートメントの例です。

ALTER DATABASE exampleDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

この SQL ステートメントは、データベース内の元のデータを保持しながら、exampleDB のデフォルトの文字セットと照合規則を utf8mb4 および utf8mb4_unicode_ci に変更します。

  • データベースの名前を変更することもできます。
ALTER DATABASE exampleDB RENAME TO newDBName;

exampleDB という名前のデータベースを newDBName という名前に変更します。データベース名を変更するプロセス中は、データベースへのすべての接続を閉じる必要があることに注意してください。閉じないとエラーが報告されます。

2.4 データベースを削除する

  • 文法
DROP DATABASE [ IF EXISTS ] <数据库名>

ここで、database_name は削除するデータベースの名前を表します。IF EXISTS が指定されている場合、存在しないデータベースを削除するとき、エラーは報告されず、サイレントに返されます。

3. MySQL データテーブルの操作

データテーブルはデータベースの重要な部分であり、上で新しいデータベースを作成する方法を紹介しました。テーブル関連の操作を以下に説明します。

3.1 テーブルの作成方法を学ぶ

  • 文法
CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];

CREATE TABLE table_name (
    column1 datatype [constraint],
    column2 datatype [constraint],
    column3 datatype [constraint],
    ...
    PRIMARY KEY (one or more columns)
);

ここで、 table_name は作成されるテーブルの名前を表します。column1、column2、column3 などはテーブル内の列名を表し、datatype は列のデータ型を表します。制約を設定する必要がない場合は、[constraint] を省略できます。PRIMARY KEY はテーブル内の主キーを指定するために使用され、テーブル内のデータの一意性を確保するために 1 つ以上の列を主キーとして設定する必要がある場合があります。

  • 例:
    書籍番号、書籍名、著者、価格を含む、「books」という名前の新しいデータ テーブルを作成します。
CREATE TABLE books(
  id INT(11) NOT NULL AUTO_INCREMENT,
  title VARCHAR(255) DEFAULT NULL,
  author VARCHAR(255) DEFAULT NULL,
  price DECIMAL(10,2) DEFAULT NULL,
  PRIMARY KEY(id)
);

3.2 テーブルを削除する方法を学ぶ

  • 文法
DROP TABLE [IF EXISTS] table_name;

ここで、 table_name は削除するテーブルの名前を表します。IF EXISTS が指定されている場合、存在しないテーブルを削除するとき、エラーは報告されず、サイレントに返されます。

  • 例えば:
删除名为 users 的数据库表
DROP TABLE users;

この SQL ステートメントは、users という名前のデータベース テーブルとその中のすべてのデータを削除します。

3.3 テーブル構造を変更する方法を学ぶ

  • 文法
ALTER TABLE <表名> [修改选项]ALTER TABLE table_name 
    ADD [COLUMN] column_name data_type [NULL | NOT NULL] [DEFAULT default_value] [AFTER | FIRST column_name],
    DROP [COLUMN] column_name,
    MODIFY [COLUMN] column_name new_data_type [NULL | NOT NULL] [DEFAULT default_value] [FIRST | AFTER column_name],
    RENAME [COLUMN] old_column_name TO new_column_name,
    RENAME TO new_table_name;

パラメータは多数あり、ADD では新しい列を追加でき、DROP では既存の列を削除でき、MODIFY では既存の列のデータ型やその他の属性を変更でき、RENAME では既存の列またはテーブル全体の名前を変更できます。

  • 例えば:
添加一个新列 age 到一个名为 users 的表中
ALTER TABLE users ADD COLUMN age INT(11) AFTER email;
删除一个名为 age 的列
ALTER TABLE users DROP COLUMN age;
修改一个名为 username 的列的数据类型和默认值
ALTER TABLE users MODIFY COLUMN username VARCHAR(100) NOT NULL DEFAULT 'anonymous' AFTER id;
将一个名为 name 的列重命名为 full_name
ALTER TABLE users RENAME COLUMN name TO full_name;
将一个名为 users 的表重命名为新名称 customers
ALTER TABLE users RENAME TO customers;

3.4 データ型の概要と、DATE、TIME、DATETIME、TIMESTAMP などの時間データ型の使用

SQL には、数値型、文字型、日時型など、さまざまなデータ型があります。いくつかの一般的なデータ型について以下に簡単に説明します。

  • INT/ INTEGER: 整数型
  • VARCHAR: 可変長文字列型
  • CHAR:固定長文字列型
  • TEXT: 文字列型
  • DECIMAL/ NUMERIC: 固定小数点数型
  • FLOAT/ DOUBLE: 浮動小数点型
  • DATE: 日付タイプ、日付に対してのみ正確です
  • TIME: 時間タイプ、時、分、秒までのみ正確です
  • DATETIME: 日付時刻タイプ、ミリ秒まで正確
  • TIMESTAMP: タイムスタンプタイプ、秒まで正確

以下は、さまざまな時間データ型を使用したサンプル SQL ステートメントです。

  • DATE日付データを保存するに

    CREATE TABLE sales (
        id INT(11) NOT NULL AUTO_INCREMENT,
        customer_id INT(11) NOT NULL,
        order_date DATE NOT NULL,
        total_amount DECIMAL(10,2) NOT NULL,
        PRIMARY KEY (id)
    );
    

    order_date列はDATEタイプとして指定されているため、時間ではなく日付のみが正確です。

  • TIME時刻データを保存するには

    CREATE TABLE employees (
        id INT(11) NOT NULL AUTO_INCREMENT,
        name VARCHAR(50) NOT NULL,
        start_time TIME NOT NULL,
        PRIMARY KEY (id)
    );
    

    start_time 列被指定为TIME` 型なので、正確なのは時、分、秒のみであり、日付は含まれません。

  • 次を使用してDATETIME日時データを保存します

    CREATE TABLE log (
        id INT(11) NOT NULL AUTO_INCREMENT,
        access_time DATETIME NOT NULL,
        user_id INT(11) NOT NULL,
        PRIMARY KEY (id)
    );
    

    access_time 列被指定为DATETIME` 型なので、ミリ秒単位の正確な日付と時間が含まれます。

  • タイムスタンプ付きTIMESTAMPデータを保存するには、

    CREATE TABLE bookings (
        id INT(11) NOT NULL AUTO_INCREMENT,
        checkin_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
        checkout_time TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01',
        room_id INT(11) NOT NULL,
        PRIMARY KEY (id)
    );
    

    checkin_time checkout_time 列都被指定为TIMESTAMP 类型,因此它们包括日期和时间,精确到秒。其中,checkin_time 的默认值被设置为当前时间戳,checkout_time 的默认值被设置为'1970-01-01 00:00:01'`、最小タイムスタンプ値を表します。

DATETIMEデータベース管理システムが異なると、との違いなど、時間データ型が異なる場合があることに注意してくださいTIMESTAMPまた、タイムゾーンやうるう秒などの扱いにも注意が必要です。実際に使用する場合は、関連するドキュメントや規格を参照し、ベスト プラクティスに従うことをお勧めします。

3.5 SQL 制約を使用してデータの整合性を保護する方法

SQL では、制約 (Constraint) を使用して、テーブル内のデータの整合性を制限または保護できます。これらの制約には、列レベルの制約とテーブル レベルの制約が含まれます。

列レベルの制約は、NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY 制約など、個々の列に対する制約です。テーブルレベルの制約は、CHECK 制約など、複数の列に対する制約です。

ここでは、いくつかの一般的な SQL 制約と、データの整合性を保護するためにそれらがどのように使用されるかを示します。

  • NOT NULL制約: 列の値が null でないことを保証するために使用されます。

    CREATE TABLE Users (
        ID INT NOT NULL,
        FirstName VARCHAR(50) NOT NULL,
        LastName VARCHAR(50) NOT NULL,
        Email VARCHAR(100) NOT NULL,
        CONSTRAINT PK_Users PRIMARY KEY (ID)
    );
    

    IDFirstNameLastNameおよびEmail列はすべて、NOT NULLこれらの列の値が null にならないように設定されています。

  • UNIQUE制約: 列内の値が一意であることを保証するために使用されます。

    CREATE TABLE Products (
        ID INT NOT NULL,
        Name VARCHAR(100) NOT NULL,
        Description TEXT,
        SKU VARCHAR(50) UNIQUE,
        CONSTRAINT PK_Products PRIMARY KEY (ID)
    );
    

    SKU列は、UNIQUE各製品に一意の SKU 番号が割り当てられるように設定されています。

  • PRIMARY KEY制約: 1 つ以上の列がテーブルの主キーであることを指定し、各行が一意の識別子を持つようにするために使用されます。

    CREATE TABLE Orders (
        ID INT PRIMARY KEY,
        CustomerID INT NOT NULL,
        OrderDate DATETIME DEFAULT NULL,
        CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES Customers(ID)
    );
    

    ID列は、PRIMARY KEY各注文が一意の識別子を持つように設定されます。

  • FOREIGN KEY制約: 列の値が別のテーブルの列の値と一致することを確認するために使用されます。

    CREATE TABLE OrderDetails (
        ID INT PRIMARY KEY,
        OrderID INT NOT NULL,
        ProductID INT NOT NULL,
        Quantity INT NOT NULL,
        CONSTRAINT FK_OrderDetails_Orders FOREIGN KEY (OrderID) REFERENCES Orders(ID),
        CONSTRAINT FK_OrderDetails_Products FOREIGN KEY (ProductID) REFERENCES Products(ID)
    );
    

    OrderID ProductID 列都被设置为FOREIGN KEY` を使用して、注文の詳細行が注文テーブルと製品テーブルの正しい行と一致することを確認します。

  • CHECK制約: 列の値が特定の条件を満たしていることを確認するために使用されます。

    CREATE TABLE Employees (
        ID INT PRIMARY KEY,
        FirstName VARCHAR(50) NOT NULL,
        LastName VARCHAR(50) NOT NULL,
        HireDate DATE,
        Salary DECIMAL(10,2) NOT NULL,
        CONSTRAINT CK_Employees_Salary CHECK (Salary > 0)
    );
    

    列被设置为各従業員の給与が 0 より大きいことを確認するためのSalary CHECK` 制約。

制約を使用すると、SQL 内のデータの整合性と有効性を保護できます。テーブルにデータを挿入または更新しようとするときに、制約に違反すると、SQL によってエラーがスローされ、トランザクションはコミットされません。

3.6 テーブルのバックアップとリカバリ

SQL では、バックアップおよび復元機能を使用して、データベース内のデータを保存および復元できます。

MySQL データベースにはバックアップおよびリカバリ機能も用意されており、mysqldumpコマンドを使用してバックアップし、mysqlコマンドを使用して復元できます。以下は、MySQL データベース テーブルをバックアップおよび復元するための構文と例です。

  • MySQL テーブルをバックアップする

    /*备份整个数据库*/ 
    mysqldump -u root -p database_name > backup_file.sql 
    
    /*备份单个表结构和数据*/
    mysqldump -u root -p database_name table_name > backup_file.sql 
    
    /*备份单个表结构*/
    mysqldump -u root -p -d database_name table_name > backup_file.sql 
    

    バックアップ コマンドを実行する場合、-uMySQL データベースにログインするためのユーザー名、-pパスワード入力時のプロンプト、database_nameバックアップするデータベースの名前、およびtable_nameバックアップするデータベース テーブルの名前が表示されます。 。バックアップファイルはbackup_file.sql自分で決めることができ、ファイルの保存ディレクトリも同時に指定できます。

  • mysqlテーブルを復元する

    /*从备份文件中还原整个数据库*/ 
    mysql -u root -p database_name < backup_file.sql 
    
    /*从备份文件中还原单个表结构和数据*/
    mysql -u root -p database_name < backup_file.sql 
    
    /*从备份文件中还原单个表结构*/
    mysql -u root -p database_name < backup_file.sql 
    

    復元コマンドの構文はバックアップ コマンドの構文とほぼ同じですが、唯一の違いは、バックアップ ファイルがテーブルを復元するための標準入力として使用されることです。復元操作を実行するときは、現在のデータベース テーブルとバックアップ ファイルのテーブル名と構造が一貫していることを確認する必要があります。

MySQL のバックアップおよびリカバリのコマンドは通常、管理者権限が必要で実行に時間がかかり、同時にバックアップ ファイルのセキュリティと管理についても考慮する必要があることに注意してください。実際には、バックアップとリカバリの戦略を慎重に検討し、関連するデータベースのセキュリティとベスト プラクティスに従う必要があります。

おすすめ

転載: blog.csdn.net/fumeidonga/article/details/131144607