0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

【SQL】LIKE, NOT, NULL, AND, OR

はじめに

SQLの基本をまとめていこうと思います!
今回は、LIKE, NOT, NULL, AND, OR演算子について、それぞれみていきます!

LIKE

LIKEは、「ある文字列を含むデータ」を取得したい場合に使えます。

SELECT * 
FROM users
WHERE language LIKE "%java%";

このようにクエリを記述ことによって、以下の表のように、javaという文字列を含むレコードを選択することができます。

ScreenShot 2021-05-22 2.15.31.png

「%」はワイルドカードと呼ばれるもので、どのような文字列であっても一致させますというLIKE演算子に用意された記号です。

以下のように、前後のみ一致させるということもできます。

SELECT * 
FROM users
WHERE language LIKE "java%"; // languagejavajavascriptのレコードを指定

SELECT * 
FROM users
WHERE language LIKE "%java"; // languagejavaのレコードのみを指定

SELECT * 
FROM users
WHERE language LIKE "%script"; // languagejavascripttypescriptのレコードを指定

NOT

そのままですが、否定です。一致しないデータや、その範囲を含まないと言った指定をすることができます。

SELECT * 
FROM users
WHERE NOT language = "java";

ScreenShot 2021-05-22 2.40.06.png

SELECT * 
FROM users
WHERE NOT language LIKE "java%";

ScreenShot 2021-05-22 2.40.42.png

NULL

中身がないという状態を扱うときに使います。
以下のように、IS NULLとすることで、numberカラムにデータがないレコードを指定できます。

SELECT * 
FROM users
WHERE number IS NULL;

ScreenShot 2021-05-22 2.44.50.png

逆に、NULL以外のデータを指定する場合は、以下のようにIS NOT NULLとします。

SELECT * 
FROM users
WHERE number IS NOT NULL;

ScreenShot 2021-05-22 2.42.09.png

数値や文字列の時のように、=を使って= NULLなどとしないように注意が必要です。

AND, OR

WHEREに複数の条件を付けたいときに用います。

AND例
numberが2かつ前方にjavaという文字列を含むレコードを指定しています。

SELECT * 
FROM users
WHERE number = 2
AND language LIKE "java%";

ScreenShot 2021-05-22 2.53.27.png

OR例
numberが2または前方にjavaという文字列を含むレコードを指定してみます。

SELECT * 
FROM users
WHERE number = 2
OR language LIKE "java%";

ScreenShot 2021-05-22 2.55.53.png

おわりに

今回はLIKE, NOT, NULL, AND, ORなどを扱いました!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?