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で新規にデータを挿入することが可能です。
以下の例では、以下をおこなっています。
- employeesテーブルと同じ構造のテーブルを作成
- employees_copyテーブルの件数を確認
- employees_copyテーブルに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ではある程度共通して使える