SQLとクエリの違いは?基礎知識・サンプルコードも徹底解説!


SQLとクエリの違いってなんだろう・・・
SQL学んで、自分で処理が書けるようになりたいな・・・

SQLを始めてみたものの、細かい用語の意味がわからず手が止まっている人もいるのではないでしょうか。「SQLとクエリの違い」が、その代表例です。わからない言葉が続いてしまうと、内容も頭に入ってこないですよね。

こんにちは!フリーランスエンジニア兼テックライターのワキザカです。

この記事では、SQLとクエリの違い・SQLの書き方について解説します!

ただSQLの書き方を解説するだけでなく、実行環境を作る方法にも触れています。これから始める方にもおすすめです!

この記事はこんな人のために書きました。

  • SQLとクエリの違いを知りたい人
  • SQLの種類や書き方を知りたい人

SQLとクエリの違いとは?

はじめに、SQLとクエリの違いについて解説します。

SQLとクエリの違いは、以下のとおりです。

SQLとクエリの違い

  • SQL:データベースを操作するための言語
  • クエリ:SQLを実行したときにデータベースに送る命令文

たとえば、以下のような「登録ユーザ一覧テーブル」があったとします。


登録ユーザ一覧テーブル

「テーブルに1行データを追加して!登録するデータは、ユーザーIDが13、登録者名が侍13...」のように命令文を出すのがクエリです。そのクエリをSQLで書くと次のようになります。

データ挿入のSQLサンプル:

INSERT INTO 登録ユーザ一覧テーブル(ユーザーID,登録者名,プラン,登録日,更新日)
VALUES(13,'侍13','A','2019-07-20','2019-07-20')

※具体的なSQLの書き方については後ほど解説します。

「SQLを書いて、クエリを送る」というイメージですね。そのため、SQLの書き方を覚えていけばOKです!

そこで次に、SQLの7つの種類について解説しますね。

SQLを実行して投げるクエリには7つの使い方がある

SQLには、大きく分けて以下の7つの種類があります。

SQLの7つの種類

  • データベース・テーブル作成:CREATE
  • データベース・テーブル定義変更:ALTER
  • データベース・テーブル削除:DROP
  • データ検索:SELECT
  • データ更新:UPDATE
  • データ挿入:INSERT
  • データ削除:DELETE

CREATE、ALTER、DROPは、データベース・テーブルを操作する文法です。

たとえば、先ほどの「登録ユーザー一覧テーブル」に「経験年数」の項目を追加する場合などですね。


登録ユーザ一覧テーブルに列「経験年数」を追加した例

SELECT、UPDATE、INSERT、DELETEは、テーブルのデータを操作する文法です。

こちらも先ほどの、「登録ユーザー一覧テーブル」を例にすると以下のようなイメージですね。


登録ユーザ一覧テーブルに1行レコードを追加した例

ユーザーIDが13のデータを、1行追加しています。このように、データを操作する時に使います。

ちなみに、データベース・テーブルのような構造を変える書き方をDDL、テーブルのデータを操作する書き方をDMLと呼びます。合わせて覚えておくのがおすすめです。

SQLはデータベースによって書き方が違う

SQLは、データベースによって書き方が若干違います。

「人事テーブルから部署コードが『E001』のデータを取得」のようなケースでは、SQLの書き方は変わりません。ただ、開発現場では「SQL Serverでは動いていたのに、Oracleだと動きが変わった」というケースが起こることはあるので、頭の片隅に一旦入れておくのがおすすめです!

データベースの種類は以下で詳しく解説しているので、種類について知りたい方はぜひ見てみてくださいね!

【初心者も5分でわかる】データベースの種類とは?概要や特徴まとめ!
更新日 : 2019年5月3日

SQLを実行するための環境とは?

次に、SQLを実行するための環境について解説します!

SQLを実行するための環境は、大きく分けて以下の2つです。

SQLを実行する2つの方法

  • SQLが実行できるWEBサービスを使う
  • 自分のパソコンにデータベース実行環境を作る

それぞれ詳しく解説しますね。

SQLが実行できるWEBサービスを使う

SQLをWEBで実行したいなら、「paiza.io」がおすすめです。

無料アカウントを作るだけで、簡単にSQLを実行する環境を作れます。とにかくSQLを書いて学びたい方に、おすすめです!

参考:paiza.io https://paiza.io/ja/

ただ、実際に開発などでSQLを書くときは、自分のパソコンにセットアップした環境を使うケースが多いです。そのため、自分のパソコンにデータベース実行環境を作る方法についても解説しますね。

自分のパソコンにデータベース実行環境を作る

