SQL基本言語について


SQLとは▼

SQL(Structured Query Language)は、リレーショナルデーターベース(RDB)の操作を扱う為の言語。

リレーショナルデータベースとは、データをテーブルという表形式の構造で管理するデータベースのことで、Webアプリケーションを作成する際は一般的にリレーショナルデータベースが使用されます。

SQLはデータベースやテーブルに対して様々な命令を行いますが、
その命令は大きく2つ、データを定義するDDL(Data Definition Language)と、データを操作するDML(Data Manipulation Language)に分類されます。

DDLとは▼

データを定義するときに使用します。
DDLのできること

命令 機能
CREATE データベースやテーブルの作成
ALTER データベースやテーブルの更新
DROP データベースやテーブルの削除

DMLとは▼

データを操作するときに使用します。
DMLのできること

命令 機能
INSERT データの作成
UPDATE データの更新
SELECT データの検索
DELEATE データの削除

データベースの作成▼

CREATE DATABASE データベース名;

データベースを作成する場合はCREATEを使用。
指定した名前のデータベースが作成される。

データベースを選択する▼

USE データベース名;

データベースを選択するSQL文です。

テーブルを確認する▼

SHOW TABLES;

選択したデータベースに存在するテーブルを一覧で表示するSQL文。

テーブルを作成する▼

CREATE TABLE テーブル名 (カラム名 カラム名の型, ……);

テーブルを作成する場合はCREATEを使用。
テーブル名は必須、(カラム名 カラムの型)の指定もできる。

カラムの型

カラムの型 保存できる値
INT 数字
VARCHAR(M) 最大M文字の文字列

カラムを追加する▼

ALTER TABLE テーブル名 操作

カラムの追加、修正、削除は全てテーブル構造の変更ということで、共通してALTERを使用

カラムを一つだけ追加▼

ALTER TABLE テーブル名 ADD カラム名 カラムの型;

カラムを複数追加▼

ALTER TABLE テーブル名 ADD (カラム名 カラムの型, .....)

カラムの修正

ALTER TABLE テーブル名 CHANGE 古いカラム名 新しいカラム名 新しいカラムの型;

カラムの削除▼

ALTER TABLE テーブル名 DROP カラム名;

ここまでがDDLの基本操作、次からがDMLでの操作。

データを登録する▼

INSERT INTO テーブル名 VALUES(値1, 値2, 値3);

データを登録する場合に使用。
上記は複数のカラムに値を入れる場合の記法。

下記は特定のカラムに値を入れる方法です。

INSERT INTO テーブル名(カラム名1, カラム名2) VALUES(値1, 値2);

データの更新▼

UPDATE テーブル名 SET 変更内容 WHERE 条件;

データの更新をする場合に使用。

データの削除▼

DELETE FROM テーブル名 WHERE 条件;

データを削除する場合に使用。

検索するテーブルを指定▼

FROM テーブル名

検索するテーブルを指定する場合に使用。

ここからはsequel pro(シークエルプロ)を使用しています。
sequel proのメリットは以下の通り。

・検索は長いSQL文を要するが、
タイプミスをしたときにその部分だけを直せば再実行が出来る。

・検索は場合によって非常に多くの出力を伴うが、
それによって実行したSQL文が流れることがないため見やすい。

・SQL文の文末に " ; "(セミコロン)を付ける必要がない。

取得するカラムを指定▼

SELECT カラム名

全てのカラムを取得する場合は、*(アスタリスク)を使用。
これはワイルドカードと言って、文字の代わりに扱える記号です。

取得するレコードを指定▼

WHERE 条件

取得するレコードを制限する際に使用。
条件として正であれば取得。

条件には比較演算子を使用。また、ANDやORの論理演算子も使用できる。

データの結合▼

CONCAT(文字列1, 文字列2, ……)

複数の文字列を連結する場合に使用する関数。

検索結果のカラム名の変更

SELECT 取得するデータ AS 別名

SELECTでカラムを使用した場合、ASを使うとカラムに別名を付けれる。

重複する行の除外▼

SELECT DISTINCT カラム名

指定したカラムの値の重複した行を除外してデータを取得できる。

レコードのグループ化▼

GROUP BY カラム名

指定したカラムで同じ値をもつデータを一つのグループとしてまとめる場合に使用。

レコードの数を数える▼

SELECT COUNT(カラム名)

何件のレコードがグループ化されているかというデータを取得する場合に使用。

テーブルの結合▼

FROM テーブル名1
JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2

指定したそれぞれの値と、テーブルのカラムの値が一致するデータを結合する場合に使用。
JOINはFROMの後に記述。