SQLという言葉を聞いたことはあるけれでも、実際にどういったものか理解出来ていない方も大勢いらっしゃるのではないでしょうか。
本記事では、データベース言語であるSQLの入門編として、基本的な知識を初心者向けにご紹介していきたいと思います。
データベース言語SQLの基本を抑えよう!
データベース言語であるSQLは、データベースを操作するために様々な場面で活用されます。
まずは基本的な概要について把握していきましょう。
そもそもデータベースって何?
SQLの説明に移る前に、そもそもデータベースって何ということを理解しておく必要があります。
データベースは、簡単に言うとデータの集まりで、様々なデータが整理された状態で格納されているシステムのことを指します。
データベースにはいくつかの種類が存在しますが、一般的に利用される「リレーショナルデータベース」をまずは理解していきましょう。
リレーショナルデータベースとは
リレーショナルデータベースは、テーブルと呼ばれる2次元の表形式でデータを管理します。
データの項目を表す「列」と、項目に該当する実データを格納する「行」によって構成されます。
リレーショナルデータベースは、「RDBMS(リレーショナルデータベース管理システム)」と呼ばれるシステムから動かすこととなり、「Oracle Database」「SQL SERVER」「MySQL」などが代表されます。
SQLは何のために使うの?
SQLは、上述したリレーショナルデータベースを操作するために利用する言語のことを指します。
最も一般的な使い方としては、格納されたデータを効率的に検索するために利用されます。
SQLでは、検索処理だけでなく、データの追加や削除、データを格納するためのテーブル作成や削除、データベースに対する権限の付与など、データベースに対する様々な処理を実行することが可能です。
データベース言語SQLは3種類に区分される
次にデータベース言語であるSQLのカテゴリについて、学習していきましょう。
SQLには大きく「データ定義」「データ操作」「データ制御」の3種類のカテゴリが存在します。
データ定義
データ定義は「DDL(Data Definition Language)」と呼ばれ、データベース自体やテーブルの作成・削除・変更などを行う命令文を指します。
- CREATE: データベース・テーブルの作成
- DELETE: データベース・テーブルの削除
- ALTER: データベース・テーブルの変更
データ操作
データ操作は「DML(Data Manipulation Language)」と呼ばれ、テーブルからデータを検索したり、追加・削除する命令文を指します。
- SELECT: テーブルからデータを検索
- INSERT: テーブルにデータを追加
- DELETE: テーブルからデータを削除
- UPDATE: テーブルのデータを更新
データ制御
データ制御は「DCL(Data Control Language)」と呼ばれ、データベースの実行制御やユーザーへの権限付与を行う命令文です。
-
- COMMIT: データベースへの変更を確定
- ROLLBACK: データベースへの変更を取り消し
- GRANT: ユーザーへの権限付与
- REVOKE: ユーザーから権限削除
SQLでデータベースを操作してみよう
ここからは実際にデータベースをインストールしてSQLを触ってみましょう。
文章を読んでインプットするだけでなく、実際にアウトプットをすることでより理解が深まります。
今回は「MySQL」と言うデータベースをMac環境にインストールした状態から説明していきます。
もし他のデータベースを使ってみたい場合やWindows環境で利用する場合、適宜対応するコマンドに読み替えながら、それぞれの環境で実行してみてください。
データベース起動からログインまで
まずはインストールしたMySQLを起動させましょう。
mysql.server start
下記のように「SUCCESS」と表示されれば起動完了です。
Starting MySQL ... SUCCESS!
次にログインしてみましょう。
インストール後パスワードを設定していない場合、下記コマンドでログイン出来るはずです。
mysql -u root
パスワードを付与している場合、下記のコマンドを実行した後、設定したパスワードを入力してください。
mysql -u root -p
ターミナルの表示が「mysql> 」に切り替わればログイン完了です。
データベース作成~選択
MySQLにログインした後は、データベースを作成する必要があります。
今回は「sample_db」という名前のデータベースを作成してみましょう。
CREATE DATABASE sample_db;
SQLを記述する際、末尾に「;」を入力することで、1つの命令文の完了を意味します。
CREATE DATABASEコマンドで、データベースの作成が完了しました。
しかしこの状態では、データベースを作成しただけであって、実際に利用することを明示しなければなりません。
USE sample_db;
USEコマンドの後ろにデータベース名を入力することで、実際に利用出来る状態となります。
テーブル作成~データ操作
実際にデータを格納するためのテーブルを作成してみましょう。
CREATE TABLE user(id int, name varchar(30), age int);
テーブル作成にはCREATE TEBLEコマンドを利用します。
サンプルでは「user」というテーブルに「id」「name」「age」というカラムを作成しています。
次に、作成したテーブルにデータを投入してみましょう。
INSERT INTO user VALUES(1, "山田太郎", 30);
データの追加にはINSERT INTOコマンドが利用可能です。
登録したデータを抽出してみます。
SELECT * FROM user;
SELECTコマンドでデータの選択が可能で「*」は全てのカラムを取得するという意味合いとなります。
特定のカラムだけを取得したい場合には、カラム名をカンマ区切りで指定します。
SELECTコマンドを実行した結果が下記となります。
+------+--------------+------+ | id | name | age | +------+--------------+------+ | 1 | 山田太郎 | 30 | +------+--------------+------+
登録したデータを更新したい場合には、UPDATEコマンドが利用可能です。
UPDATE user SET age = 32 WHERE id = 1;
SETで変更したいカラム名と値を設定し、WHERE句で対象データを絞り込みます。
再度SELECTコマンドでデータを確認すると、対象データが更新されていることがわかります。
+------+--------------+------+ | id | name | age | +------+--------------+------+ | 1 | 山田太郎 | 32 | +------+--------------+------+
さいごに:データベース言語SQLを積極的に使ってみよう!
本記事では、データベース言語SQLの基本的な知識と操作方法について、初心者の方向けにご紹介してきました。
SQLは1つのデータベースで基本さえ覚えてしまえば、若干データベース毎の特徴はあれど、基本的な操作方法は同じです。
インプットも大事ですが、何度もアウトプットを繰り返すことでスキルとして身についていきますので、今回ご紹介した基本を理解して、徐々に複雑なSQLを理解しながら、的確にデータを取り出せるよう練習してみましょう。
管理者権限が必要な場合は「sudo mysql.server start」で実行してみてください。