自分のパソコンにデータベース実行環境を作るなら、MySQLのインストールがおすすめです。

以下のように、初心者におすすめできる理由がたくさんあります。

MySQLをおすすめする理由

  • 簡単にインストールできる
  • 初心者が始めるSQLとして最適
  • ネットに情報量が多いので困った時に調べやすい

MySQLのインストール方法については、以下で徹底的に解説しています。ぜひ参考にしてみてくださいね。

【初心者向け】MySQLのインストール方法について徹底解説!
更新日 : 2018年12月25日

簡単なSQLを書いてクエリを投げてみよう

ここからは、実際に簡単なSQLを作ってクエリをデータベースに送ってみましょう。

今回解説するサンプルのデータイメージ・SQLは、以下の通りです。

サンプルのデータイメージ:

サンプルで作るusersテーブルのイメージ

今回解説するSQL

  • CREATE文でテーブル作成
  • INSERT文でデータ登録
  • SELECT文でデータ検索

それぞれ詳しく解説しますね。

SQLでCREATE文を書いてテーブルを作る

まず、データベースにテーブルを作っていきましょう。

テーブルを作るときは、以下のように簡単に仕様を決めておくのがおすすめです。

今回作るテーブルの仕様

  • テーブル名:users
  • テーブル構造

名称
id数値
name文字列
age数値
create_date日付
update_date日付

ここまでできたら、CREATE文でテーブルを作成していきます。

CREATE文のSQL:

-- CREATE文でusersテーブル作成
CREATE TABLE users (
      id int(11)
      , name varchar(50)
      , age int(11)
      , created_date date
      , updated_date date
);

-- 定義を確認
DESC users;

実行結果:

| Field | Type | Null | Key | Default | Extra | 
| --- | --- | --- | --- | --- | --- | 
| id | int(11) | YES |  | N |  | 
| name | varchar(50) | YES |  | N |  | 
| age | int(11) | YES |  | N |  | 
| created_date | date | YES |  | N |  | 
| updated_date | date | YES |  | N |  | 

CREATE文でusersテーブルを確認し、「DESC テーブル名」で定義を確認しています。

Typeは型で、整数の場合はint型、文字列の場合はvarchar型などがあります。型の種類やCREATE文の詳しい使い方については以下で解説しているので、気になる方は見てみてくださいね!

【MySQL入門】CREATE TABLE文でテーブルを作成する方法
更新日 : 2019年6月18日

SQLでINSERT文を書いてデータを作る

次に、データを挿入しましょう!

今回作るデータは、以下の3つです。


作成するデータイメージ

作成したINSERT文は、以下のとおりです。

INSERT文のSQL:

INSERT INTO users(id,name,age,created_date,updated_date) VALUES(1,'侍1',22,'2019-04-01','2019-04-15');
INSERT INTO users(id,name,age,created_date,updated_date) VALUES(2,'侍2',28,'2019-04-01','2019-04-23');
INSERT INTO users(id,name,age,created_date,updated_date) VALUES(3,'侍3',32,'2019-04-01','2019-04-15');

「INSERT INTO テーブル名(列1,列2…) VALUES(値1,値2…)」のように書くことで、簡単にデータ登録用のINSERT文を作ることができます。

INSERT文をもっと知りたい方は、以下がおすすめです。

【MySQL入門】INSERT文を使いこなす!基本からSELECT句まで一挙紹介
更新日 : 2018年12月25日

SQLでSELECT文を書いてデータを検索する

ここまでできたら、最後にSELECT文でデータを確認しましょう。

SELECT文のSQL:

SELECT *
FROM users

実行結果:

| id | name | age | created_date | updated_date | 
| ---: | --- | ---: | --- | --- | 
| 1 | 侍1 | 22 | 2019-04-01 | 2019-04-15 | 
| 2 | 侍2 | 28 | 2019-04-01 | 2019-04-23 | 
| 3 | 侍3 | 32 | 2019-04-01 | 2019-04-15 | 

SELECT直後のアスタリスク(*)は、「全てのデータ」を意味しています。FROMの後にusersを指定することで、「usersテーブルのすべてのデータを表示」というクエリをデータベースに送っています。

SELECT文の詳しい書き方については以下で解説しています。ぜひ参考にしてみてくださいね!

【SQL】3分でSELECT文を完全マスター!データ取得の基礎から応用まで!
更新日 : 2019年5月5日

まとめ

今回は、SQLとクエリの違い・SQLの書き方について解説しました。

SQLは、学べば学ぶほど奥が深いです。最初に基礎をがっちり固めておくことで、深く学んでいくことができます。

ぜひ、簡単なSQLからでもいいので書いて実行してみてくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。