SQL②SQL もっと詳細に!
テーブル関係の操作
テーブル作成
code:SQL
CREATE TABLE task (
id SERIAL NOT NULL,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id)
);
MySQLだとid の自動連番はAUTO_INCREMENTだけど、
PostgresはSERIALでやってくれるみたい。便利
外部キー制約のテーブルを作るとき
code:sql
CREATE TABLE users (
id SERIAL NOT NULL PRIMARY KEY,
user_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
gender INTEGER NOT NULL,
income INTEGER NOT NULL,
prefecture INTEGER NOT NULL,
birthyear INTEGER NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
FOREIGN KEY (gender) REFERENCES genders(id),  <- これ
FOREIGN KEY (prefecture) REFERENCES prefectures(id) <- これ
);
テーブルのデータ構造を変更する。
code:sql
ALTER TABLE テーブル名
ALTER COLUMN 列名 TYPE 新しい型
年収のデータ型が桁数たりないので変えますた。
code:sql
ALTER TABLE users
ALTER COLUMN income TYPE bigint;
テーブルのカラム名を変更する。
code:sql
ALTER TABLE テーブル名
RENAME COLUMN 変える前 TO 変えた後
テーブルにカラムを追加する
code:sql
ALTER TABLE テーブル1
ADD カラム1 データ型 NULL or NOT NULL;
単一テーブルでのCRUD操作
データを保存する。
INSERT INTO テーブル名 (キー, キー, キー, ....) VALUES (値, 値, 値.....)
上のUsersテーブルなら
INSERT INTO users (id, user_name, email, gender, income, prefecture, birthyear, created_at, updated_at) VALUES (1, 'max', 'max@com', '1', '100000000', '27', '1995', '2021-04-16 8:40:27', '2021-04-16 8:40:27');
データを取得する
SELECT * FROM テーブル名 WHERE 条件
データを更新する
UPDATE テーブル名 SET キー = 値 WHERE 条件
WHERE等で条件指定しないとすべてが変わるので注意
データを削除する
DELETE FROM テーブル名 WHERE 条件
#PostgreSQL
#SQL
#MySQL