記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

【随時更新】使用したSQL文

はじめに

今、某フリマアプリのクローンサイトをrailsでチーム開発しております。
私は、本番環境(AWS)の構築と運用担当&個人的な鍛錬のため、sequel Proから卒業し、ターミナルでSQLを使って操作することを自分に課しております。

そこで、この記事では、使ったSQL文をメモしたいと思います。
(随時更新します。)


テーブル内のレコードをすべて削除する

(2019/11/25更新)

構文

DELETE FROM [テーブル名];

brainsテーブルのレコードを全部消す。

DELETE FROM brains;

これで、頭の中が空っぽになります。


指定したレコードを削除する

(2020/01/17更新)

構文

DELETE FROM <テーブル名> WHERE 〜

brainsテーブルからmemoryカラムの値が「好きだったのに、思いを伝えられなかった中学3年間」を削除

DELETE FROM brains WHERE memory = "好きだったのに、思いを伝えられなかった中学3年間"

これで、甘酸っぱくてほろ苦い青春の思い出を忘れさることができます。


WHERE

(2019/12/09更新)
シンブルにWHEREの書き方をど忘れしてしまったため、自戒を込めて記載します。
RailsActiveRecordいじり過ぎて、WHERE(name: 1);って書いてました…

構文

SELECT <カラム名> FROM <テーブル名> WHERE <カラム名>=<レコード>;


SQL文の入力を途中でやめたいとき

(2019/12/12更新)
SQLを書いているとき、いくら;を打っても抜け出せない(->が表示され続ける)ことがあって、一生SQL文を打ち続ける刑に処されたのかと思いました。
そこで、今日は入力を途中でやめたいときに、輪廻の連鎖から抜け出す方法を書きます。

そのコマンドは…

\c

です。

1つのカラムの値だけ、削除したい

(2020/01/29更新)

使用場面

usersテーブルに保存したレコードのうち、phoneカラム(携帯電話)の値だけを削除したいとき

方針

調べてみると….

  • DELETEで消せる最小単位は、レコード(つまり、特定のカラムの値だけを削除することはできない)
  • UPDATEを使って、その値だけをNULLにする (「NULL クリア」)

ということがわかりました。

コード

今回はidが1のuserから、phoneカラムの値だけをNULLにします。

UPDATE users
SET phone = 'NULL'
WHERE id = 1;

注意点

NOT NULL制約など設定していると、更新できないです。