でデータベースを作成する方法 MySQL (作成 MySQL テーブル)

⚡ スマートサマリー

でのデータベースの作成 MySQL 実績のある 2 つの経路に従います: CREATE DATABASE ステートメントを実行するか、ER モデルから物理スキーマを生成します。 MySQL ワークベンチを用いたフォワードエンジニアリング。どちらのアプローチでも、同一の、すぐに本番環境で使用できるテーブルが生成されます。

  • 🗄️ データベースの作成: CREATE DATABASE ムービーを実行するか、CREATE SCHEMA を実行します。 MySQL 「扱う」を同義語として使用する。
  • 🛡️ 安全な再実行: 重複名エラーを発生させる代わりに、繰り返し実行されるスクリプトで作成をスキップするように、IF NOT EXISTS を追加します。
  • 🌐 キャラクターセット: 多言語データには、utf8mb4とutf8mb4_0900_ai_ciを選択してください。英語のみの従来のスキーマには、latin1とlatin1_swedish_ciが適しています。
  • 🧱 テーブル作成: CREATE TABLE文は、各フィールド名、データ型、PRIMARY KEY、およびストレージエンジン(通常はInnoDB)を定義します。
  • 🔢 データ型: 列の型は、数値型、テキスト型、日付または時刻型に分類され、さらにENUM型、SET型、BOOL型、バイナリ型といったバリエーションがあります。
  • ⚙️ フォワードエンジニアリング: MySQL Workbenchは、承認済みのERモデルを実行可能なSQLスクリプトに変換し、本番サーバーにコミットします。

データベースを作成する手順 MySQL

データベース MySQL テーブル、ビュー、および関連オブジェクトの名前付きコンテナです。作成方法は2つあります。

1) 単純な SQL クエリを実行する

2) フォワードエンジニアリングを活用することで、 MySQL ワークベンチ

As SQL初心者, まずはクエリメソッドを見てみましょう。

でデータベースを作成する方法 MySQL

データベースを作成する方法は次のとおりです。 MySQL:

CREATE DATABASE は、データベースを作成するために使用される SQL コマンドです。 MySQL.

「movies」という名前のデータベースを作成する必要があると想像してください。データベースは次のように作成できます。 MySQL 以下のSQLコマンドを実行することによって。

CREATE DATABASE movies;

注:CREATE DATABASEコマンドの代わりにCREATE SCHEMAコマンドを使用することもできます。

このステートメントは一度しか機能しません。再度実行するとエラーが発生するため、より多くのパラメータを追加してクエリを改善しましょう。

存在しない場合

シングル MySQL サーバーには複数のデータベースを保存できます。複数のユーザーが同じサーバーを共有している場合、既存のデータベースと同じ名前で新しいデータベースを作成しようとすると、エラーが発生する可能性があります。

存在しない場合 指示する MySQL サーバーは、データベースを作成する前に、同じ名前のデータベースがないか確認します。データベースは、名前が空いている場合にのみ作成されます。この句がない場合、 MySQL エラーがスローされます。

CREATE DATABASE IF NOT EXISTS movies;

データベース名が安全になったら、次にどうするか MySQL テキストを内部に保存して比較する必要があります。

照合順序と文字セット

A キャラクターセット 列に格納できる文字を決定しますが、 照合 は、 比較に使用されるルール そしてソート。どちらも、サーバー、データベース、テーブル、カラムの4つのレベルで定義できます。

選択する照合順序は文字セットによって異なります。たとえば、latin1 文字セットでは、 latin1_swedish_ci 照合順序とは、スウェーデン語の大文字小文字を区別しない順序のことです。

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET latin1 COLLATE latin1_swedish_ci;

アラビア語や中国語などの現地語の場合は、Unicodeを選択してください。 utf8mb4 文字セットには、絵文字を含むすべてのUnicode文字が格納されています。 MySQL 8.0、 utf8mb4 はデフォルトの文字セットで、 utf8mb4_0900_ai_ci デフォルトの照合順序。

CREATE DATABASE IF NOT EXISTS movies CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

すべての照合順序と文字セットのリストを見つけることができます こちら.

以下のSQLコマンドを実行すると、既存のデータベースの一覧を確認できます。

SHOW DATABASES;

データベースが構築できたので、実際にレコードを格納するテーブルを追加できます。

でテーブルを作成する方法 MySQL

CREATE TABLEコマンドは、データベース内にテーブルを作成するために使用されます。

テーブルの作成 MySQL

図に示すように、すべてのテーブルは 1 つのデータベースに属します。テーブルは、 テーブルを作成 次の構文を持つステートメント。

CREATE TABLE [IF NOT EXISTS] `TableName` (`fieldname` dataType [optional parameters]) ENGINE = storage Engine;

