テーブルの作成 CREATE TABLE

テーブルの作成はCREATE TABLE テーブル名 ( );で、括弧内には追加したいカラムを入れます。
カラムは、カラム データの型,をセットで並べます。
NOT NULLなどの制約がある場合は、その後に追加します。

CREATE TABLE テーブル名 (
 カラム1 INTEGER,
 カラム2 VARCHAR(40) NOT NULL,
 カラム3 DATE,
 PRIMARY KEY (カラム1)
);

テーブル作成時のデータの型

  1. 数値型:
    • INT: 整数値 (範囲: -2147483648 ~ 2147483647)
    • BIGINT: 大きな整数値 (範囲: -9223372036854775808 ~ 9223372036854775807)
    • FLOAT: 浮動小数点数 (単精度)
    • DOUBLE: 浮動小数点数 (倍精度)
  2. 文字列型:
    • CHAR(n): 固定長文字列 (最大長: n)
    • VARCHAR(n): 可変長文字列 (最大長: n)
    • TEXT: 長文テキスト
  3. 日付/時刻型:
    • DATE: 日付 (形式: ‘YYYY-MM-DD’)
    • TIME: 時刻 (形式: ‘HH:MM:SS’)
    • DATETIME: 日付と時刻 (形式: ‘YYYY-MM-DD HH:MM:SS’)
    • TIMESTAMP: タイムスタンプ (形式: ‘YYYY-MM-DD HH:MM:SS’)
  4. ブール型:
    • BOOLEAN: 論理値 (true/false)
  5. その他の型:
    • BLOB: バイナリデータ
    • ENUM: 列挙型 (指定された値のいずれかを持つ)

これらは一部であり、MySQLには他にも多くのデータ型があります。

テーブル作成時の制約

  1. 主キー制約(PRIMARY KEY): テーブル内の各レコードを一意に識別するための列を指定します。主キー制約では、重複値やNULL値を持つことはできません。
  2. ユニーク制約(UNIQUE): 列に一意の値を持つことを要求します。ただし、NULL値は複数の行で許容されます。
  3. NOT NULL制約: 列にNULL値を許容しないことを指定します。
  4. 外部キー制約(FOREIGN KEY): 他のテーブルの主キーと関連付けられる列を指定します。外部キー制約は、データの整合性を維持するために使用されます。
  5. デフォルト制約(DEFAULT): 列にデフォルト値を指定します。行が挿入される際に値が指定されなかった場合、デフォルト値が使用されます。
  6. CHECK制約: 列に対して特定の条件を指定します。条件に合致しない値の挿入や更新を制限することができます。

テンポラリテーブル(Temporary Table)の作成

テンポラリテーブル(Temporary Table)は、一時的にデータを格納するための特殊なテーブルです。

テンポラリテーブルは、一時的なデータ処理やセッション固有のデータを保存することができ、テーブル数が必要以上に増えるのを防いでくれます。

また、ウェブアプリケーションでの一時的なセッション情報や、キャッシュデータを格納する場合などにも使われています。

テンポラリテーブルの作成は、CREATE TEMPORARY TABLE テーブル名( );を使い、その他は通常のテーブル作成と同様です。

CREATE TEMPORARY TABLE テーブル名 (
 カラム1 INTEGER,
 カラム2 VARCHAR(40) NOT NULL,
 カラム3 DATE,
 PRIMARY KEY (カラム1)
);

MySQLテーブルのカラム・データ追加

カラムの追加

作成したテーブルに、新しいカラムを追加したい時は、下記のコードを使います。

ALTER TABLE テーブル名 ADD [カラム名] [データ型];

任意のカラムの後に追加したい場合は、AFTER 追加したい位置の前のカラム名を追加します。

ALTER TABLE テーブル名 ADD [カラム名][データ型]
AFTER [追加したい位置の前のカラム名];

ALTER TABLE 食品 ADD 食品名カナ VARCHAR(40)
AFTER 食品名;

データの追加

INSERT INTO テーブル名 ([カラム名1], [カラム名2], …) VALUES
([値1], [値2] ,…);

INSERT INTO 家計簿 (No, 日付, 項目, 品名, 金額) VALUES
(3, '2022-4-29', '食費', 'じゃがいも', 200);

まとめてデータを追加する場合

INSERT INTO 家計簿 (No, 日付, 項目, 品名, 金額) VALUES
(4, '2022-4-29', '食費', 'じゃがいも', 200),
(5, '2022-4-29', '娯楽', '映画', 2000),
(6, '2022-4-30', '食費', '豚肉', 300),
(7, '2022-4-30', '食費', '人参', 150);

MySQLのテーブルカラム・データ削除

カラムの削除

テーブルのカラムを削除する場合は、ALTER TABLE テーブル名 DROP COLUMN [カラム名];を使います。

ALTER TABLE 家計簿
 DROP COLUMN 概要,
 DROP COLUMN 分類;

データの削除

DELETE FROM [テーブル名] WHERE [条件式];

DELETE FROM 家計簿 WHERE No > 3;
DELETE FROM 家計簿 WHERE 品名 = '人参' OR 品名 = 'じゃがいも';

MySQLのテーブルカラム・データ変更

カラムの変更

作成したテーブルのカラムの内容(定義など)を変更するときは、下記コードを使います。
ALTER TABLE テーブル名 MODIFY( [カラム名1] [変更内容1], [カラム名2] [変更内容]2);

ALTER TABLE 顧客 MODIFY(
 住所 VARCHAR(60),
 電話番号 VARCHAR(13)
);

データ変更

UPDATE [テーブル名] SET [カラム名1] = [値1], [カラム名2] = [値2] WHERE [条件式];

UPDATE 家計簿 SET 金額 = 200 WHERE 品名 = '人参';