データベース言語の代表にSQLという言語があります。データベースを扱うためには、SQLのようなデータベース言語の習得が必要ですが、駆け出しエンジニアの方にとって習得のハードルが高いかもしれません。
そのため、今回の記事ではデータベース言語・SQLの入門的な解説を行いつつ、MySQLを使った実践的なハンズオンをご紹介していきましょう。
- データベース言語の概要
- SQLの概要と基本的なコマンド
- MySQLを使った実践的なハンズオン
データベース言語とは?
SQLの前にデータベース言語とは何かについて、簡単にご説明していきましょう。
その名前の通り、データベース言語とはデータベースを扱うために使用するコンピュータ言語のことです。データベース言語を使うことによって、データベースを扱うことができます。
データベース言語にも複数の種類があります。
- データ操作言語 → データの検索や登録、削除や更新などを行うことができる
- データ定義言語 → データベースやテーブル(データを蓄積するもの)の登録や削除などを行うことができる
- データ制御言語 → データへのアクセス制御を行うことができる
まだSQLを扱ったことがない人からすると難しいかもしれませんが、実際にSQLを扱ってみると上記の内容も理解できますので、安心してください。
SQLについてさらに詳しく紹介!
今回ご紹介するSQLは、上記で説明したデータベース言語のうちの1つです。また、現在最もシェアの高いデータベース言語としてもSQLを挙げることができます。
なぜ、SQLが最も使用されるデータベース言語なのかというと、データ操作言語・データ定義言語・データ制御言語全ての役割を担うことができるからです。
SQLを理解できれば、データベースを扱うことができるということです。そのため、多くの人々に使用されるデータベース言語となったのです。
SQLで何ができるのか
SQLを使ってどのようなことができるかについて、基本的なものをコマンドとともにご紹介しましょう。
データベース・テーブルの作成・削除
データを整理・蓄積するためには、データを入れるデータベースと整理するテーブルが必要です。SQLを使うことで、データベースやテーブルを作成することや削除することが可能となります。
作成をする際にはCREATEコマンド、削除をする際にはDROPコマンドを使用します。
データベースの作成
CREATE DATABASE データベース名;
テーブルの作成
CREATE TABLE テーブル名(カラム名1 , カラム名2, カラム名3, ...);
データベースの削除
DROP DATABASE データベース名;
テーブルの削除
DROP TABLE テーブル名;
データベースを作成し、その中にテーブルを作成するため、データベースにデータを築成する際にはまず「CREATE DATABASE」から始める必要があることを覚えておきましょう。
データベースとテーブルの関係について、「電話帳」に例えられることが多いです。電話帳は電話番号などの「データ」の集合体、つまりデータベースです。そして、テーブルは電話帳の中の表。電話番号などのデータを見やすいように整理しています。
データベースは仮想の存在のため、現実の何かと完全に一致することはありませんが、SQLを学び始めた段階では身近な物に例えることでイメージがしやすくなるでしょう。
データの登録・取得・削除・更新
データベース・テーブルの作成ができたら、SQLを用いてデータを登録することが可能となります。また、登録されたデータはSQLによって取得・削除・更新を行うことができます。
以下にデータの登録・取得・削除・更新を行う際の具体的なシチェーションをご紹介しましょう。
- 登録 →ブログ記事を書いて投稿する
- 取得 →投稿したブログ記事を閲覧する
- 削除 →投稿したブログ記事を削除する
- 更新 →登録したブログ記事の中身を書き換えて更新する
このように見ると、SQLは使っていないにしてもブログやSNS、インターネットショップなど色々な場面でデータを操作しているということが分かるはずです。自分が作成するアプリに上記のような機能を持たせる場合には、SQLを用いることがほとんどでしょう。
データの登録・取得・削除・更新に使用するSQLのコマンドを見てみましょう。
データの登録
INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUE (値1, 値2, ...);
データの取得
SELECT カラム名 FROM テーブル名;
データの削除
DELETE FROM テーブル名;
データの更新
UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2, … ;
ちなみにDELETEやUPDATEを行う際には、「削除したいデータ」「更新したいデータ」があるはずです。どのデータかを指し示す際には「WHERE」という条件付けを行う必要があります。このWHEREがない状態で、上記の例のようにSQLコマンドを入力した場合、テーブル内の全てのデータが削除・更新されることに気をつけましょう。
「WHERE」で条件付けをする場合
DELETE FROM テーブル名 WHERE 条件; UPDATE テーブル名 SET カラム名1 = 値1, カラム名2 = 値2 WHERE 条件;
実践編!MySQLを使ってSQLを体験してみよう
最後にSQLで扱えるデータベースMySQLを使用して、SQLを体験してみましょう。
MySQLのインストール・接続
まだMySQLをインストールしていない場合は、インストールしましょう。
$ brew install mysql
MySQLのインストールが終了したら、接続します。
$ sudo mysql -u root -p
データベースの作成
まずはデータベースをMySQL上に作成し、使用するデータベースを指定しましょう。
mysql> CREATE DATABASE potepan; Query OK, 1 row affected (0.00 sec) mysql> USE potepan;
テーブルの作成
作成したデータベース内に、テーブルを作成してみましょう。
mysql> CREATE TABLE foods(food_id INT, name VARCHAR(50), price VARCHAR(50)); Query OK, 0 rows affected (0.00 sec)
これでfoodsという名前のテーブルがデータベース上に作成されました。テーブル構造を見るには「DESC」というコマンドが使用できます。
mysql> desc foods; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | food_id | int(11) | YES | | NULL | | | name | varchar(50) | YES | | NULL | | | price | varchar(50) | YES | | NULL | | +---------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
データの登録・取得・更新・削除
最後にテーブル上にデータの登録・取得・更新・削除を行ってみます。
データの登録
mysql> INSERT INTO foods(food_id, name, price) VALUE(1, 'Banana', '100'); Query OK, 1 row affected (0.00 sec)
データの取得
mysql> SELECT * FROM foods; +---------+--------+-------+ | food_id | name | price | +---------+--------+-------+ | 1 | Banana | 100 | +---------+--------+-------+ 1 row in set (0.00 sec)
「*」には「全て」という意味があります。
データの更新
mysql> UPDATE foods SET food_id = 2, name = 'Apple', price = '200'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
ちなみに、この段階でデータの取得をしてみると以下のように表示され、更新されたことがわかります。
mysql> SELECT * FROM foods; +---------+-------+-------+ | food_id | name | price | +---------+-------+-------+ | 2 | Apple | 200 | +---------+-------+-------+ 1 row in set (0.00 sec)
データの削除
mysql> DELETE FROM foods; Query OK, 1 row affected (0.00 sec)
WHEREを使用していないため、テーブル上の全てのデータが削除されています。SELECT文で確かめてみましょう。
mysql> SELECT * FROM foods; Empty set (0.00 sec)
まとめ
今回の記事ではデータベース言語・SQLの入門的な解説を行いつつ、MySQLを使った実践的なハンズオンをご紹介していきました。
SQLはターミナルから操作することが多いためハードルが高いと感じる人もいるかもしれません。しかし、SQLを扱えるようになることでデータベースを持ったアプリ開発など、できることが一気に広がります。今回の記事をきっかけに、ぜひSQLを扱えるようにしていきましょう!
【関連記事】
▶︎SQLの基本とも言えるテーブル結合、その種類と使い方について解説
▶︎【実例で学ぶ】SQL「UPDATE」文の使い方 基礎・応用編
▶︎SQLコードの意味がわからない…不思議なSQLコードサンプル集
すでにデータベースという言葉を聞いたことがあるという人は多いでしょう。しかし、データベースとは何かについて理解していなければ「データベースを扱うための言語」という説明ではイメージがしづらいかもしれません。
ここでいうデータベースとは、複数のデータを整理して蓄積したデータの集合体のことです。そして、整理・蓄積されたデータを取り出す際に「データベース言語」を使用する必要があります。