0
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 3 years have passed since last update.

SQLの個人的備忘録3

Last updated at Posted at 2020-09-27

##サブクエリ
クエリの中に他のクエリを入れることができることで、2つ以上のクエリを1つにまとめることができる。これにより複雑なデータを取得することができる。

-# 平均得点数より高いレコードからデータを取得している。
SELECT name,goals
FROM players
WHERE goals > (
  SELECT AVG(goals)
  FROM players
);

##AS
カラム名などに別名を定義することができる。
-# カラム名が身長180cm以上の選手と表示され、180cm以上のデータを取得している。

SELECT name AS "身長180cm以上の選手"
FROM players
WHERE height >= 180;

##JOIN
複数のテーブルを1つに結合したい時に使用。ONで条件を指定して、1つのテーブルとしてデータを取得する。

-# playersテーブルとcountriesデーブルを結合し、NULL以外のデータを取得。
SELECT *
FROM players
JOIN countries
ON players.country_id = countries.id;

##LEFT JOIN
テーブルのレコードを全て取得する。外部キーがNULLのレコードもNULLのまま実行結果に表示する。

-# playersテーブルとcountriesデーブルを結合し、NULLを含めたデータを取得。
SELECT *
FROM players
LEFT JOIN teams
ON players.previous_team_id = teams.id;

##複数テーブルのJOIN
JOINを複数書くことで、複数のテーブルをつなげることができる。

-# playersテーブルと、countriesテーブルと、teamsテーブルをつなげている。
SELECT *
FROM players
JOIN countries
ON players.country_id = countries.id
LEFT JOIN teams
ON teams.id = players.previous_team_id;

##INSERT
テーブルにレコードを挿入したい時に使用。多くの場合、IDカラムにはAUTO INCREMENTという機能があり、データが作成される時に自動で値が割り当てられる。

-# studentsテーブルにnameがKate, courseがJavaのデータを追加する。
INSERT INTO students (name, course)
VALUES ("Kate", "Java");
select * from students;

##UPDATE
データを更新したい時に使用。複数変更したいカラムがある場合、コンマ(,)で区切る。WHEREで更新するレコードを指定しないとカラム内の全データが更新される。

-# studentsテーブルのIDが6のデータにnameがJordan, courseがHTMLのデータを更新する。
UPDATE students
SET name = "Jordan", course = "HTML"
WHERE id = 6;
SELECT * FROM students WHERE id=6;

##DELETE
レコードを削除するときはDELETEを使用。WHEREでレコードを指定しないとテーブル内の全レコードが削除される。

-# studentsテーブルのIDが7のデータを削除する
DELETE FROM students
WHERE id = 7;
SELECT * FROM students;
0
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
0
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?