WHY
コードが一気に出てきて、いつでも見直せるようにまとめました
SQLとは
SQL(シークェル)とはStructured Query Languageの略で、RDB(リレーショナルデータベース)の操作を行うための言語。
SQLの操作はターミナルとSequel Proでもできる。
SQLでできることは主に以下の3つ
データを定義する「DDL(Data Definition Language)」
データを操作する「DML(Data Manipulation Language)」
データを制御する「DCL (Data Control Language)」
DDL
データの削除、作成、更新などをするSQL
ターミナルでの操作
mysqlにログイン(rootという名前でログインしている。)
mysql -u root
### CREATE データベースやテーブルを作成できる。 「CREATE DATABASE データベース(テーブル)名」を実行すると、指定した名前のデータベース(テーブル)が作成される。
CREATE DATABASE 《データベース名》;
CREATE TABLE テーブル名 (カラム名1 カラム名1の型, カラム名2 カラム名2の型, …);
カラムの型はこんなかんじ。
型名 | 保存できる値 |
---|---|
INT | 数字 |
VARCHAR(M) | 最大M文字の文字列 |
SHOW
データベースやテーブルを一覧表示できる。
「SHOW DATABASES(TABLES)」を実行すると、作成されているデータベース(テーブル)を一覧で表示できる。
SHOW DATABASES;
SHOW TABLES;
DROP
データベースやテーブルを削除できる。
「DROP DATABASE データベース名」を実行すると、作成されているデータベースを削除できる。
DROP DATABASE 《データベース名》;
USE
データベースを指定する。
「USE 《database名》」と指定することでデータベースを選択する。
USE 《データベース名》;
FROM
テーブルを指定する。
「USE 《table名》」と指定することでテーブルを選択する。
FROM 《テーブル名》
ALTER
データベースやテーブルを編集できる。
ADDで追加、CHANGEで変更、DROPで削除できる。
ALTER TABLE テーブル名 ADD (カラム名 カラムの型, ……);
ALTER TABLE テーブル名 CHANGE 古いカラム名 新しいカラム名 新しいカラムの型;
ALTER TABLE テーブル名 DROP カラム名;
## DML データの登録/更新/削除/検索などをするSQL。
SELECT
データを取得する。
テーブルの全てのカラムを取得する場合は「*」ワイルドカードを使う。
SELECT 《カラム名》 FROM 《テーブル名》
SELECT * FROM 《テーブル名》
INSERT
テーブルにデータを登録する。INTOという句と組み合わせてINSERT INTOとして使用し、値は、VALUESの後に入力する。
カラム名はなくてもいい。
INSERT INTO テーブル名(カラム名1, カラム名2) VALUES(値1, 値2);
UPDATE
データを更新する。
テーブル名を指定し、SETのあとに変更内容、WHEREのあとに条件を指定する。
UPDATE 《テーブル名》 SET 《変更内容》 WHERE 《条件》;
(例) UPDATE goods SET price = 100 WHERE id = 2;
DELETE
データを削除する。FROMのあとにテーブル名を、WHEREのあとに条件を指定する。
DELETE FROM 《テーブル名》 WHERE 《条件》;
## データ検索 ### WHERE 条件を指定し、条件にあったレコードを取得する。
WHERE 《条件》
(例) WHERE id = 1
(例) WHERE last_name = "阿部"
LIKE
WHEREと併用して使うことで「文字列検索」ができる。
WHERE 《列名》 LIKE '検索文字'
AND演算子
複数の条件を指定し、その条件がすべて正であるレコードを取得する。
WHERE 《a》 AND 《b》
OR演算子
複数の条件を指定し、その条件のうちどれか1つ以上が正であるレコードを取得する。
WHERE 《a》 OR 《b》
NOT演算子
1つの条件を指定し、その条件に当てはまらないものを取得する。
WHERE NOT 《a》
BETWEEN演算子
1つのカラムに対し上限と下限を指定し、カラムの値がその範囲に含まれるレコードを取得する。
WHERE 《カラム名》 BETWEEN 《下限》 AND 《上限》
IN演算子
1つのカラムに対し値を指定し、カラムの値が指定した値を含むレコードを取得する。
WHERE 《カラム名》 IN (値1, 値2, ……)
JOIN
指定したカラム同士を紐付けさせ、テーブルを紐づけることができる。
FROM 《テーブル名1》
JOIN 《テーブル名2》 ON 《テーブル名1.カラム名1》 = 《テーブル名2.カラム名2》
CONCAT
複数の文字列を連結できる。
(例)last_nameとfirst_nameなど
CONCAT(文字列1, 文字列2, ……)
GROUP BY
ある特定のデータごとに、平均値や総量などを集計するときに用いる。この時に、ある特定のデータをグループ化すると言う。
GROUP BY カラム名
COUNT
グループ化されたデータに対して使用できる、データの総量をカウントする。
カラムを指定することで、そのカラムのデータの行数を取得できる。
SELECT COUNT(カラム名)
実際に使ってみて覚えていこうとおもいます。