Pr_media

  • 「CREATE TABLE」は、データベース内にテーブルを作成する役割を担います。
  • 「[IF NOT EXISTS]」はオプションであり、一致するテーブル名が見つからない場合にのみテーブルを作成します。
  • 「`fieldName`」はフィールドの名前であり、「data Type」はそこに格納されるデータの性質を定義します。
  • 「[オプションパラメータ]」は、「AUTO_INCREMENT」や「NOT NULL」など、フィールドに関する追加情報です。
  • 「ストレージエンジン」は、通常はInnoDBであるテーブルを管理し、トランザクションと外部キーをサポートします。

MySQL テーブルの作成例

以下である MySQL データベースにテーブルを作成する例:

CREATE TABLE IF NOT EXISTS `MyFlixDB`.`Members` (
  `membership_number` INT AUTO_INCREMENT ,
  `full_names` VARCHAR(150) NOT NULL ,
  `gender` VARCHAR(6) ,
  `date_of_birth` DATE ,
  `physical_address` VARCHAR(255) ,
  `postal_address` VARCHAR(255) ,
  `contact_number` VARCHAR(75) ,
  `email` VARCHAR(255) ,
  PRIMARY KEY (`membership_number`) )
ENGINE = InnoDB;

注意: 正しい MySQL キーワードは AUTO_INCREMENT アンダースコア付き。 AUTOINCREMENT 属する SQLite 構文エラーが発生します MySQL.

各列にはデータ型が指定されているため、慎重に選択してください。想定されるデータの範囲を過小評価したり、過大評価したりしないようにしてください。

MySQL データ型

データ型は、テーブルの特定の列に格納できるデータの性質を定義します。

MySQL 持っています 3 データ型の主なカテゴリは以下のとおりです。

  1. 数値の
  2. テキスト
  3. 日付/時刻

数値データ型

数値データ型は、数値を格納するために使用されます。選択した数値データ型の下限値と上限値の範囲内にデータの範囲が収まっていることを確認することが非常に重要です。

TINYINT( ) -128~127ノーマル
0 ~ 255 符号なし。
SMALLINT( ) -32768~32767ノーマル
0 ~ 65535 符号なし。
ミディアムミント( ) -8388608~8388607ノーマル
0 ~ 16777215 符号なし。
INT( ) -2147483648~2147483647ノーマル
0 ~ 4294967295 符号なし。
BIGINT( ) -9223372036854775808~9223372036854775807ノーマル
0 ~ 18446744073709551615 符号なし。
FLOAT 浮動小数点を含む小さな概数。
DOUBLE( , ) 浮動小数点を含む大きな数値。
DECIMAL( , ) 文字列として格納されるDOUBLE型。小数点以下は固定されます。通貨値の格納に適しています。

テキストデータ型

データ型カテゴリ名が示すとおり、これらはテキスト値を格納するために使用されます。テキストデータの長さが列の最大長を超えないように常に注意してください。

CHAR( ) 0 ~ 255 文字の長さの固定セクション。
VARCHAR( ) 0 ~ 255 文字の長さの可変セクション。
小さなテキスト 最大長が 255 文字の文字列。
TEXT 最大長が 65535 文字の文字列。
BLOB 最大長が 65535 文字の文字列。
中文 最大長が 16777215 文字の文字列。
ミディアムブロブ 最大長が 16777215 文字の文字列。
長いテキスト 最大長が 4294967295 文字の文字列。
ロングブロブ 最大長が 4294967295 文字の文字列。

日付と時刻のデータ型

日付と時刻のデータ型は、カレンダーと時計の値を固定形式で格納するため、並べ替えや比較の信頼性が保たれます。

DATE YYYY-MM-DD
日付時刻 YYYY-MM-DD HH:MM:SS
タイムスタンプ YYYYMMDDHHMMSS
タイム HH:MM:SS

その他のデータ型

上記以外にも、いくつかのデータ型があります。 MySQL.

列挙型 定義済みのテキスト値のリストから選択したテキスト値を保存する
セット これは、事前定義されたテキスト値のリストから選択されたテキスト値を保存するためにも使用されます。 複数の値を持つことができます。
BOOL TINYINT(1) の同義語。ブール値の格納に使用されます。
BINARY CHAR型と似ていますが、違いはテキストがバイナリ形式で保存される点です。
ヴァービナリー VARCHARと似ていますが、テキストがバイナリ形式で保存される点が異なります。

それでは、すべてのデータ型を使用するテーブルを作成するクエリを見てみましょう。このクエリをよく調べて、以下のCREATE TABLE文で各データ型がどのように定義されているかを確認してください。 MySQL 例。

