MySQLデータベースの文字セットを確認する方法
MySQLデータベースの文字セットを確認する方法
MySQLでは、SHOW CREATE DATABASE文を使うことで、データベースに設定されているデフォルトの文字セット(charset)や照合順序(collation)を簡単に確認できます。マルチバイト文字を扱う際には、文字化けを防ぐためにも文字セットの設定を把握しておくことが重要です。
データベース全体の文字セットを確認する
まず、例として「web」というデータベースを作成したとします。このデータベースの文字セットを確認するには、以下のコマンドを実行します。
mysql> SHOW CREATE DATABASE web;
実行すると、次のような出力が表示され、デフォルトの文字セットもあわせて確認できます。
+----------+-----------------------------------------------------------------------------------------+ | Database | Create Database | +----------+-----------------------------------------------------------------------------------------+ | web | CREATE DATABASE `web` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ | +----------+-----------------------------------------------------------------------------------------+ 1 row in set (0.03 sec)
この出力から、「web」データベースにはutf8の文字セットとutf8_unicode_ciの照合順序が設定されていることがわかります。
特定のテーブルの文字セットを確認する
データベース内の特定のテーブルに設定された文字セットを知りたい場合は、SHOW CREATE TABLE文を使用します。ここでは、データベース「web」内に「DemoTable」というテーブルが存在するとします。
mysql> SHOW CREATE TABLE web.DemoTable;
実行すると、次のような出力が表示され、テーブルの文字セットを確認できます。
+--------------+----------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------------+----------------------------------------------------------------------------------------------------------------------------------+ | DemoTable | CREATE TABLE `DemoTable` (`Value` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +--------------+----------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
この結果から、DemoTableはInnoDBエンジンを使用しており、文字セットがutf8、照合順序がutf8_unicode_ciに設定されていることが確認できます。
まとめ
SHOW CREATE DATABASEとSHOW CREATE TABLEを使えば、データベース単位・テーブル単位でそれぞれ文字セットと照合順序を手軽に確認できます。日本語などのマルチバイト文字を扱うアプリケーションを開発する際には、事前にこれらのコマンドで設定をチェックし、意図しない文字化けを防ぎましょう。
-
MySQLで単一テーブルをバックアップする方法【mysqldumpの使い方を解説】
MySQLデータベースから特定のテーブルだけをバックアップしたい場合、標準で付属しているダンプユーティリティ「mysqldump」を使うのが最も確実で一般的な方法です。なお、古いMySQL(バージョン5.0およびそれ以前)ではBACKUP TABLEステートメントによるテーブルバックアップも可能でしたが、この構文はすでに廃止されており、現行バージョンでは利用できません。本記事では、mysqldumpを使って単一テーブルのバックアップファイル(.sql形式)を作成する具体的な手順を解説します。ステップ1:コマンドプロンプトを起動するまず、ショートカットキーでコマンドプロンプト(cmd)を開きます
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す