Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLクエリとは、データベースに対して発行するSQL文を指します。この記事ではSQLクエリのサンプルコードについてまとめています。

SQLクエリのサンプルコード集

代表的なSQLクエリのコードを見て行きましょう。

MySQLのサンプルデータベースEmployeesを使用しています。

SQL標準として定義された代表的なSQLは主要データベースエンジンで共通して使えますが、一部機能はデータベースエンジンごとに機能拡張されていて仕様がことなるケースがあります。

【関連記事】
SQLとはどういうもの? 独自拡張と標準SQLの大きな違いって、何?

create tableのサンプルコード

テーブルを作成するにはcreate tableを使います。下記の例は、create tableでemployees_copyテーブルを作成し、show columnsで作成したテーブルのカラム情報を確認しています。

※MySQLで実行

CREATE TABLE `employees_copy` (
  `emp_no` int(11) NOT NULL,
  `birth_date` date NOT NULL,
  `first_name` varchar(14) NOT NULL,
  `last_name` varchar(16) NOT NULL,
  `gender` enum('M','F') NOT NULL,
  `hire_date` date NOT NULL,
    PRIMARY KEY (emp_no)
);

Query OK, 0 rows affected, 1 warning (0.04 sec)

mysql> show columns from employees_copy;
+------------+---------------+------+-----+---------+-------+
| Field      | Type          | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| emp_no     | int           | NO   | PRI | NULL    |       |
| birth_date | date          | NO   |     | NULL    |       |
| first_name | varchar(14)   | NO   |     | NULL    |       |
| last_name  | varchar(16)   | NO   |     | NULL    |       |
| gender     | enum('M','F') | NO   |     | NULL    |       |
| hire_date  | date          | NO   |     | NULL    |       |
+------------+---------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

【関連記事】
MySQLのcreate tableサンプルコード集 カラム定義を自動出力する方法は?

selectでデータベースから情報を抽出するサンプルコード

employees(社員)テーブルから条件付きで10件のデータを抽出するサンプルコードです。条件指定には等号、不等号による指定、ワイルドカード文字「%」を使ったあいまい指定が可能です。

select * from employees 
where 	emp_no < 20000 
	and first_name like 'A%' 
	and gender = 'F'
	limit 10;
+--------+------------+------------+--------------+--------+------------+
| emp_no | birth_date | first_name | last_name    | gender | hire_date  |
+--------+------------+------------+--------------+--------+------------+
|  10006 | 1953-04-20 | Anneke     | Preusig      | F      | 1989-06-02 |
|  10059 | 1953-09-19 | Alejandro  | McAlpine     | F      | 1991-06-26 |
|  10094 | 1957-05-25 | Arumugam   | Ossenbruggen | F      | 1987-04-18 |
|  10120 | 1960-03-26 | Armond     | Fairtlough   | F      | 1996-07-06 |
|  10145 | 1956-03-30 | Akemi      | Esposito     | F      | 1987-08-01 |
|  10154 | 1957-01-17 | Abdulah    | Thibadeau    | F      | 1990-12-12 |
|  10175 | 1960-01-11 | Aleksandar | Ananiadou    | F      | 1988-01-11 |
|  10190 | 1964-12-11 | Arve       | Fairtlough   | F      | 1986-06-23 |
|  10206 | 1960-09-19 | Alassane   | Iwayama      | F      | 1988-04-19 |
|  10260 | 1961-07-14 | Alper      | Suomi        | F      | 1991-04-13 |
+--------+------------+------------+--------------+--------+------------+
10 rows in set (0.00 sec)

【関連記事】
SQL select文のサンプル集 結合、ソート、別テーブル生成の記述方法は?

insertでテーブルにデータを挿入するサンプルコード

insertで新規にデータを挿入することが可能です。

以下の例では、以下をおこなっています。

  1. employeesテーブルと同じ構造のテーブルを作成
  2. employees_copyテーブルの件数を確認
  3. employees_copyテーブルに4件のデータを挿入
  4. employees_copyテーブルをselectして、挿入されたデータを確認
mysql> create table employees_copy like employees;
Query OK, 0 rows affected (0.04 sec)

mysql> select count(*) from employees_copy;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

INSERT `employees_copy`(
	`emp_no`, `birth_date`, `first_name`, `last_name`, `gender`, `hire_date`
) 
VALUES 
    ( 4, '1982-01-01', 'Siro', 'Takahashi', 'M', '2003-07-01' ),
    ( 5, '1979-08-12', 'Yuji', 'Satoh', 'M', '2003-04-05' ),
    ( 6, '1981-12-05', 'Kyoko', 'Shimada', 'F', '2005-09-01' ),
    ( 7, '1975-03-15', 'Yuri', 'Ooishi', 'F', '2004-04-15' );
Query OK, 4 rows affected (0.10 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from employees_copy;
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|      4 | 1982-01-01 | Siro       | Takahashi | M      | 2003-07-01 |
|      5 | 1979-08-12 | Yuji       | Satoh     | M      | 2003-04-05 |
|      6 | 1981-12-05 | Kyoko      | Shimada   | F      | 2005-09-01 |
|      7 | 1975-03-15 | Yuri       | Ooishi    | F      | 2004-04-15 |
+--------+------------+------------+-----------+--------+------------+
4 rows in set (0.00 sec)

【関連記事】
MySQL Insert サンプルコード集 一文で一括挿入する方法とは?

まとめ

ポテパンダの一言メモ
  • SQLのクエリとは、データベースに対して発行するSQLコード
  • クエリには例えば、create table、select、insertなどがある
  • クエリの文法は、SQL標準として規定され、主要DBMSではある程度共通して使える

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。