こんにちは!
PHPのLaravelやJavaScriptでWeb開発をしているフリラーンスエンジニアのファドと申します!
こちらの記事はSQL教材の第1回目の記事になります。
その他のSQL教材を学習したい方は下記リンクから直接教材へ飛ぶことができます。
SQLとは
SQLはデータベース(DB)を操作するための言語
です。
データベースにデータを挿入したり、検索したりする際に利用します。
データベースのなかには、数万・数百万件ものデータが保存されていますが、SQLを使うことで効率的に操作をすることが可能
なのです。
SQLは国際標準化されているため、さまざまなデータベースで利用できます。
有名なデータベースとしては、Oracle、MySQL、PostgreSQL、SQLiteなどが、いずれもSQLで操作可能です。
SQLでデータベースに対して行える操作として、主に次のようなものがあります。
①データの検索
②データの追加
③データの更新
④データの削除
⑤テーブルの作成
⑥テーブルの削除
⑦テーブルの主キーの設定
⑧ユーザー権限の付与
★検索ワード
・SQL とは
データベースとは
データベース
(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。
通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。
狭義には、データベース管理システム (Database Management System, DBMS) またはそれが扱う対象のことをいう。
なんとなく理解できますが、具体的にどういうものかイメージしづらいですね。
かんたんにいうと、データベースとは一定の形式で整理されたデータの集まり
のことです。
★検索ワード
・データベース とは
・DB とは
事前準備
今回データベースとして使用するのは、MAMPに標準で搭載されているphpMyAdmin
というものです!
phpMyAdmin
は、ブラウザ上でMySQLの操作を行うことができます。
SQL文を実行できますし、データベースやテーブルの作成やデータの表示、挿入など大抵の操作はグラフィカルに操作できます。
また、様々なデータ形式のデータを一括インポートできたり、入っているデータを様々な形式でエクスポートすることができたりするため、直感的に用途に応じた操作を行えます。
では早速データベースを使用するための準備を行っていきましょう!
MAMP、XAMPPを既にインストールしている方は起動して
ブラウザのURLに
http://localhost:8888/phpMyAdmin/
もしくは
http://localhost/phpMyAdmin/
と入力するか、以下を参考にphpMyAdminを開いてみてください
①ヘッダーメニューにあるTools
をクリック
②phpMyAdmin
をクリック
下記のようなページが表示されればOKです!
下記のLanguage
という項目から言語を日本語に変更できるので、設定しておきましょう!
★検索ワード
・phpMyAdmin とは
・phpMyAdmin 使い方
データベースを作成する
以下の手順でphpMyAdminで学習用のデータベースを作成していきましょう!
1.メニュータブのデータベース
をクリック
2.データベース名を入力
今回はdb_test
という名前のDB(データベース)を作りましょう。
db_testと入力し、作成
をクリック
左側のメニューバーに先程作成したdb_test
が追加されましたね!
これでデータベースの作成は完了です。
★検索ワード
・phpMyAdmin DB作成
テーブルを作成する
「一つ前のデータベースを作成する」で作成したdb_testというデータベースの中にテーブル(表)
を作りましょう!
1.テーブル名を入力test01
という名前のテーブルを作りましょう。
名前の入力欄にtest01
を入力、カラムは4
で設定し、実行
を押してください。
2.カラムを入力
ここではテーブルの項目の名前やデータ型、長さ等を入力します。
データ型についてはこちらを参考
https://blog.proglus.jp/695/
データ型がINT
の長さは設定が必須ではないので今回は入力しません。
以下のように記入できたら右下の保存する
を押して保存しましょう。
このようにdb_testの中にtest01というテーブルができていれば、成功です。
データを登録する
続いて、データを登録していきます。
今回は下記のようなデータをtest01に登録したいと思います。
id | name | age | code |
---|---|---|---|
1 | タロウ | 18 | 001 |
2 | ハナコ | 22 | 001 |
3 | イチロウ | 48 | 002 |
4 | キョウコ | 46 | 002 |
5 | ポチ | 3 | 003 |
以下の手順でphpMyAdminから登録できます。
1.データを登録したいテーブルをクリック
2.挿入をクリック
3.値を入力
まずは先程の表にあった、タロウのデータを作成します。値
に表を参考にデータを入れます。
idに1
、nameにタロウ
、ageに18
、codeに001
をそれぞれ入力してください。
入力ができたら実行をクリック
下記の画像のような画面が表示されればOKです!
それではメニュータブから、表示をクリックしデータを確認しましょう。
4.データの確認
データがうまく登録できているか確認しましょう!
下記の画像のようになっていればOKです!
先ほどと同じ要領で残りのデータを登録しましょう!
id | name | age | code |
---|---|---|---|
1 | タロウ | 18 | 001 |
2 | ハナコ | 22 | 001 |
3 | イチロウ | 48 | 002 |
4 | キョウコ | 46 | 002 |
5 | ポチ | 3 | 003 |
画像のように登録できたら、次へ進みましょう。
★検索ワード
・phpMyAdmin テーブル作成
・DB カラムとは
用語解説
さて、ここまで流れに沿って進めてきましたが、ここで用語の解説をしていきます。
テーブル、カラム、レコードなど、慣れない言葉が出てきましたね。
以下画像で見るとわかりやすいので、構造ごと覚えてしまいましょう。
テーブル、カラム、レコードの関係図
また、データベースを扱う際の用語でよく出てくるものをここで挙げておきますので、
しっかりと覚えておきましょう。
・クエリ
SQLを実行したときに、データベースに送る命令文のこと
・一意
一意とは意味や値が一つに確定していること
という意味
データの一意とは、大量にあるデータから、1つの情報が特定できる状態を意味する。
・NULL
null(ヌル、ナル)は、何もない
という意味
プログラミング言語などコンピュータ関係では、何も示さないもの
を表すのに使われる。
・NOT NULL
データベースの項目に付ける制限(制約)のひとつ
この制限のつけられたカラムにはNULL(空の値)
は入れられない。
・AUTO_INCREMENT機能
AUTO_INCREMENTとはそのまま訳すと自動増加
という意味
カラムにAUTO_INCREMENTを指定すると、MySQLが自動的に
一意の連続した番号を生成してくれる。
・PRIMARY KEY(主キー)
テーブルに登録されるレコード(行)の全体の中から、
ひとつのデータを特定するためのもの
つまりPRIMARY KEY(主キー)を設定したカラムには同じ値を入れることができない。
・予約語
テーブル名やカラム名で使えない語句のこと
これは全て覚える必要はないので、命名する時にエラーが出た場合、
確認していきましょう。
以下予約語一覧
https://dev.mysql.com/doc/refman/5.6/ja/reserved-words.html
・インデント
インデントとは、コードの行頭に空白を挿入して先頭の文字を右にずらすこと
インデントは直接プログラムの処理には関係ないですが、
見やすい(可読性の高い)コードを書くというのはとても重要です。
システム開発の現場では様々な人が同じソースコードに触ります。
その際、あなたが書いたソースコードも別の人が触って追記や修正をします。
そのため視覚的にわかりやすいコードを書くことが作業の効率化につながります。
環境にもよりますが、
ここでは基本的にインデントは半角スペース2つを使いましょう。
SQLでテーブルを作成する(CREATE)
さて、今まではphpmyAdminの画面上の操作で色々と作ってきましたが、
それらの操作はSQL文を使うことでも実行できます。
PHPからDBに接続して操作するときや、一度に大量のデータを操作するときなどにSQL文を使用します。
なので、SQL文の使い方を覚えていきましょう。
今回はdb_testの中にtest02テーブルを作っていきたいと思います。
以下の表を参考に作成していきましょう!
id | code | occupation |
---|---|---|
1 | 001 | 会社員 |
2 | 002 | 自営業 |
3 | 003 | 学生 |
4 | 004 | 公務員 |
では最初にphpMyAdminのトップページ
http://localhost:8888/phpMyAdmin/
もしくは
http://localhost/phpMyAdmin/
にアクセスしましょう。
そしてメニュータブのSQLをクリックしてください。
以下のような画面が表示さればOKです!
このテキストエリアにSQLを書いていきます。
※入力フォームにSELECT * FROM WHERE 1と表示されていたら、消してから書いてください
今回はテーブルを新規作成したいのでCREATE文
を使います。
書き方は以下のとおりです。
CREATE TABLE DB名.テーブル名 (
column1 データ型(長さ) その他オプション,
column2 データ型(長さ) その他オプション,
column3 データ型(長さ) その他オプション,
column4 データ型(長さ) その他オプション
);
分解して説明していきます。
まず、それぞれの値の区切りには半角スペースを使います。
CREATE TABLE・・・これはテーブル(TABLE)を作る(CREATE)ということを宣言しています
DB名.テーブル名・・・ここで、テーブルを作る対象のDB名と新規作成するテーブルのテーブル名を宣言しています
そして以下の内容を();で囲むことでCREATE TABLEの命令の範囲を示しています。
column1 データ型(長さ) その他オプション,
column2 データ型(長さ) その他オプション,
column3 データ型(長さ) その他オプション,
column4 データ型(長さ) その他オプション
ここでは、各カラムの名前、データ型(長さを指定したい時は長さを記入)
その他オプション(NOT NULL やAUTO_INCREMENTなど)を指定します。
カラムごとに,(カンマ)
で区切ります。
最後の行はカンマはいりません。
最後の行にカンマを入れるとエラーになってしまうので気を付けましょう。
また、改行をしなくても命令文は動きますが、
実際の開発現場を意識し、見やすいコードを書く練習のために改行を行う癖をつけておきましょう!
ここではインデントを半角スペース2個分とします。
では早速以下のコードを書いていきましょう。
CREATE TABLE db_test.test02 (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
code VARCHAR(255),
occupation VARCHAR(255)
);
書けたら、実行しましょう。
うまく作成できているか確認してみましょう!
下記の画像のようになっていればOKです!
これでテーブルの作成が完了しました!
エラーが出るようであれば、コードの記述に間違いがあるので、見本のコードどおりに記述できているか確認しましょう。
★検索ワード
・SQL CREATE 使い方
・SQL データ型
SQLでデータを登録する(INSERT)
では次はデータ(レコード)を登録していきましょう。
レコードの新規登録にはINSERT文を使います。
使い方は以下のとおりです!
INSERT INTO
DB名.テーブル名 (カラム名1, カラム名2, カラム名3)
VALUES
(値1, 値2, 値3);
test02の一番上のレコードを追加するSQLを書きます。
INSERT INTO
db_test.test02 (id, code, occupation)
VALUES
(1, "001", "会社員");
記述したカラム名の順番通りに VALUESを指定するようにしましょう。
ここでデータ型に注意してください!
VALUESの内容を見ていただきたいのですが
VALUES(1, “001”, “会社員”);
001
と会社員
を””(クォーテーション)
で囲んでいます。
これは文字列型(VARCHAR等)を記載するときのルールで、
文字列をダブルクォーテーション(”)またはシングルクォーテーション(’)で囲んで表現します。
数値を入れたい場合はそのまま書いてOKです。
数値をクォーテーションでくくってしまうと、文字列として扱われてしまうので注意してください。
このテーブルの場合は特に、idは数値(int)
、codeは文字列(VARCHAR)
であることに注意してください。
CREATE文を実行したところと同じページでINSERT文を記述し、実行しましょう!
同じ要領で残りのデータを登録しましょう!
画像のようにすべてのデータが登録できればOKです!
★検索ワード
・SQL INSERT 使い方
・SQL レコードとは
次の教材
次の教材は下記から簡単に飛ぶことができます!
引き続きプログラミングを楽しんでいきましょう!
プログラミング学習サポートについて
「独学で挫折した。。。」
「一人でのプログラミング学習がしんどい。。。」
「未経験からエンジニア転職をしたいけど何をしたら良いかわからない。。。」
このような悩みをお持ちの方向けに、本教材作成者のファドがMENTAという学習サイトにてあなたのプログラミング学習とエンジニア転職を徹底サポートいたします!
サポート価格はなんと1日あたりたったの約300円!
教材で分からない箇所のサポートはもちろんのこと、本サイトで公開しているすべての課題の解答も公開しております。
また、MENTAで学習を終わらせていただいた方限定で懇意にしていただいている企業さんを紹介することもあります!
なお、サポート内容の詳細は下記の通りです。
- 目標設定
- マインドセット
- オリジナル教材見放題
- オリジナル課題見放題
- オリジナル課題の解答見放題
- 課題コードレビュー
- 教材への無制限質問
- 課題への無制限質問
- ポートフォリオ作成アドバイス
- 褒めのコーチング
いくつかのプランを用意させていただいておりますので、下記より一度ご覧ください!
コメント