1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Progate +α メモず【SQL】

Posted at

はじめに

プログラミング入門最後です!
SQLは基本的にコマンド覚えゲーだと思ってます。
コマンドを一つ一つメモするのは、他言語以上に効率が悪いと思うのでやりません。
かといって疑問点もそこまであるかな?って気はするので短めの記事になるかも。

メモず

ワイルドカード%LIKEの使い方

SELECT *
FROM table
where name like "%太郎%";

これで、「なんとか太郎」も「太郎なんとか」も「なんとか太郎なんとか」も取得できます。
でも、思ったんですよね

name = "%太郎%"じゃダメ?なんでLIKE使うの?

つまりこういうことです

SELECT *
FROM table
where name = "%太郎%";

そうすると……
「%太郎%」と、%をワイルドカードではなく、文字 "%"として扱ってしまうらしい!
だから、LIKE演算子で「この後の%をワイルドカードとして扱ってね!」って教えてるわけですね。なるほど!

雑記:%以外の、LIKEによって特殊な解釈をする文字 (_)

_は任意の1文字を表すらしい。

SELECT *
FROM table
where name like "_太郎";

つまりこれで、"与太郎"に一致しつつ、"ハム太郎”には一致しないようにできるわけですね。

雑記:% / _ のエスケープ方法

% / _ を文字としてもワイルドカードとしても使いたいときは?

SELECT * 
FROM table 
WHERE name LIKE '%\%%' ESCAPE '\';

ややこしいですが、これで"100%"や、"20%引き"に一致することができます。
ESCAPE 'char'で、どの文字をエスケープ文字として使用しているか示してるわけですね。

nullへのアクセスは = NULLではなくIS NULL

=は等価かどうかを比較する演算子であり、「何もない」ものを比較できないため。

GROUP BYの絞り込みはHAVING

良い表があったのでメモ

実行順 種別
1 取得条件 WHERE
2 グループ化 GROUP BY
3 (集約)関数 COUNT / SUM / AVG / MAX / MIN
4 HAVING句 HAVING

実行順の表

優先度は上の方が高く、下の方が後回しになる

実行順 種別
テーブルの指定 FROM
結合 ON / JOIN
取得条件 WHERE
グループ化 GROUP BY
(集約)関数 COUNT / SUM / AVG / MAX / MIN
HAVING句 HAVING
検索 SELECT / DISTINCT
順序 ORDER BY
LIMET句 LIMIT

JOIN ON table1.column = table2.columnnullを除外する

nullのデータもつなぎたい場合は、LEFT JOINtable1nullを除外しない)を使う。
今回は調べないけど、両方のnullを除外しない方法もあるはず。

データの挿入:INSERT

構文は

INSERT INTO table (key1, key2) VALUES (value1, value2)

データの更新:UPDATE

構文は

UPDATE table SET key1=value1, key2=value2 WHERE key=value

WHEREがないと、全データが更新されてしまうらしい。怖。
なんにしろ取り返しのつかない操作なので、SELECTでちゃんと確認してから使おうね!ハーイノ

データの削除:DELETE

構文は

DELETE FROM table WHERE key=value

取り返しのつかない操作なので(以下略

終わりに

短めの記事でしたね。
SQLは触る機会が少なくて、RubyとJSみたいに「違う言語だけど感覚は一緒」みたいなこともないので、意識的に触っていきたい!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?