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だと動きが変わった」というケースが起こることはあるので、頭の片隅に一旦入れておくのがおすすめです!

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

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

簡単な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文の詳しい使い方については以下で解説しているので、気になる方は見てみてくださいね!

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文をもっと知りたい方は、以下がおすすめです。

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とクエリの違い・SQLの書き方について解説しました。

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

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

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次