今回は久しぶりにMySQLに関する記事です。
MySQLの基本構文について、
連載型で解説していこうと思います。
まず初回は、MySQLを起動して初めて使うコマンドと言っても
過言ではない、
『showコマンド』について解説します。
参考書などの書籍なんかでは
省かれてしまっているパターンもありますが、
とても便利なコマンドですから、ぜひ使いこなしてください。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
そもそもMySQLのテーブルとかデータベースって何??
基本的な内容ですが、
ちょっと忘れてしまった場合用に、
以前解説した記事があります。
もし忘れてしまったらこちらの記事を参考にしてみてください。
MySQLのshowコマンドとは?
showコマンドでできることについては、
以下の章で詳しく解説していきます。
showコマンドの実際の使い方は?
showコマンドの実際の使い方をご紹介します。
構文としてはこの2つが押さえられていればOKです。
show databases;
show tables;
それぞれについて詳しく解説していきましょう。
show databases; の使い方。
まず注意点からお話しますが、
show database;ではなく、複数形で、show databases;
としないとコマンドが間違っていますのでエラーとなります。
エラー内容としてはこんな感じ。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘database’ at line 1
show database;で発生するエラー内容より。
要するにdatabaseというのは誤りなのでエラーですと教えてくれているわけです。
では注意点の説明も終わったところで、
実際に初期状態のMySQLインストール直後の状態の
データベースにアクセスしてshowコマンドを使ってみましょう。
まずはログインしてから、
show databases;
と打ち込んでエンターキーを押します。
すると、こんな感じでデフォルトでプリインストールされたデータベースが表示されます。
合計6個のデータベースがプリインストールされているということがわかります。
そのうえで、例えばworldにどんなテーブルが入っているか??
確認してみたくなりますよね?
それができるのがshow tables;です。
次の章で解説します。
show tables; の使い方。
show databases; の使い方がわかったところで、
今度はshow tables; の使い方です。
show tables; は、show databases; と同様、
show tables; と複数形になることに注意が必要です。
また、show databases; と異なり、
どのデータベースのデータテーブルが確認したいのか?
という処理がワンクッション入ります。
具体的には、2通りのやり方があります。
①データベースを指定してuseコマンドで選択する方法。
まず一つ目の方法ですが、
例えば、先ほどのデータベースの例でいくと、
6個のデータベースが存在していて、
それぞれのデータベースにデータテーブルが存在しています。
ですから、単純に
show tables;と打ち込んでも、
どのデータベースのデータテーブルが確認したいのか
パソコン側も????となるわけですね。
ですから、
いったん、調べたいデータベースを選択しましょう。
その方法が、
use データベース名
これだけです。
例えば先ほどshow databases; で出した中から、
worldを選択するとしましょう。
すると、こうなります。
use world
このコマンドを打ち込むことで、
Database changed
と表示され、無事にworldのデータベースを選択した状態になります。
その後、show tables;と打ち込むことで、
worldの中にどんなデータテーブルが格納されているのか確認できます。
②in 句を併用することで、データベース名を指定する方法。
次にshow tables;を使う方法として紹介するのは、
『 in 』句を使用する方法です。
先ほどuse コマンドを使用して、
確認したいデータベースを選択した状態で
show tables;と打っていましたよね?
ただ、この『 in 』句を使うことで、
なんとuse コマンドを使用せずに1行でデータテーブル名の
取得が可能になります。
構文としてはこうです。
show tables in データベース名;
特に難しくないですね。
例えば先ほどの6個のデータベースから、
worldのデータテーブルの内容が確認したければ、こうなります。
show tables in world;
useコマンドを使ってわざわざデータベースを選択しなくても
良いところはメリットですね。
ただしその後指定のデータベースで処理が無ければ….という条件付きですが…。
ちなみにですが、in 句の代わりにfrom 句でも同じ動作をします。
showコマンドの使い道は?
例えば、データベースにrootでログインした直後の状態とします。
すると、初めて触るデータベースなんかは特にですが、
どんなデータベースがどんな名前で存在しているかわかりませんね。
そんな時、
『どんなデータベースがあるのか?』、『どんなデータテーブルがあるのか?』
すぐに調べたくなりますよね。
このshow コマンドがあれば、
とりあえずの現在存在しているデータベースとデータテーブルの名前が確認できます。
使い道としては確認が主ですね。
ちょっと応用。テーブルのカラム属性を調べる方法。
show コマンドはデータベースの名前、データテーブルの名前を
表示しましたが、実はデータテーブルのカラム属性も一発で調べることができます。
カラム属性はいわゆる横列の並びの種類についてです。
実際にモノを見たほうが早いと思いますのでやってみましょう。
まず、構文はこちら。
show columns from テーブル名;
先述の通り、use データベース名;
で既にworldを選択した状態だと過程してお話していきます。
worldというデータベースには、
3つのデータテーブルが存在していました。
では、この中の、cityというテーブル。
こちらがどんな構成のデータテーブルなのか調べてみましょう。
コマンドとしてはこうです。
show columns from city;
そうすると、このような形でcityの中身の属性がわかります。
とりあえず今の時点では、Fieldくらい見ておけばOKです。
TypeやNullなどは今後の記事で解説予定です。
このようにshow columnsとすることで、次にcityにデータを格納しようとしたときに、
この形式通りであれば格納できる。ということになります。
今回のまとめ。
今回解説した内容をおさらいします。
データベースに接続できたはいいものの、
そもそも何をどうしたらいいかわからない….
という場合は、とりあえずshowコマンドをつかって、
いろんな情報を見てみましょう。
コメント