CREATE TABLE `all_data_types` (
    `varchar` VARCHAR( 20 )  ,
    `tinyint` TINYINT  ,
    `text` TEXT  ,
    `date` DATE  ,
    `smallint` SMALLINT  ,
    `mediumint` MEDIUMINT  ,
    `int` INT  ,
    `bigint` BIGINT  ,
    `float` FLOAT( 10, 2 )  ,
    `double` DOUBLE  ,
    `decimal` DECIMAL( 10, 2 )  ,
    `datetime` DATETIME  ,
    `timestamp` TIMESTAMP  ,
    `time` TIME  ,
    `year` YEAR  ,
    `char` CHAR( 10 )  ,
    `tinyblob` TINYBLOB  ,
    `tinytext` TINYTEXT  ,
    `blob` BLOB  ,
    `mediumblob` MEDIUMBLOB  ,
    `mediumtext` MEDIUMTEXT  ,
    `longblob` LONGBLOB  ,
    `longtext` LONGTEXT  ,
    `enum` ENUM( '1', '2', '3' )  ,
    `set` SET( '1', '2', '3' )  ,
    `bool` BOOL  ,
    `binary` BINARY( 20 )  ,
    `varbinary` VARBINARY( 20 )
) ENGINE = MYISAM;

作成のベストプラクティス MySQL データベース

スクリプトの可読性を保つためのいくつかのルール:

  • SQLキーワードには大文字を使用してください。例:「DROP SCHEMA IF EXISTS `MyFlixDB`;」
  • すべてのSQLコマンドの末尾にセミコロンを付けてください。
  • スキーマ名、テーブル名、フィールド名にはスペースを使用しないでください。代わりにアンダースコアを使用して、スキーマ名、テーブル名、フィールド名を区切ってください。
  • 新規テーブルの作成には、MyISAMよりもInnoDBを推奨します。InnoDBはトランザクション、行レベルロック、外部キーをサポートしているためです。

クエリ方法は完成しました。2つ目の方法は、手書きのSQLではなく、ビジュアルモデルから同じデータベースにアクセスする方法です。

作り方 MySQL ワークベンチER図フォワードエンジニアリング

MySQL ワークベンチ フォワードエンジニアリングをサポートするユーティリティがあります。 フォワードエンジニアリング は、 論理モデルを物理実装に自動的に変換する.

作成しました ER図 私たちの中で ERモデリング レッスン。これから、そのERモデルを使って、データベースを作成するSQLスクリプトを生成します。

MyFlix ER モデルから MyFlix データベースを作成する

ステップ1)MyFlixデータベースのERモデルを開きます 以前に作成したもの。

ステップ2) フォワードエンジニアの選択

データベースメニューをクリックし、「フォワードエンジニア」を選択してください。

フォワードエンジニアを選択してください MySQL ワークベンチ

ステップ3)接続オプション

次のウィンドウでは、 MySQL サーバー。保存済みの接続ドロップダウンリストをクリックし、「ローカルホスト」を選択します。「実行」をクリックします。

フォワードエンジニアウィザードの接続オプション

ステップ4)以下のオプションを選択してください

表示されるウィザードで、以下のオプションを選択してください。「次へ」をクリックします。

MyFlixデータベースのフォワードエンジニアリングオプション

ステップ5)選択内容をデフォルトのままにして「次へ」をクリックします。

次の画面には、EER図のオブジェクトの概要が表示されます。MyFlix DBには5つのテーブルがあります。選択はデフォルトのままにして、「次へ」をクリックしてください。

MyFlix EER図におけるオブジェクトの概要

ステップ6) RevSQLスクリプトを表示する

下のウィンドウには、データベースを作成するSQLスクリプトのプレビューが表示されます。スクリプトを*.sqlファイルとして保存するか、クリップボードにコピーしてから、「次へ」をクリックしてください。

生成されたSQLスクリプトのプレビュー

ステップ7)進捗状況を確認する

選択したデータベースが作成されると、以下のウィンドウが表示されます。 MySQL サーバーインスタンス。ERモデルのテーブルが、サーバー上に物理的に存在するようになりました。

フォワードエンジニアリングのコミット進捗ウィンドウ

ダミーデータを含むデータベースが添付されています。このデータベースは以降のレッスンで使用します。インポートするだけで使用できます。 MySQL まずはワークベンチから始めましょう。

MyFlixDBをダウンロードするにはここをクリックしてください

よくあるご質問

違いはありません MySQL. CREATE SCHEMA は CREATE DATABASE のエイリアスであり、どちらも同じオブジェクトを作成します。他のシステムでは、 Oracleスキーマとデータベースは、依然として別々の概念である。

クライアントまたは MySQL ワークベンチこのコマンドはデータベースとその中のすべてのテーブルを完全に削除するため、事前にバックアップを取ってください。

アカウントにはグローバルレベルでのCREATE権限が必要です。管理者はGRANT CREATE ON *.* TO 'user'@'localhost';コマンドでこの権限を付与します。この権限がない場合、サーバーはアクセス拒否エラーを返します。

はい。AIアシスタントは、エンティティの簡単な説明を、キーとデータ型を含むCREATE TABLEスクリプトに変換します。本番サーバーでスクリプトを実行する前に、生成された型、長さ、制約を必ず確認してください。

最新のデータベースクライアントのAI機能は、 ER図 または、履歴を照会して、正規化の修正、インデックス候補、データ型の修正を提案します。これらの提案により設計レビューが迅速化されますが、すべての変更は人間の承認が必要です。