👻
MySQL 表の作成とカラムの設定変更
表の作成
最初に自分で書いたクエリ
create table 表の名前 (id int, memo text, created_date timestamp);
idの条件
- 自動採番
- NOT NULL
- PRIMAERY KEY(一意でなければならない)
自分用メモ
- 表の名前はダブルクオーテーションなどで囲わない。英数字で。
- idの設定をいつも間違える・・・。
id INT PRIMARY KEY AUTO INCREMENT
とする。
- PRIMARY KEYの代わりにUNIQUE制約とNOT NULL制約の両方をかける方法もあるが、PRIMARY KEYのほうが短くてよさそう。(スッキリわかるSQL入門323ページ)
- PRIMARY KEYを複数カラムに設定することはできる。
主キー制約を1つにかけるか、2つ以上にかけるかによって、クエリの書き方が違う。
(スッキリわかるSQL入門324ページ) - 外部キーで別テーブルを参照している場合、参照整合性を崩壊させないために外部キー制約をかける。(REFERENCES)←今回の記述ではなし。
PRIMARY KEYにAUTO INCREMENTを指定する場合と指定しない場合の違いについて
PRIMARY KEYの追加と削除について
既に作成したカラムにPRIMARY KEY制約を付加するには
ALTER TABLE テーブル名 ADD PRIMARY KEY(列名);
この場合、すでにデータが入っていたらエラーになる。
auto_increment, not nullを追加する場合は
ALTER TABLE テーブル名 MODIFY NOT NULL AUTO_INCREMENT (列名);
でできた。
ADDとMODIFYの違いは
- 新しい列や制約の追加 – ADD句
- 列名を変更せずに既存の列のデータ型・制約を変更 – MODIFY句
https://yukun.info/alter-table-add-drop-change-modify/
基本的な制約(Constraint)
- not null
- check
- unique
- primary key
- references
timestampなど日付の比較
タイトル
表示したい内容
Discussion
始めてZennを使って記事を書いた。難しい。綺麗にまとめられるようになりたい。
当分の間は勉強のためのメモ。