CREATE TABLE
テーブルの作成をする際にcreate table
を実行。
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
このようなテーブルを作りたいとして、以下のsqlを書く。
CREATE TABLE user(
id VARCHAR(4) NOT NULL,
name VARCHAR(20) NOT NULL,
gender VARCHAR(20) NOT NULL,
PRIMARY KEY (id);
)
INSERT
テーブルにレコードを追加するときに使う。
INSERT INTO users(name, gender)
VALUES('its', 'male');
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
3 |
its |
male |
SELECT
テーブルを取得するためにカラムを指定する。*
を用いることでテーブル全体を指定することも可能。
FROM
どのテーブルからデータをとってくるか指定する。
テーブルのデータを丸々とってくる
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
3 |
its |
male |
テーブルのカラムで指定
テーブルの複数カラムで指定
SELECT name,gender
FROM users;
name |
gender |
yamada |
male |
hanako |
female |
its |
male |
DELETE
指定のデータを削除することができる。
Where
を用いることで条件をつけることができる。
テーブル削除
テーブルの指定したものを削除
DELETE FROM users
WHERE name = 'its';
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
UPDATE
テーブルの内容を更新するときに使う。
DELETE同様にWhereを用いて条件をつけることができる。
UPDATE users
SET gender = 'female'
WHERE name = 'yamada';
id |
name |
gender |
1 |
yamada |
female |
2 |
hanako |
female |
AS
データを取得する際に、カラム名(テーブル名も)を別名をつけることができる。
SELECT name as '名前', gender as '性別'
FROM users
名前 |
性別 |
yamada |
male |
hanako |
female |
EXISTS
EXISTS
はサブクエリが返す値をbooleanで返し、trueの時にメインクエリを実行する。
ここではuserテーブルのnameにyamadaが存在していたらuserテーブルを返すという処理をしている。
SELECT * FROM users
WHERE EXISTS
(SELECT * FROM users
WHERE name = 'yamada');
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
DISTINCT
重複したデータを取り除いて、データを取得することができる。
同じ名前の人が二人いるとして
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
3 |
hanako |
female |
SELECT distinct name
FROM users
ORDER BY
データを並び替える時に使う。
列ごとに昇順 (ASC) 降順 (DESC) を指定することができる。デフォルトは昇順となっている。
SELECT *
FROM users
ORDER BY id DESC;
id |
name |
gender |
2 |
hanako |
female |
1 |
yamada |
female |
COUNT
COUNT
はレコード数を取得する。
SELECT COUNT(*)
FROM users
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
GROUP BY
指定したカラムの値を基準にデータをグループ化し、集計関数を用いて複数のデータをまとめて計算することができる。
id |
name |
gender |
1 |
yamada |
male |
2 |
hanako |
female |
3 |
its |
male |
SELECT gender, COUNT(*) as count
FROM users GROUP BY gender
gender |
count |
male |
2 |
female |
1 |
Discussion