SQL - CREATE Table: データベースの基盤を築く
こんにちは、未来のデータベースの魔法使いたち!今日は、SQLの世界への興奮人心的な旅に出発します。特にCREATE TABLEステートメントに焦点を当てます。あなたの近所の親切なコンピュータサイエンスの先生として、データベース冒険の基盤となるこの基本的な概念をガイドします。では、仮想の硬帽をかぶり、始めましょう!
SQL CREATE TABLE ステートメント:基盤を築く
家を建てることを考えてみてください。絵をかけたり、家具を並べる前に、壁や部屋を建てる必要があります。データベースの世界では、テーブルを作成することはその部屋を建てることと同じです。すべてのデータが存在する場所なので、正しく行うことが重要です!
基本構文
まず、CREATE TABLEステートメントの基本構文を見てみましょう:
CREATE TABLE テーブル名 (
列1 データ型,
列2 データ型,
列3 データ型,
....
);
これを分解してみましょう:
-
CREATE TABLE
:これは私たちの魔法の杖で、SQLに新しいテーブルを作成したいと伝えます。 -
テーブル名
:ここであなたの創造力を発揮してください!意味のある名前を付けます。 - 括弧の中では、私たちは列とそのデータ型をリストアップします。
実世界の例
ペットショップのデータベースを構築しているとしましょう。販売中の犬の情報を保存するためのテーブルを作成したいです:
CREATE TABLE dogs (
id INT PRIMARY KEY,
name VARCHAR(50),
breed VARCHAR(50),
age INT,
price DECIMAL(10, 2)
);
これを分解してみましょう:
-
id INT PRIMARY KEY
:各犬にユニークな識別子を作成します。 -
name VARCHAR(50)
:50文字までの犬の名前を許可します。 -
breed VARCHAR(50)
:名前と同様に、50文字までの品種を許可します。 -
age INT
:年齢は整数で問題ありません。 -
price DECIMAL(10, 2)
:最大99,999,999.99の価格を許可します。
適切なデータ型を選ぶことは非常に重要です。これは家を建てる際に適切な砖を選ぶことと同じです!
制約の追加
次に、テーブルに規則を追加してみましょう。データベースの用語では、これを制約と呼びます:
CREATE TABLE dogs (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
breed VARCHAR(50) DEFAULT 'Mixed',
age INT CHECK (age >= 0),
price DECIMAL(10, 2) NOT NULL
);
ここで何が新しいか?
-
NOT NULL
:これらのフィールドには値が必要です。名前のない犬は許可されません! -
DEFAULT 'Mixed'
:品種が指定されていない場合、デフォルトで'Mixed'に設定されます。 -
CHECK (age >= 0)
:負の年齢を誤って入力しないようにします。
SQL CREATE TABLE IF NOT EXISTS:安全にプレイ
忘れっぽい建設者(私たち全員が経験していますよね!)を想像してみてください。同じ部屋を二度建ててしまうかもしれません。SQLでは、既に存在するテーブルを作成しようとするとエラーが発生します。しかし、心配しないでください!解決策があります:
CREATE TABLE IF NOT EXISTS cats (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
breed VARCHAR(50),
age INT,
price DECIMAL(10, 2)
);
IF NOT EXISTS
句は親切なリマインダーです。テーブルが既に存在する場合、SQLはコマンドを無視します。これは部屋に入る前にノックするのと同じです!
既存のテーブルからテーブルを作成:レプリケーションの芸術
時々、既存のテーブルに基づいて新しいテーブルを作成することがあります。これは一つの家の蓝图を使って別の家を建てるのと同じです。以下のようにします:
CREATE TABLE kittens AS
SELECT id, name, breed
FROM cats
WHERE age < 1;
これは新しいテーブルkittens
を作成し、cats
テーブルからid、name、breedの列を取得し、年齢が1未満のデータで埋めます。
別の例も見てみましょう:
CREATE TABLE dog_prices AS
SELECT breed, AVG(price) as avg_price
FROM dogs
GROUP BY breed;
これは新しいテーブルdog_prices
を作成し、各犬の品種ごとの平均価格を示します。
CREATE TABLE メソッドのまとめ
CREATE TABLEの異なる方法を整理したmarkdownテーブルでまとめます:
メソッド | 説明 | 例 |
---|---|---|
基本的なCREATE TABLE | 新しいテーブルを指定された列とデータ型で作成 | CREATE TABLE dogs (id INT, name VARCHAR(50)); |
制約付きCREATE TABLE | テーブル構造に規則を追加 | CREATE TABLE dogs (id INT PRIMARY KEY, name VARCHAR(50) NOT NULL); |
CREATE TABLE IF NOT EXISTS | テーブルが既に存在しない場合にのみ作成 | CREATE TABLE IF NOT EXISTS cats (id INT, name VARCHAR(50)); |
CREATE TABLE AS | SELECTステートメントの結果に基づいて新しいテーブルを作成 | CREATE TABLE kittens AS SELECT * FROM cats WHERE age < 1; |
そして、皆さん!私たちがデータベースの家の基盤を一緒に築いたのです。どんな建設プロジェクトでも、テーブルの作成には練習と計画が必要です。実験をし、間違えても構いません。それで私たちは学び、SQLスキルを向上させます。
このレッスンを終えるにあたり、ある生徒が曾经说过、SQLでテーブルを作成することはデジタルのレゴブロックで遊ぶのと同じだと言っていました。そして、それは正しかったのです!適切な場所に適切なピースを置くことで素晴らしいものを築くのです。
では、私たちのデータベース建築家の卵たち、テーブルを作成し始めてください。あなたのデータは新しい家を待っています!
Credits: Image by storyset