MySQLに接続する
sample
/*
mysql:クライアントからmysqlサーバーに接続する
-h:host、ホスト名
-u:user、ユーザー名
-D:database、データベース名
-p:password、値を指定しないとターミナルが入力を求め、入力時に表示されない、セキュア
mysql -h ホスト名 -u ユーザー名 -D データベース名 -p
docker-compose exec app mysql -h db -u book_log -D book_log -p
#パスワード「pass」を入力
MySQLとの接続を切断する
quit(exit):MySQLサーバーへの接続を切断する
exitでも可
sample
quit
exit
MySQL公式ドキュメント
命名ルール
・データべース名、テーブル名、列名に使える文字
→半角文字のアルファベット、数字、アンダーバー
・名前の最初の文字は半角のアルファベット
・名前は重複してはダメ
→1つのデータべースの中に同じ名前のテーブルを2つ以上作成NG
→1つのテーブルの中に同じ名前の列を2つ以上作成NG
テーブルを作成
CREATE TABLE文で作成する
CREATE TABLE文<列名1>,<列名2>,・・・という列を持った<テーブル名>のテーブルを作成
mysql sample.sql
/*
CREATE TABLE [IF NOT EXISTS] <テーブル名>(
<列名1><データ型><制約>,
<列名2><データ型><制約>,
・・・
)
<テーブルオプション>
*/
//企業情報のテーブルを作成するなら
CREATE TABLE companies(
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
establishment_date DATE,
founder VARCHAR(255),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) DEFAULT CHARACTER SET = utf8mb4; //utf8の4バイト文字に該当する文字を使用場合(日本語や絵文字など)
テーブルの表示
mysql sample.sql
//テーブルの表示
SHOW TABLES;
//列の表示
//SHOW COLUMNS FROM <テーブル名>;
SHOW COLUMNS FROM companies;
テーブルを削除
DROP TABLE文で削除する
DROP TABLE文は1つ以上のテーブルを削除できる
mysql sample.sql
//DROP [TEMPORARY] TABLE [IF NOT EXISTS] <テーブル名>
//企業情報のテーブルを削除するなら
DROP TABLE companies;
テーブルにデータを登録
INSERT文でテーブルに一行のデータを挿入する
INSERT INTO文<テーブル名>(列1,列2,・・・)VALUES(値1,値2,・・・);
mysql sample.sql
/*
INSERT INTO文<テーブル名>
(列1,列2,・・・)
VALUES
(値1,値2,・・・);
*/
//企業情報のテーブルを作成するなら
$sql = <<<EOT
INSERT INTO companies(
name,
establishment_date,
founder
) VALUES (
'SmartHR Inc',
'2013-01-23',
'Shoji Miyata'
)
EOT;
SQLでデータを取得
SELECT文でテーブルからデータを取得する
mysql sample.sql
//SELECTにはテーブルから出力したい列名、FROMにはデータを取り出すテーブルを指定
SELECT<テーブル名>,・・・FROM<テーブル名>;
//企業情報のテーブルを作成するなら
SELECT name, founder FROM companies';
mySQLで特定テーブルの全データを削除
php sample.php
//指定したテーブルの全データを削除する
//DROP [TABLE] <テーブル名>
//会社情報のテーブルの全データを削除するなら
DROP TABLE companies;