○データベースを指定し、テーブルの中身を表示する mysql> select * from sadachika_books.sadachika_novel; *データベース名sadachika_books テーブル名sadachika_novel Empty set (0.00 set) *中身が無いみたい select * from test.test16; str1 str2 abc abc あいう あいう abc abc abc abc abc abc select * from test.test17; str1 str2 str3 abc abc abc ABC ABC ABC abc abc abc ABC ABC ABC mysql> select * from test.test18; str1 str2 山 山 定近 定近 定近 定近 ○省略文を使ってデータベースを指定する mysql> USE test; mysql> USE sadachika_books; *データベースを指定する mysql> SHOW TABLES; mysql> \u sadachika_books *省略文 後ろのコロンなし mysql> select database(); database(); sadachika_books mysql> \u test *省略文 データベースを指定する Database changed mysql> select database(); database() test mysql> SHOW TABLES; Tables_in_test test test1 test10 test11 test12 test13 test14 test15 test16 test17 test18 test2 test3 test4 test5 test6 test7 test8 test9 mysql -u root -p test *データベースを指定して起動する。 mysql -u root -p sadachika_books *データベースを指定して起動する。 現在接続しているデータベースを確認するにはdatabase関数を使用する。 select database(); sadachika_books 1 row in set (0.05 sec) ○○文字セットと照合順序を指定してデータベース(フォルイダ)を作成 mysql> create database cp932db character set cp932; *お手本 mysql> create database sadachika_cp932db character set cp932; *文字セットcp932入力 照合順序なし mysql> show databases; information_schema *以下でこの中身を見ていきます books goods mysql performance_schema personal sadachika sadachika_books sadachika_cp932db *dbはデータベースの略 任意の目印 sadachika_eucjpdb sakila salesdb sampledb040 test world mysql> \u information_schema *省略文 データベースを指定する mysql> SHOW TABLES; Tables_in_information_schema CHARACTER_SET COLLATIONS COLLATION_CHARACTER_SET_APPLICABILITY COLUMNS COLUMN_PRIVILEGES ENGINES EVENTS FILES GLOBAL_STATUS GLOBAL_VARIABLES 以下もっと続く ○全データベースの文字セットと照合順序を表示させる。 INFORMATION_SCHEMA.SCHEMATA mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA; mysql> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA\G *全データベースの文字セットと照合順序が表示される ○○文字セットと照合順序を指定してデータベース(フォルダ)を作成 mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin; *文字セットeucjpms 照合順序eucjpms_binの順で入力 サクラエディタでデータベースsadachika_eucjpdbの中のdb.optを開いてみる default-character-set=eucjpms *文字セット default-collation=eucjpms_bin *照合順序 ○データベース(フォルダ)の文字セットと照合順序を確認する。 mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_eucjpdb'\G *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_eucjpdb DEFAULT_CHARACTER_SET_NAME: eucjpms *文字セット DEFAULT_COLLATION_NAME: eucjpms_bin *照合順序 SQL_PATH: NULL 1 row in set (0.00 set) デフォルトの文字セットがeucjpmsに設定されていることが確認できます。 また照合順序もeucjpmsのデフォルト照合順序のeucjpms_japanese_ciではなく指定したeucjpms_binに設定されていることが確認できます。 ○○文字セットと照合順序を指定してデータベース(フォルダ)を作成 *mysql> create database sadachika_cp932db2 character set cp932; *文字セットcp932 照合順序入力なし サクラエディタでデータベースsadachika_eucjpdbの中のdb.optを開いてみる default-character-set=cp932 default-collation=cp932_japanese_ci *なぜか照合順序が自動で設定されている ○データーベースを削除する場合は以下 mysql> drop database sadachika2_cp932db; ○データベース(フォルダ)の文字セットと照合順序を確認する。 mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_cp932db'\G *データベスを指定して文字セットと照合順序を表示させる *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_cp932db DEFAULT_CHARACTER_SET_NAME: cp932 DEFAULT_COLLATION_NAME: cp932_japanese_ci *なぜか照合順序が自動で設定されている SQL_PATH: NULL 1 row in set (0.00 set) mysql> SHOW DATABASES; Database information_schema books goods 増えた mysql performance_schema personal sadachika sadachika_books sadachika_cp932db *増えた テーブルは入っていません sadachika_ecujpdb *増えた テーブルは未作成 sakila salesdb sampledb040 test world ○文法を忘れそうなので書いておく 余分○作成したテーブル(sadachika_books)の定義を確認してみる。 USE sadachika_books; mysql> show create table sadachika_magazine\G *********** 1. row ************** Table: sadachika_magazine Create Table: CREATE TABLE 'sadachika_magazine'( 'sada_id' int(11) DEFAULT NULL *カムラの名前sada_id、INT型で理解することにしておく。 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。 1 row in set (0.00 sec) *↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力 ○データベース(フォルダ)の文字セットと照合順序を確認する。 mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_books'\G *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_books DEFAULT_CHARACTER_SET_NAME: utf8 DEFAULT_COLLATION_NAME: utf8_general_ci *設定する場合の参考mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin; SQL_PATH: NULL 1 row in set (0.00 set) ○EUCJPMS とりあえず何かデータベース(sadachika_eucjpdb)内にテーブル(sada2_t text)を作ってテーブルの定義を見なきゃね USE sadachika_eucjpdb; mysql> create table sadachika_text_table(sada_t2 text2); 入力失敗 型に数字入れてるんだもん駄目だわな mysql> create table sadachika_text(sada_t2 text2); 入力失敗 型に数字入れてるんだもん駄目だわな mysql> create table sadachika_text(sada_t text); 入力OK mysql> create table sadachika_text2(sada_t text); 入力OK mysql> create table sadachika1_text(sada1_t text); 入力OK mysql> create table sadachika2_text(sada2_t text); これに値を入力していきます ○テーブルを削除する場合はこんな感じ mysql> drop table sadachika_text; mysql> drop table sadachika_text2; mysql> drop table sadachika1_text; ○「sadachika2_text」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など mysql> show columns from sadachika2_text; Field Type Null Key Default Extra sada2_t text YES NULL ○作成したテーブル(sadachika2_text)の定義を確認してみる mysql> show create table sadachika2_text\G *********** 1. row ************** Table: sadachika2_text Create Table: CREATE TABLE 'sadachika2_text'( 'sada2_t' text COLLATE eucjpms_bin *カムラの名前sada2_t、TEXT型で理解することにしておく。 ) ENGINE=InnoDB DEFAULT CHARSET=eucjpms COLLATE=eucjpms_bin *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。 1 row in set (0.00 sec) *mysql> create database sadachika_eucjpdb character set eucjpms collate eucjpms_bin; *↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力 ○データベースデレクトリ(sadachika_eucjpdb;)フォルダ内に以下の2つのファイルが作成される sadachika2_text.frm *テーブル定義の保存 sadachika2_text.ibd ○サクラエディタでデータベースデレクトリ(sadachika_cp932db)フォルダ内のdb.optファイルを開いてみる default-character-set=eucjpms default-collation=eucjpms_bin 現在接続しているデータベースを確認するにはdatabase関数を使用します。次のように入力して下さい。 mysql> select database(); sadachika_eucjpdb ○入力してみる mysql> insert into sadachika2_text(sada2_t) values('abc'); *ノーマルに入力した mysql> insert into sadachika2_text(sada2_t) values('abc '); *後ろに半角スペースを入力 mysql> insert into sadachika2_text(sada2_t) values(' abc '); *前後に半角スペースを挿入 mysql> insert into sadachika2_text(sada2_t) values('sadachika'); *小文字のアルファベット mysql> insert into sadachika2_text(sada2_t) values('SADACHIKA'); *大文字のアルファベット mysql> insert into sadachika2_text(sada2_t) values('SADACHIKA '); *後ろに半角スペースを入力 mysql> insert into sadachika2_text(sada2_t) values('定近'); *漢字を入力してみる mysql> insert into sadachika2_text(sada2_t) values('定近 '); *後ろに半角スペースを入力 mysql> insert into sadachika2_text(sada2_t) values(' 定近 '); *前後に半角スペースを入力してみる mysql> insert into sadachika2_text(sada2_t) values('2013'); *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う mysql> insert into sadachika2_text(sada2_t) values('2013 '); *後ろに半角スペース mysql> insert into sadachika2_text(sada2_t) values(' 2013 '); *前後に半角スペース mysql> insert into sadachika2_text(sada2_t) values('201306'); *2013の検索でかかるかテスト 結果はかからない mysql> insert into sadachika2_text(sada2_t) values('2013 6 '); *半角スペースを間に入れて数字を入力してみた ○テーブルの中身の表示 mysql> select * from sadachika_eucjpdb.sadachika2_text; sada2_t abc abc abc sadachika SADACHIKA SADACHIKA 定近 定近 定近 2013 2013 2013 201306 2013 6 ○テーブルの中身を表示 プログラムの文法テスト \u sadachika_eucjpdb *USE省略文 mysql> select concat('(',sada2_t,')')from sadachika2_text; concat('(',sada2_t,')') (abc) *ノーマルに入力した (abc ) *後ろに半角スペースを入力 ( abc ) *前後に半角スペースを挿入 (sadachika) *小文字のアルファベット (SADACHIKA) *大文字のアルファベット (SADACHIKA ) *後ろに半角スペースを入力 (定近) *漢字を入力してみる (定近 ) *後ろに半角スペースを入力 ( 定近 ) *前後に半角スペースを入力してみる (2013) *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う (2013 ) *後ろに半角スペース ( 2013 ) *前後に半角スペース (201306) *2013の検索でかかるかテスト 結果はかからない (2013 6 ) *半角スペースを間に入れて数字を入力してみた ○CP932 とりあえず何かデータベース(sadachika_cp932db)内にテーブル(sada_t text)を作ってテーブルの定義を見なきゃね USE sadachika_cp932db; mysql> create table sadachika_text(sada_t text); ○「sadachika_text」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など mysql> describe test2; *プログラムの文法を忘れるので書いておく mysql> show columns from test2; *同じ結果 mysql> show columns from sadachika_text; Field Type Null Key Default Extra sada_t text YES NULL ○作成したテーブル(sadachika_text)の定義を確認してみる mysql> show create table sadachika_text\G *********** 1. row ************** Table: sadachika_text Create Table: CREATE TABLE 'sadachika_text'( 'sada_t' text *カムラの名前sada_t、TEXT型で理解することにしておく。 ) ENGINE=InnoDB DEFAULT CHARSET=cp932 *確かに文字セットと照合順序を指定してデータベース(フォルダ)を作成した設定になっている。 1 row in set (0.00 sec) *mysql> create database sadachika_cp932db character set cp932; *↑InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM; *INT型 MyISAMと入力 ○データベースデレクトリ(sadachika_cp932db)フォルダ内に以下の2つのファイルが作成される sadachika_text.frm テーブル定義の保存 sadachika_text.ibd ○サクラエディタでデータベースデレクトリ(sadachika_cp932db)フォルダ内のdb.optファイルを開いてみる default-character-set=cp932 default-collation=cp932_japanese_ci ○テーブルを削除する場合はこんな感じ mysql> drop table sadachika_text; ○入力してみる mysql> insert into sadachika_text(sada_t) values('abc'); *ノーマルに入力した mysql> insert into sadachika_text(sada_t) values('abc '); *後ろに半角スペースを入力 mysql> insert into sadachika_text(sada_t) values(' abc '); *前後に半角スペースを挿入 mysql> insert into sadachika_text(sada_t) values('sadachika'); *小文字のアルファベット mysql> insert into sadachika_text(sada_t) values('SADACHIKA'); *大文字のアルファベット mysql> insert into sadachika_text(sada_t) values('SADACHIKA '); *後ろに半角スペースを入力 mysql> insert into sadachika_text(sada_t) values('定近'); *漢字を入力してみる mysql> insert into sadachika_text(sada_t) values('定近 '); *後ろに半角スペースを入力 mysql> insert into sadachika_text(sada_t) values(' 定近 '); *前後に半角スペースを入力してみる mysql> insert into sadachika_text(sada_t) values('2013'); *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う mysql> insert into sadachika_text(sada_t) values('2013 '); *後ろに半角スペース mysql> insert into sadachika_text(sada_t) values(' 2013 '); *前後に半角スペース mysql> insert into sadachika_text(sada_t) values('201306'); *2013の検索でかかるかテスト 結果はかからない mysql> insert into sadachika_text(sada_t) values('2013 6 '); *半角スペースを間に入れて数字を入力してみた ○テーブルの中身の表示 mysql> select * from sadachika_cp932db.sadachika_text; *データベース テーブルの順 sada_t abc abc abc sadachika SADACHIKA SADACHIKA 定近 定近 定近 2013 2013 2013 201306 2013 6 ○テーブルの中身の表示 プログラムの文法テスト \u sadachika_cp932db *USE省略文 mysql> select concat('(',sada_t,')')from sadachika_text; concat('(',sada_t,')') (abc) *ノーマルに入力した (abc ) *後ろに半角スペースを入力 ( abc ) *前後に半角スペースを挿入 (sadachika) *小文字のアルファベット (SADACHIKA) *大文字のアルファベット (SADACHIKA ) *後ろに半角スペースを入力 (定近) *漢字を入力してみる (定近 ) *後ろに半角スペースを入力 ( 定近 ) *前後に半角スペースを入力してみる (2013) *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う (2013 ) *後ろに半角スペース ( 2013 ) *前後に半角スペース (201306) *2013の検索でかかるかテスト 結果はかからない (2013 6 ) *半角スペースを間に入れて数字を入力してみた ○データベースを削除する場合こんな感じ DROP DATABASE db_name; mysql> drop database cp932db; 再度データベースの一覧を確認 show databases; ○前回のコマンドでの警告を表示する mysql> show warnings; ○データベースの属性を変更する方法を確認します。 まずテスト用のデータベースを作ってみる mysql> create database sadachika_eucjpdb02test character set eucjpms collate eucjpms_bin; *文字セットeucjpms 照合順序eucjpms_binの順で入力 サクラエディタでdb.optファイルを開いてみる default-character-set=eucjpms default-collation=eucjpms_bin ○データベース(フォルダ)の文字セットと照合順序を確認する。 mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_eucjpdb02test'\G *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_eucjpdb02test DEFAULT_CHARACTER_SET_NAME: eucjpms DEFAULT_COLLATION_NAME: eucjpms_bin SQL_PATH: NULL 1 row in set (0.00 set) ○デフォルト文字セットと照合順序の変更です。 mysql> ALTER DATABASE db_name CHARACTER SET charset_name COLLATE collation_name; mysql> ALTER DATABASE sadachika_eucjpdb02test CHARACTER SET cp932 COLLATE cp932_japanese_ci; *eucjpmsをcp932に、eucjpms_binをcp932_japanese_ciに変更してみた mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_eucjpdb02test'\G *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_eucjpdb02test DEFAULT_CHARACTER_SET_NAME: cp932 *変更された DEFAULT_COLLATION_NAME: cp932_japanese_ci *変更された SQL_PATH: NULL 1 row in set (0.00 set) ○もう一度変更をテストしてみる。 mysql> alter database sadachika_eucjpdb02test character set utf8; *cp932からUTF8へ変更 mysql> select * from information_schema.schemata -> where schema_name = 'sadachika_eucjpdb02test'\G *************************** 1.row ******************** CATALOG_NAME: def SCHEMA_NAM: sadachika_eucjpdb02test DEFAULT_CHARACTER_SET_NAME: utf8 DEFAULT_COLLATION_NAME: utf8_general_ci SQL_PATH: NULL 1 row in set (0.00 set) あくまで変更以降に作成されるテーブルのデフォルトの文字セットに影響があるだけとのこと
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。