n-HIROKIの日常

n-HIROKIの取り組みを記録したものです。

データベースの基礎

こんにちは!
n-hirokiです!


データベースの基礎です!
「データベースとは何なのか?」から「データベースの作成や操作」までのメモです!





1、データベースとは

「データを一定のルールで蓄積し、必要に応じて取り出せるようにしたもの」


MySQLPostgreSQLなどがあります。


データベースとExcelは似ています!

データベース ➡︎ Excelでいうファイル
テーブル(表)➡︎ExcelでいうSheet
レコード(行)➡︎Excelでは横の行
フィールド(列)➡︎Excelでは縦の列



テーブルの一例

<データベースの場合>
データベース名 : db_name
テーブル名 : table_name
フィールド名 : id  int(12) PRIMARY KEY : AUTO_INCREMENT
フィールド名 : lat  varchar(64)
フィールド名 : lon  varchar(64)
フィールド名 : img varchar(128)
フィールド名 : date  datetime


2、データベースの作成

XAMPP使用

1、最初にデータベースを作成します。http://localhost/xampp/
2、画面の左メニュー”phpMyAdmin"を選択
3、「データベース」タブをクリック
4、「データベースを作成する」に半角英数字で好きなデータベース名を入力
5、照合順序はutf8_unicode_ciを選択
6、「作成」ボタンで作成


テーブルの作成は先ほどの一例のように入力してみてください。








3、データベース操作

テーブル基本操作をSQLで行います
MySQLは以下のコマンドを使用していろいろな操作ができます。


SQLコマンド

INSERT ➡︎ データを登録することができます。
SELECT ➡︎  データを表示することができます。
UPDATE ➡︎  データを更新することができます。
DELETE ➡︎  データを削除することができます。




INSERT(データ登録)

書式
INSERT INTO テーブル名(カラム1,カラム2,カラム3,.....)VALUES(値1,値2,値3,.....);


INSERT INTO table_name(id, lat, lon, img, date)VALUES(NULL,'39.11','132.12','temp.jpg','2017-07-07 00:00:00');


SELECT(データ取得)

書式
SELECT 表示するカラム FROM テーブル名;


SELECT * FROM table_name;  --全指定
SELECT name FROM table_name;  --単体指定
SELECT name,tel FROM table_name;  --複数指定

SELECT * FROM table_name WHERE name = '太郎';

UPDATE(データ更新)

書式
UPDATE テーブル名 SET 変更データ WHERE 選択データ;


UPDATE table_name SET img='temp.jpg' WHERE id=1;
UPDATE table_name SET img='01.jpg' WHERE img='temp.jpg';


DELETE(データ削除)

書式
DELETE FROM テーブル名;


--全て削除
DELETE FROM table_name;

--WHEREを使用して特定のデータを削除します。
DELETE FROM table_name WHERE img='01.jpg';

注意!!
DELETEするとデータは復旧できないので気をつけましょう!







4、PHPとDB接続

データ登録

//1.接続します
$pdo = new PDO('mysql:dbname=db_name;host=localhost', 'root', '');

//2.DB文字コード指定
$stmt = $pdo->query('SET NAMES utf8');

//3.データ登録SQL作成
$stmt = $pdo->prepare("INSERT INTO table_name(id, lat, lon, img, date)VALUES(NULL, :lat, :lon, :img, sysdate())");

$stmt->bindValue(':lat', '39.11');
$stmt->bindValue(':lon', '39.11');
$stmt->bindValue(':img', '01.jpeg');

//4.SQL実行
$flag = $stmt->execute();


データ取得

$pdo = new PDO('mysql:dbname=table_name;host=localhost','root', '');
$stmt = $pdo->query('SET NAMES utf8');

$stmt = $pdo->prepare("SELECT * FROM table_name");
$flag = $stmt->execute();
$view = "";
if($flag==false){
  $view = "SQLエラー";
}else{
  while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
    $view .= '<div><img src="' . $result['img'] . '">' . $result['lat'] . ',' . $result['lon'] . '</div>';
  }
}


あくまでも僕のメモなので参考までに!