SAMURAI TERAKOYA

[MAMP] データベース言語(SQL)の学習をコマンドによる操作で簡単に行う方法

SQL

本記事では、Web制作/開発において広く用いられているデータベースを操作するための言語であるSQLについての基礎からMAMPとVisual Studio Code(ターミナル)を用いたコマンド操作を行う方法についてご紹介させて頂きます。
初学者の方でも理解できるように図解で解説していきますので、ご安心ください。

 

MAMPをまだ準備できていない方と以下の記事よりご準備頂ければと思います。

 

MAMP :   

[ 2022年度版 ] MAMPでPHP, WordPressにおけるローカルでの開発環境を準備する方法
本記事では、PHPの学習及び開発環境として広く活用されているMAMPをインストールし、PHPにおけるローカルの開発環境を準備するための手順をご紹介させて頂いております。 主にMacの方向けに書いておりますが、Windowsの方でもOSの選択...
✅   SQL言語とは何かがわかる
✅   データベース/テーブルを理解することが出来る
✅   データベース言語とプログラミング言語との違いを理解出来る
✅   コマンドにてMySQLにログインをし、操作をする方法が身に付く

SQLとは何か??

 

SQLはデータベース(RDBMS)を操作するための言語になり、多くのデータ(情報)を格納してあるデータベースから必要なデータを取得したり、更新/削除などの操作を行うためにSQLを用います。また、SQLは国際標準化されているため、現在公開されているほぼ全てのデータベースで使用することが可能です。

例としては以下のものが挙げられます。

① Oracle社のOracle Database
② Microsoft社のMicrosoft SQL ServerやAccess
③ オープンソース : MySQL
④ オープンソース : PostgreSQL

データベース/テーブルとは??

データベース

例えば、以下の画像を確認して頂きますと、とあるユーザーがとある商品をサイト上で検索した際に検索された商品に一致する情報がデータベース内にないかを確認し、見つかった商品情報を結果としてサイトへ返していることがわかるかと思います。

つまりデータベースとは、検索や蓄積が容易にできるよう整理された様々な情報の集まりであり、Webシステム/アプリケーションで用いられる各種データがテーブルという形でまとめられているところになります。

テーブル

データベースの説明の箇所で少し出てきましたが、テーブルとは、とある情報における集合体になります。
例えば、以下の画像ですと、個人に関する情報の集合体(登録されている人数分まとめられている), 商品に関する情報の集合体(提供している商品の一覧がまとめられている)などが確認できると思いますが、簡単にいうとこの一つ一つがテーブルになります。

 

スポンサーリンク

プログラミング言語との違い

プログラミング言語

プログラミング言語とは、主にコンピュータを操作するための言語になります。種類としては、PHPやRuby, Python, Javaなどが挙げられますが、コンピュータに対してどんな命令をするかをコードとして記述していきます。コード記述の例としては、繰り返し(ループ)処理や条件ごとに処理を分けるような条件分岐などがあります。

データベース言語

主には、SQLになりますが、データベースにしか命令を送ることはできない言語になります。命令を送る方法に関しても2パターンあり、ターミナルを通してコマンドを命令をする方法(対話型)とプログラミング言語と同様にVSCodeなどのコードエディタ上にSQLの命令文を埋め込む方法(埋め込み型)があります。
命令の種類についても次の項目で詳しくみていきますが、SQLでは、「作成」、「削除」、「更新」、「挿入」といった感じでシンプルなものとなってます。

SQLの命令文

データ定義言語(DDL)

データベースのデータ構造を定義したり、オブジェクト同士の関係を定義する言語になります。

命令文の種類としては、以下のようなものがあります。

—-
①  CREATE   (新しいデータベースやテーブルなどのオブジェクトを定義)
②  JOIN   (テーブル同士を結合)
③  DROP   (定義したオブジェクトを削除)
④  ALTER   (定義したオブジェクトの内容を変更)
⑤  TRUNCATE   (データをすべて削除)

—-

データ操作言語(DML)

データの取得・登録・更新・削除などのデータ操作に分類し、設定を変更したりするための言語になります。

命令文の種類としては、以下のようなものがあります。

—-
①  SELECT   (データの検索)
②  INSERT   (データの挿入)
③  UPDATE   (データの更新)
④  DELETE   (データの削除)

—-

データ制御言語(DCL)

データベースを操作するための権限の付与/剥奪などを含むアクセス制御を行うための言語になります。

命令文の種類としては、以下のようなものがあります。

—-
①  GRANT   (権限の付与)
②  REVOKE   (権限の剥奪)
③  BEGIN   (トランザクションの開始)
④  COMMIT   (トランザクションの確定)
⑤  ROLLBACK   (トランザクションの破棄)

—-

 

スポンサーリンク

ターミナルからSQLの命令文を操作

 

主にデータ定義言語とデータ操作言語の使い方をみていきたいと思います。
今回、取り上げない命令文については、これから手順を参考に試してみてくださいね。

手順としては以下の通りになります。

① MAMPの起動 ~ mysqlへログイン
② データベースの作成 ~ データの選択
③ テーブル作成 ~ データの削除
④ ~ mysql 終了(ログアウト)

MAMPの起動 ~ mysqlへログイン

MAMPを開く → stratボタンを押して、起動する

VScodeを開く → メニュー : ターミナル → 新規のターミナル でターミナルを起動



ターミナルが起動できたら、早速コマンドの入力をしていきます。
まずは、mysqlをログイン/起動する必要があるため、以下のコマンドを順番に入力しましょう。

