削除の操作ができると、また新しく作ることができます。設定を間違えてもやり直せばいいだけなので、心に余裕を持ってデータベースを扱えます。
何をするための操作か明確にするため、それぞれ「確認 → 削除 → 確認」という流れで行なっています。また本来はデータベースごと削除すれば済む操作も、フィールドの削除から行なっていますのでご了承ください。
MySQLに接続するユーザーは「root」ですので、間違えないように気を付けてください。
【1】以下の図を参考にMySQLを開始・接続します。
1.コマンドプロンプトを起動します。
2.「net start mysql」と入力し、「Enterキー」を押します。
3.「mysql -u root -p -b」と入力し、「Enterキー」を押します。
4.パスワードを求められるので入力し、「Enterキー」を押します。
*「-b」オプションを付けて起動するとビープ音が出なくなります。
【2】以下のSQL文を入力し、ユーザーを確認します。
SELECT user FROM mysql.user;
これから「test」ユーザーの権限の取消し、削除を行います。
*データベースを選択していないため、「mysql.user」と指定する必要があります。
(データベース名.テーブル名)
【3】以下のSQL文を入力し、「test」ユーザーの権限を確認します。
SHOW GRANTS FOR test@localhost;
「test」ユーザーはSampleDB040データベースの全てのテーブルに対し、SELECT権限があることがわかります。
【4】以下のSQL文を入力し、「test」ユーザーの権限を取り消します。
REVOKE SELECT ON SampleDB040.* FROM test@localhost;
【5】もう一度以下のSQL文を入力し、「test」ユーザーの権限を確認します。
SHOW GRANTS FOR test@localhost;
「test」ユーザーの権限が取り消されています。
【6】以下のSQL文を入力し、「test」ユーザーを削除します。
DROP USER test@localhost;
【7】もう一度以下のSQL文を入力し、ユーザーを確認します。
SELECT user FROM mysql.user;
「test」ユーザーが削除されています。
【8】以下のSQL文を入力し、使用するデータベースを選択します。
USE SampleDB040;
【9】以下のSQL文を入力し、テーブルの構造を確認します。
DESC T01Prefecture;
これから「AREA_CD」を削除します。
【10】以下のSQL文を入力し、フィールドを削除します。
ALTER TABLE T01Prefecture DROP AREA_CD;
【11】もう一度以下のSQL文を入力し、テーブルの構造を確認します。
DESC T01Prefecture;
「AREA_CD」が削除されています。
【12】以下のSQL文を入力し、テーブルのデータを確認します。
SELECT * FROM T01Prefecture;
「AREA_CD」フィールドが無くなり、データも消えています。
【13】以下のSQL文を入力し、データベース内にあるテーブルを確認します。
SHOW TABLES;
【14】以下のSQL文を入力し、テーブルを削除します。
DROP TABLE T00Area;
【15】もう一度以下のSQL文を入力し、データベース内にあるテーブルを確認します。
SHOW TABLES;
「T00Area」テーブルが削除されています。
【16】同様にT01Prefectureテーブルも削除します。
DROP TABLE T01Prefecture;
【17】もう一度以下のSQL文を入力し、データベース内にあるテーブルを確認します。
SHOW TABLES;
もうテーブルが無いのでデータベースの中は空です。
【18】以下のSQL文を入力し、MySQLのデータベースを確認します。
SHOW DATABASES;
【19】データベースを削除する時は「DROP DATABASE SampleDB040;」を使いますが、今後もこのデータベースを使用しますので、そのままにしておきます。
*データベースを削除する時「C:\mysql\data\sampledb040」の中に、MySQLが自動的に作成したファイル以外(ユーザーが置いたファイルなど)があるとエラーになりますので、移動してください。ただしMySQLが作成したファイルはそのまま残します。
【20】以下の図を参考にMySQLを終了・停止します。
1.「exit」と入力し、「Enterキー」を押します。
2.「net stop mysql」と入力し、「Enterキー」を押します。
【21】コマンドプロンプトは閉じてください。
【ワンポイント】
既に削除されているテーブルを削除しようとするとエラーになります。
DROP TABLE T00Area;
しかし以下のように書くと、テーブルがあるときにしか削除しません。警告は出ますがエラーになりません。
DROP TABLE IF EXISTS T00Area;
バックアップファイルにはこのように書かれています。
次回はこの空のデータベースに複数のテーブルとデータをバッチ処理で追加します。