リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

8-2. MySQL入門②MySQLのコマンド

月末になると、WiFiポケットが全然ばかになってしまって更新しづらい。

MySQL入門続けます。

1-1. セミコロンとコマンドプロンプト


前回、MySQLへのアクセスがうまくいっているか確認するために「SHOW databases;」と打ち込みました。
ここで重要なのが「セミコロン」です。
セミコロンは、MySQLがコマンドを分けたり終わらせたりするために使用します。セミコロンの入力を忘れてしまうとMySQLはプロンプトを表示し次の入力を待つ状態になります。
f:id:taro-blog2323:20160831094751p:plain

また、MySQLが表示するプロンプトは6つあり、これを見ると複数行のどこを入力しているかがわかります。

MySQL1プロンプト 意味
mysql> 新しいコマンドの入力を待っている
-> 複数行コマンドでの次の行の入力を待っている
’> 一重引用符で始まるストリングの次の行の入力を待っている
”> 二重引用符で始まるストリングの次の行の入力を待っている
’> バッククォードで始まるストリングの次の行の入力を待っている
/*> /*で始まるストリングの次の行の入力を待っている

一重引用符とバックフォードが同じに見えるのは、目の錯覚かな…

1-2.コマンドのキャンセル


コマンドを入力している途中で、そのコマンドの実行を止めたくなった場合は、「\c」を入力して実行キーを押します。

Meaningless gibberish to mmysql \c

2-1. MySQLのコマンド


よく使用されるMySQLのコマンドを紹介します。

コマンド パラメータ 意味
ALTER database,table databaseまたはtableに変更を加える
BACKUP table tableをバックアップ
\c 入力をキャンセル
CREATE database,table databaseまたはtableを作成
DELETE tableとrowを使った式 tableからrowを消去
DESCRIBE table tableの列についての情報を表示
DROP database,table databaseまたはtableを消去
EXIT(Ctrl+C) 終了
GRANT user権限 userの権限を変更
HELP(\h, \?) item itemに関するヘルプを表示
INSERT dataを使った式 dataを挿入
LOCK table(s) (複数の)テーブルをロック
QUIT(\q) EXITと同じ
RENAME table tableの名前を変更
SHOW 表示する多くのitem itemの詳細を表示
SOURCE filename filenameに含まれるコマンドを実行
STATUS(\s) 現在の状態を表示
TRUNCATE table tableを空にする
UNLOCK table(s) table(s)のロックを解除
UPDATE dataを使った式 既存のレコードを更新
USE database 使用するdatabaseを指定

SQLコマンドに関して2つの注意事項があります。
SQLコマンドとキーワードは大文字小文字で区別されない。
②テーブル名はwindowsでは大文字小文字の区別されないが、LinuxOSXでは区別される。

2-2.データベースの作成


Publicationsという新しいデータベースを作成してみます。

①CREATE DATABASE publications;と入力します。
作成に成功すると、“Query OK, 1 row affected(0.01 sec)”とメッセージが表示されます。
f:id:taro-blog2323:20160831095036p:plain

②作成したデータベースに使用するコマンドUSE publificationsを発行します。
f:id:taro-blog2323:20160831095040p:plain

2-3.ユーザーの作成


ユーザーを作成するには、次の形式をとるGRANTコマンドを発行します。

GRANT PRIVILEGES ON database.object TO ‘username’@’hostname’ IDENTIFIED BY ‘password’;

database.objectへの権限をpasswordで識別するusername@hostnameに与えるという意味

◎GRANTコマンドのパラメータ例

引数 意味
*.* すべてのデータベースとそのすべてのオブジェクト
database. * databaseという名前のデータベースとそのすべてのオブジェクト
database.object databaseという名前のデータベースとそのobjectという名前のオブジェクト

新しいpublicationsデータベースとそのすべてのオブジェクトいアクセスできるユーザーを次のコマンドで作成します。


GRANT ALL ON publications. *TO ‘●●●’@’localhost’ IDENTIFIED BY ‘○○○’;
※●●●にユーザー名、○○○にパスワードを入れます。


2-4.テーブルの作成


テーブルの作成をしていきます。テーブルを作成する際は、「USE punlicatons;」というコマンドを入力し、使用するデータベースを必ず特定しておきます。
以下を入力し、名前のテーブルを作成します。
mysql> CREATE TABLE classics(
-> author VARCHAR(128),
-> title VARCHAR(128),
-> type VARCHAR(16),
-> year CHAR(4)) ENGINE MyISAM;
f:id:taro-blog2323:20160831095328p:plain

DESCRIBEコマンドでMySQLテーブルが正しく作成されたかどうか確認すると、以下が出力されます。
f:id:taro-blog2323:20160831095335p:plain


・Field
 テーブル内のフィールドまたは列の名前
・Type
 フィールドに保持するデータの型
・Null
 フィールドにNULL値を含めることができるかどうか示す
・Key
 MySQLはキーやインデックスをサポートする。これはデータを速く探し探索するための方法でkey見出しは適用されるキーのタイプを示す
・Default
 新しい行の作成時、値が指定されていない場合に、このデフォルト値がフィールドに割り当てる
・Extra
 フィールドのオートインクリメントが設定されているかどうかなど追加情報を示す

いじょー