こんにちは
エンジニア冒険家こと、でじ冒です!
前回は「SQL」について説明しました。今回からSQLの各コマンドについて解説していきます。
本日は「CREATEコマンド」についての記事を書きました。ぜひご覧ください。
今回の記事は次のような方にオススメ!
- CREATE文ってなに?
- データベースでテーブルを作りたい
- 構文はわかるが、制約などの詳細設定がわからない
CREATE文の構文と使用方法
CREATE文を使用するにあたっての重要なポイントと、使用方法を解説します。
CREATE文とは
CREATE文は、データベース内に新しいテーブルを作成するためのSQL文です。
テーブルの構造を定義し、カラムのデータ型や制約を指定することができます。CREATE文を使用することで、データベース内でデータを保持するためのテーブルを作成することができます。
テーブルの構造を定義することで、データの組織化や効率的な操作ができます。CREATE文の正確な使用は、データベースの機能とパフォーマンスに欠かせない重要な役割があります。
CREATE構文
CREATE TABLE テーブル名;
下記は、users
テーブルを作成しています。
SQL
CREATE TABLE users;
カラムとは
カラムは、データベースのテーブル内の「列」を指します。
テーブルは表のような形をしており、カラムはその表の縦の列です。各カラムには、データの種類に応じたデータ型(例えば、文字列型や数値型)が指定されます。
データ型はこのあと説明するよ!
一方、よく一緒の意味にとらえられるワードとして「項目名」があります。項目名は、各カラムに与えられる識別名です。項目名は、そのカラムが表すデータの内容や意味を表すために使用されます。
例えば、学生のテーブルを考えると、“名前”という項目名を持つカラムには学生の名前が格納されます。“年齢”という項目名を持つカラムには学生の年齢が格納されます。このように、項目名とカラムは対応しており、それぞれのカラムが特定の項目(データ)を表現しています。
カラム=項目名のように聞こえるけど、明確には意味は違うよ!
- カラム:テーブル内の列であり、データを格納する場所を提供
- 項目名:各カラムを識別し、そのカラムが表すデータの内容や意味を示すための名前
カラムと項目名は実際は別物です。しかし、場合によってはカラム=項目名のニュアンスで使われることもあります。ご注意を!
データ型とは
データ型は、データベース内で扱われるデータの種類や形式を定義するための仕組みです。
データ型は、データの表現方法や保存方法、操作可能な演算子などを決定します。SQLでは、さまざまなデータ型があり、それぞれ異なる種類のデータを格納するために使用されます。
以下は一般的なSQLのデータ型です。
- 文字列型 (String):
文字やテキストデータを格納するためのデータ型 例: VARCHAR、CHAR - 数値型 (Numeric):
数値データを格納するためのデータ型 例: INTEGER、DECIMAL、FLOAT - 日付/時間型 (Date/Time):
日付や時間の情報を格納するためのデータ型 例: DATE、TIME - 真偽型 (Boolean):
真偽値 (true/false) を格納するためのデータ型 例: BOOLEAN - 二進数型 (Binary):
バイナリデータを格納するためのデータ型 例: BLOB、VARBINARY - 列挙型 (Enum):
事前に定義された値の中から1つを選択して格納するためのデータ型 例: ENUM
データ型は、データベース内でのデータの正確な表現と操作を可能にし、データの整合性と効率的な処理をします。データ型の選択はデータベース設計の重要な要素であり、データに合わせて適切なデータ型を選ぶことが重要です。
※バイナリーデータ:コンピュータが扱う情報やデータを0と1の二進数で表現した形式のこと。キストや画像、音声、ビデオなど、さまざまな形式の情報を表現するために使用される。
制約とは
制約とは、テーブル内のデータに対して適用されるルールや条件のことです。
データの整合性を確保し、望ましくないデータの挿入や更新を防止するために使用されます。
以下は一般的な制約の例です。
- プライマリキー制約 :
テーブル内の特定のカラム(列)を一意に識別するための制約です。プライマリキーは重複のない値で、NULL値を含むことはありません。 - 外部キー制約 :
テーブル間の関連性を定義するための制約です。外部キーは他のテーブルのプライマリキーと関連付けられ、データの整合性を保つために使用されます。 - ユニーク制約 :
特定のカラムに一意の値を持たせるための制約です。ユニーク制約を持つカラムには重複した値を挿入できません。 - NOT NULL制約 :
カラムにNULL値が許可されないことを指定する制約です。NOT NULL制約を持つカラムには必ず値が入力される必要があります。 - デフォルト制約 :
カラムにデフォルト値を指定するための制約です。データが挿入されなかった場合に、デフォルト値が代わりに設定されます。
これらの制約は、データの整合性や制御を強化するために使われます。CREATE文を使ってテーブルを作成する際に、これらの制約を適切に定義することで、正確で信頼性の高いデータベースを構築することができます。
デフォルト値とは
デフォルト値は、新しいテーブルのカラムに対して、データが挿入されなかった場合に設定される既定の値を指定するものです。
NULL値の代わりにそのカラムに設定されます。
カラムを作成する際に指定することができます。例えば、下記のようなCREATE文を考えてみましょう。
SQL
CREATE TABLE users (
id INT PRIMARY KEY,
age INT DEFAULT 18
);
上記の例で、age
というカラムにデフォルト値として18が設定されています。したがって、新しい行がage
の値を指定せずに挿入される場合、その行のage
カラムには自動的に18が入力されます。
デフォルト値は、データの欠落や不完全なデータの挿入を防ぐために役立ちます。また、データベースの操作を簡単にし、データの一貫性を確保するのに役立ちます。
デフォルト制約はデフォルト値を設定するためのルールや制約であり、デフォルト値は実際の値そのものを指す。別物だよ!
CREATE文の使用方法
今までの内容をふまえて、CREATE文 使用方法のまとめです。
下記の例では、users
という名前の新しいテーブルを作成しています。テーブルには3つのカラムが定義されています。
SQL
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 0
);
id
カラムは整数型 (INT
) で、主キー (PRIMARY KEY
) 制約が設定されています。主キー制約はユニークな値であり、各行を一意に識別するために使用されます。name
カラムは長さ50の文字列型 (VARCHAR(50)
) で、NOT NULL
制約が設定されています。NOT NULL
制約はこのカラムが必ず値を持つことを要求します。age
カラムは整数型 (INT
) で、デフォルト値 (DEFAULT
) として0が設定されています。デフォルト値は、新しい行が挿入される際に値が指定されなかった場合に使用される初期値です。
プライマリキーと外部キーの関係性
プライマリキーと外部キーは、データベースのテーブル同士を結びつけるための特別なキーです。プライマリキーは各行を一意に識別するためのキーであり、外部キーは別のテーブルのプライマリキーを参照して関連付けます。
例えば、上記のようなユーザーと注文という2つのテーブルがあるとします。ユーザーテーブルにはユーザーの情報があり、注文テーブルには注文の情報があります。この場合、ユーザーテーブルの主キー(通常はID)がプライマリキーとなります。
そして、注文テーブルにおいてユーザーと注文を関連付けるために、ユーザーテーブルのプライマリキーを外部キーとして参照します。これにより、注文テーブルにおいてどのユーザーに対する注文なのかが明確になります。
プライマリキーと外部キーの関係性を使用することで、複数のテーブル間でデータを関連付けることができ、データの整合性と一貫性を保つことができます。これにより、データベースの正確性と信頼性が向上します。
インデックスの作成と使用方法
インデックスとは
インデックスはデータベース内の情報を整理し、効率的に検索するための仕組みです。データベースが大きくなると、インデックスを使うことで情報の検索が早くなります。
例えば、あなたが本の中に特定のページを見つけたいとします。本の最初から順番にページをめくると、目的のページにたどり着くまで時間がかかりますよね?でも、目次があれば、目的のページの番号を見て直接そこに飛ぶことができます。
データベースも同じです。データベースは大量の情報が入っている本のようなものです。インデックスはそのデータベースの目次のようなものです。インデックスを使うと、目的の情報をすばやく見つけることができます。
インデックスの使用方法
下記の例では、studentsテーブルの name 列に対してインデックス化されます。
SQL
CREATE INDEX idx_name ON students (name);
おわりに
このブログでは、SQLのCREATE文を使用して、データベース内に新しいテーブルを作成する方法を詳しく解説しました。テーブルの作成はデータベースの基礎的な操作であり、データの構造を定義する重要なステップです。
ただし、データベースシステムによってサポートされるデータ型、制約の種類、デフォルト値の指定方法は異なる場合がありますので、使用しているデータベースシステムのドキュメントや仕様を参照して正確な構文を再度確認してください。
SQLのCREATE文の基礎をマスターすることで、データベース操作の幅が広がり、より高度なデータベースの開発や管理にも取り組めるようになるでしょう。
コメント