👻

MySQL 表の作成とカラムの設定変更

2023/01/12に公開
2

表の作成

最初に自分で書いたクエリ

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を指定する場合と指定しない場合の違いについて
https://www.javadrive.jp/sqlite/table/index9.html

PRIMARY KEYの追加と削除について
https://www.sejuku.net/blog/52356

既に作成したカラムにPRIMARY KEY制約を付加するには

ALTER TABLE テーブル名 ADD PRIMARY KEY(列名);

この場合、すでにデータが入っていたらエラーになる。
auto_increment, not nullを追加する場合は

ALTER TABLE テーブル名 MODIFY NOT NULL AUTO_INCREMENT (列名);

でできた。
http://rnk.mitelog.jp/oyaji/2019/11/mysqlauto_incre-744f.html

ADDとMODIFYの違いは

基本的な制約(Constraint)

  1. not null
  2. check
  3. unique
  4. primary key
  5. references

timestampなど日付の比較

https://style.potepan.com/articles/18812.html

タイトル

表示したい内容

Discussion

まめもちまめもち

始めてZennを使って記事を書いた。難しい。綺麗にまとめられるようになりたい。