受講料が最大70%OFF 受講料が最大70%OFF

MySQLやPostgreSQLなど「SQL」というワードは分かっていても、拡張子でSQLを見かけることはあまりないかもしれません。

こと学習したての方にとっては、まだ見たことのない方も多いと思います。

このSQL拡張子のファイルが何の役に立つのか?どういったことのためのものなのか?今回はその解説を行っていきたいと思います。

拡張子がSQLとなっているファイル

SQLの命令文で構成されているファイルをSQLファイルと呼びます。

これがどういう場合に使用されるかについてはその作成者次第ではありますが、予め決まった動作を実行したい場合にこのファイルの中にクエリを書いておいて、SQLにこのファイルを読み込ませることでSQL文を実行させることが出来るというものです。

なぜこのような事をするかというと、例えば何度も同じクエリを発行するというのは記述ミスを誘発することに繋がりかねません。

かといってクエリを変数に代入しておいても、クラスが違えば呼び出し時にそのクラスの読み込み命令を宣言する必要があり、こちらも手間がかかります。

こういった場合は.sqlに記述しておけば、一度の記述で何度でも使いまわしがきくため、人的ミスも減り開発にかかる手間も省略できるのでこのような方法がよくとられるケースがあります。

また、.sqlというとなじみがあまりない拡張子かもしれませんが、要するにsql文を発行できる状態であれば特に.sqlにこだわる必要もありませんので.txtでも構いません。

SQL文を準備する

では早速、実際にどのように実行させるのかについて見ていきましょう。

まず最初に、読み込ませる基となるsql文を記述したファイルを作成します。

これはテキストファイルで構いませんので、メモ帳などに記述しましょう。

もちろん一目でわかるようにsql拡張子にしておきたいなら、メモ帳を開き保存時に拡張子の変換を行うだけなのでどちらでも構いません。

今回は例として以下のSQL文を発行するようにします。

DROP TABLE ID EXISTS users;
CREATE TABLE users(
	id integer,
	name varchar(30),
	age integer
);
INSERT INTO users
VALUES
(1, arex, 20),
(2, Jackson, 23),
(3, Liam, 16),
(4, Noah, 30),
(5, Aiden, 18),
(6, Caden, 25);

このSQL文をまずはメモ帳に記述し保存しておきます。

保存時の拡張子は今回は「.sql」としました。

これで準備は整ったので、次はこのファイルを読み込みます。

二通りの読み込み方法

方法はいくつかありますが、まずは基本的なコマンドラインを使った読み込み方法から説明します。

最初にデータベースを準備しておきます。

データベースの作成は以下の通りです。

# mysql -u root -e "CREATE DATABASE IF NOT EXISTS sample_db"

ここでは”sample_db”という名前のデータベースを用意しました。

次に、コマンドでリダイレクトを使用し該当ファイルを読み込みます。

# mysql -u root -D sample_db < sqlSample.sql

コマンドはこれで終了です。

このようにすることで、該当データベースにテーブルが出来て、レコードまで作成されています。

結果を見てみましょう。

# mysql -u root -D sample_db < sqlSample.sql
// 登録されたかどうかを確認
# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 754
Server version: 10.4.10-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use sample_db;
Database changed
MariaDB [sample_db]> select * from users;
+------+---------+------+
| id   | name    | age  |
+------+---------+------+
|    1 | Arex    |   20 |
|    2 | Jackson |   23 |
|    3 | Liam    |   16 |
|    4 | Noah    |   30 |
|    5 | Aiden   |   18 |
|    6 | Caden   |   25 |
+------+---------+------+
6 rows in set (0.000 sec)

データベースからSELECTでリストを確認してみると、ファイルから出力されたクエリにより登録が完了していることが確認できます。

もう一つの方法はMySQLシェルコマンドから登録をかける方法です。

これも似たような形となりますが、若干コマンドが異なります。

シェルコマンドを使用する場合には以下のように記述します。

source sqlSample.sql

記述はこれだけです。

シェルコマンドでは”source”を使用することでファイルを実行します。

これで先ほどと同じように登録までが完了します。

それでは再度、登録できたかどうかを確認してみましょう。

MariaDB [(none)]> use sample_db
Database changed
MariaDB [sample_db]> source sqlSample.sql
Query OK, 0 rows affected, 1 warning (0.000 sec)

Query OK, 0 rows affected (0.018 sec)

Query OK, 6 rows affected (0.002 sec)
Records: 6  Duplicates: 0  Warnings: 0

MariaDB [sample_db]> select * from users;
+------+---------+------+
| id   | name    | age  |
+------+---------+------+
|    1 | Arex    |   20 |
|    2 | Jackson |   23 |
|    3 | Liam    |   16 |
|    4 | Noah    |   30 |
|    5 | Aiden   |   18 |
|    6 | Caden   |   25 |
+------+---------+------+
6 rows in set (0.000 sec)

“source”がエラーなく実行されたことで、「Query OK, 0 rows affected, 1 warning (0.000 sec)」以下が出力されていることが確認できます。

またSELECTを使用しテーブルを確認した際にもきちんとテーブル内にレコードが存在していることが確認できました。

まとめ

いかがでしたか?

今回はMySQLで外部ファイル(拡張子が.sqlのファイル)を読み込みその中に記述されているSQL文を実行するまでの解説をしてみました。

制作現場では複数のスタッフで手分けしてシステムを完成させますが、今回の方法を使えばプログラムを分散させ、同時に複数で色々なシステムを構築することが可能になります。

学習を始めた方も、このようにマルチタスクな考え方や方法を身に着け、できるだけ実践で役立つような学習をするよう心がけてください。

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

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

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

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

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

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

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

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

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

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

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