/* cdコマンドで、指定のフォルダへ移動  */
cd /Applications/MAMP/Library/bin/
/* ユーザー名は、rootでログイン */
./mysql -u root -p


Enter Password :と出てきますが、rootと入力し、Enterキーを押して頂ければOK!
次のようになっていれば、mysqlの起動は完了です。

データベース作成 ~ データの選択

 

以下の命令文をターミナルで入力してください。

/* sampleという名前のデータベースを作成, デフォルトの文字コードは、UTF-8で設定。*/
CREATE DATABASE sample DEFAULT CHARACTER SET utf8;

これ以降のコマンドも同様ですが、「Query OK」と表示されていれば成功と考えて頂ければと思います。

 

以下の命令文をターミナルで入力してください。
ここでは、一覧を表示し、作成したデータベースが追加されているかを確認します。

/* データベース一覧の表示 */
SHOW DATABASES;

 

以下の命令文をターミナルで入力してください。
一覧を表示することで、現時点でもいくつかのデータベースがあることが確認できたかと思います。
つまり、命令を出すにもまず、どのデータベースを使用するかを選択しなくてはいけません。

/* 使用するデータベースの選択 : sampleを選ぶ */
USE sample;

 

スポンサーリンク

テーブル作成 ~ データの削除

 

以下の命令文をターミナルで入力してください。

/* テーブルの作成 : id(数値), 氏名(テキスト), メールアドレス(テキスト)の項目を設定 */
CREATE TABLE User (id INTEGER, name TEXT, email TEXT);

 

以下の命令文をターミナルで入力してください。

/* テーブルの一覧を表示 */
SHOW TABLES;


 

以下の命令文をターミナルで入力してください。
続いては、テーブルの構造、つまりは、設定した項目(氏名など)の確認をしましょう。
テーブルの作成時に設定した3つの項目が表示されます。

/* テーブルの構造を確認 */
DESC User;

 

テーブルへのデータの追加には、INSERTを用いていきます。
以下の命令文をターミナルで入力してください。

/* テーブルへデータの追加(挿入) */
/* 命令文 : INSERT INTO テーブル名 VALUES (データ1, データ2, データ3....); */
INSERT INTO User VALUES (1, "tanaka", "kkk@aaa.com");

 

先程、INSERTを用いて、データの追加をしましたので、ちゃんと追加できているか確認してみましょう。テーブル内のデータを表示するには、SELECTを用いていきます。

以下の命令文をターミナルで入力してください。

/* テーブル内のデータを表示 */
/* 命令文 : SELECT 項目1, 項目2 ... FROM テーブル名;  */
/* ※ すべての項目を表示させたい場合は、「*」を指定  */
SELECT * FROM User;

/* idと氏名のみ表示 */
SELECT id, name FROM User;


 

データの追加…ときたら更新は、必須です。
更新をするためには、UPDATEを用いていきます。

以下の命令文をターミナルで入力してください。

/* テーブル内のデータを更新 : idが1の氏名をsuzukiに変更します。 */
/* 命令文 : UPDATE テーブル名 SET 項目1 = 'foo' WHERE 条件の指定; */
UPDATE User SET name = 'suzuki' WHERE id = 1;



UPDATE文が実行できたら、SELECTで更新されているかを確認しましょう。

SELECT * FROM User;

 

ここまで、テーブル内のデータの追加, 更新, 表示と命令文を実行していきましたが、データの削除を行っていきます。

以下の命令文をターミナルで入力してください。

/* テーブルの削除 */
/* 命令文 : DELETE FROM テーブル名 FROM WHERE 削除するデータの条件を指定;  */
/* ※ すべてのデータを削除したい場合は、WHEREの指定は、なしでOK  */
DELETE FROM User WHERE id=1;


DELETE文が実行できたら、SELECTでテーブル内のデータが削除されていることを確認しましょう。Empty Setと出ればデータがないことを表していますので、OKです。

SELECT * FROM User;

 

スポンサーリンク

~ mysql 終了(ログアウト)

 

ここまで、データベースの作成からテーブル内のデータの削除まで確認していきましたが、テーブル内も空にしたことですので、
テーブルの削除から順にみていきましょう。

以下の命令文をターミナルで入力してください。

/* テーブルの削除 */
/* 命令文 : DROP TABLE テーブル名; */
DROP TABLE User;

/*  テーブル一覧を表示 */
SHOW TABLES;

/* データベースの削除 */
/* 命令文 : DROP DATABASE データベース名; */
DROP DATABASE sample;

/* データベース一覧を表示 */
SHOW DATABASES;


テーブル, データベースともに削除されていることが確認できましたら、OKです。
最後にmysqlをログアウトして、終了していきましょう。

ログアウトするには、exitとターミナル上でうち、Enterキーを押しましょう。

exit

 

ここまで、お疲れ様でした。
MAMPの仮想サーバーは、停止し忘れていないか確認してくださいね。

SQLの基礎的な使い方からターミナルからの操作方法までみていきましたが、phpmyadmin上からでもデータベースの作成からデータの削除まで、行うことは可能なため、実際に触ってみてみることもお勧めします。

—–

まとめ

✅   SQL言語
⇨ データベース(RDBMS)を操作するための言語で、データ操作言語/データ定義言語/データ制御言語などがある
✅   データベース
⇨ 検索や蓄積が容易にできるよう整理された様々な情報の集まり
✅   テーブル
⇨ とあるデータの集合体(ex>ユーザー情報)
✅   データベース言語とプログラミング言語の違い
⇨ データベース言語は、データベースにしか命令を送ることはできない言語であり、プログラミング言語は、コンピュータを操作するための言語である

コメント

タイトルとURLをコピーしました