TANAKARYOKO.JP

BLOG

SQL

SQLとは

データベース内のデータを操作するためのデータベース言語です。

SQLを使うと、データベースにデータを格納したり、検索、更新、削除したりといった指示を出すことができます。これは、テーブル形式でデータを管理するリレーショナルデータベース(RDB)の操作に特化しています。

SQL構文

【取得】

基本

SELECT * 
FROM テーブル名

「*」(アスタリスク)は「すべてのカラム」と言う意味。

【追加】

基本

INSERT INTO テーブル名
   VALUES ('1', 'タカシ', '初ツイート!', '2017/07/05' ,'2017/07/05')

VALUES後の値は設定しているカラムの左から順番に入れたい値を入れていく。

【更新】

基本

UPDATE テーブル名
   SET カラム名 = 値, カラム名 = 値 
 WHERE id = 1

WHERE以降は更新したいレコードの条件をつける。

【削除】

基本

DELETE FROM テーブル名
    WHERE 条件

検索の絞込

【ANDとOR】

・ANDの場合

絞込

SELECT *
  FROM テーブル名
WHERE 条件 AND 条件

・ORの場合

絞込

SELECT *
  FROM テーブル名
WHERE 条件 OR 条件

【比較演算子】

比較演算子意味
=左右の値が等しい
<左辺は右辺より小さい
>左辺は右辺より大きい
<=左辺は右辺の値以下
>=左辺は右辺の値以上
<>左右の値が等しくない

絞込(例)

SELECT *
  FROM テーブル名
WHERE 値段 >= 1000

【NULL判定】

・指定のカラムの値がNULLの所の指定

絞込(例)

SELECT *
  FROM テーブル名
WHERE カラム名 IS NULL

・指定のカラムの値がNULLではない所の指定

絞込(例)

SELECT *
  FROM テーブル名
WHERE カラム名 IS NOT NULL

【LIKE文】

パターン文字意味
%任意の0文字以上の文字列
_(アンダースコア)任意の1文字

・メモカラムの値に「1月」の前後に任意の0文字以上の文字列がついているレコードの指定

絞込(例)

SELECT *
  FROM テーブル名
WHERE メモ LIKE '%1月%'

・メモカラムの値に「1月」で始まり、その後ろに1文字存在するレコード

絞込(例)

SELECT *
  FROM テーブル名
WHERE メモ LIKE '1月_'

【BETWEEN演算子】

・ある範囲内に値が収まっているかの判定

絞込(例)

SELECT *
  FROM テーブル名
WHERE 出金額 BETWEEN 1000 AND 30000

検索結果の加工

【DISITINCT】

・重複行を除外する

結果加工(例)

SELECT DISTINCT ユーザー名
  FROM テーブル名

【ORDER BY】

・結果を並べ替える

結果加工(例)

SELECT *
  FROM テーブル名
ORDER BY 金額 DESC

昇順→ASC、 降順→DESC

【LIMIT】

・先頭から数行だけ取得する

結果加工(例)

SELECT *
  FROM テーブル名
ORDER BY 金額 DESC LIMIT 3 OFFSET 2

OFFSETをつけると(指定の数字+1)番目のデータを取得してくれる。

【UNION】

・和集合:2つの検索結果を足し合わせたもの

結果加工(例)

SELECT ユーザー名, 年齢, 住所 FROM ユーザー1
 UNION
SELECT ユーザー名, 年齢, 住所 FROM ユーザー2

【EXCEPT】

・差集合:最初の検索結果から次の検索結果と重複する部分を取り除いたもの

結果加工(例)

SELECT ユーザー名, 年齢, 住所 FROM ユーザー1
EXCEPT
SELECT ユーザー名, 年齢, 住所 FROM ユーザー2

【INTERSECT】

・積集合:2つの検索結果で重複するもの

結果加工(例)

SELECT ユーザー名, 年齢, 住所 FROM ユーザー1
INTERSECT
SELECT ユーザー名, 年齢, 住所 FROM ユーザー2

演算子と関数

【代表的な演算子】

演算子使い方説明
+数値 + 数値数値同士で足し算をする
日付 + 日付日付を指定日数だけ進める
数値 – 数値数値同士で引き算する
日付 – 数値日付を指定日数だけ戻す
日付 – 日付日付の差の日数を得る
*数値 * 数値数値同士で掛け算する
/数値 / 数値数値同士で割り算する
||文字列 || 文字列文字列を連結する

構文は、まだまだたくさんありますし、データベースの授業としては4日間だったので業務レベルまでは程遠いですが、データベースの知識と仕組み、データベース言語を知ることができました。

とてもいい練習サイトを見つけたのでこちらで学習していこうと思います。

https://sqlab.net/.

CONTACT

お問い合わせ