Thursday,June,20,2013
char(M) ascii, char(M) unicode, char(M) binaryのカラムを持つテーブルを作成。MySQRの練習 free37
CHAR(M) ASCII   と CHAR(M) CHARACTER SET latin1 は同じ
CHAR(M) UNICODE と CHAR(M) CHARACTER SET ucs2  は同じ
CHAR(M) BINARY  と CHAR(M) CHARACTER SET utf8 COLLATE utf8_bin は同じ
○データベースを確認 
○コマンドプロンプトへ打ち込む 
mysql> show databases; 
○データベースの一覧が表示される。「test」データベースの中を見る。 *testフォルダの名前は変更可能。
mysql> use test;     *メッセージDatabase changedが表示され、「test」データベースが選択さる。 
mysql> show tables; *テーブル一覧が表示される。

○CHAR(5)型のカラムとCHAR(5) CHARACTER SET cp932型のカラムを持つテーブルを作成。
*カラムを作る
mysql> create table test17(str1 char(5) ascii, str2 char(5) unicode, str3 char(5) binary);  

*str1などは任意の名前に変更可能
*char(5) カラム、文字の容量やデータの形など、あまりに種類があり過ぎて憶えきれない。カッコは文字数だよねたしか。デフォルトでよく使うのだけ憶えればいいような・・・
*ascii   文字コードかな?
*unicode  文字コードかな?
*binary   文字コードかな?

○「test17」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など 
mysql> describe test17; 
mysql> show columns from test17;  同じ結果
Field  Type        Null  Key  Default  Extra
str1   char(5)     YES        NULL
str2   char(5)     YES        NULL
str3   char(5)     YES        NULL


○作成したテーブルの定義を確認してみる。
mysql> show create table test17\G
Table: test17
Create Table: CREATE TABLE 'test17'(
'str1' char(5) CHARACTER SET latin1 DEFAULT NULL,   *カムラの形に文字コードで一応理解しておくことに。
'str2' char(5) CHARACTER SET ucs2 DEFAULT NULL,    *カムラの形に文字コードで一応理解しておくことに。
'str3' char(5) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL  *以下同文
)ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

○試しにデーターを入力 シングルクォーテーションでくくってる事になるね。数字は試していません。
mysql> insert into test17(str1, str2, str3) values('abc','abc','abc');  
mysql> insert into test17(str1, str2, str3) values('ABC','ABC','ABC'); 
mysql> insert into test17(str1, str2, str3) values('abc ','abc ','abc ');  *後ろに空白を入れてみた
mysql> insert into test17(str1, str2, str3) values('ABC ','ABC ','ABC '); *後ろに空白を入れてみた

○テーブルの中身の表示 
mysql> select * from test17;
str1   str2   str3
abc    abc    abc
ABC    ABC    ABC
abc    abc    abc 空白を入れたが反映されていない
ABC    ABC    ABC 空白を入れたが反映されていない

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat(',str1,'), concat(',str2,'), concat(',str3,')from test17;
              concat(',str1,')  concat(',str2,')  concat(',str3,')
              ,abc,             ,abc,             ,abc,
              ,ABC,             ,ABC,             ,ABC,
              ,abc,             ,abc,             ,abc,
              ,ABC,             ,ABC,             ,ABC,

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat(str1), concat(str2), concat(str3)from test17;
       concat(str1)         concat(str2)  concat(str3)
       abc                  abc           abc
       ABC                  ABC           ABC
       abc                  abc           abc
       ABC                  ABC           ABC

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat('(',str1,')'), concat('(',str2,')'), concat('(',str3,')')from test17;
              concat('(',str1,')')  concat('(',str2,')')  concat('(',str3,')')
              (abc)                 (abc)                 (abc)
              (ABC)                 (ABC)                 (ABC)
              (abc)                 (abc)                 (abc)
              (ABC)                 (ABC)                 (ABC)

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat('(',str1,')')from test17 where str1='abc';
concat('(',str1,')')
(abc) 
(ABC)
(abc) 空白を入れたが反映されていない
(ABC) 空白を入れたが反映されていない

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat('(',str2,')')from test17 where str2='abc';
concat('(',str2,')')
(abc) 
(ABC)
(abc) *空白を入れたが反映されていない 
(ABC) *空白を入れたが反映されていない

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat('(',str3,')')from test17 where str3='abc';
concat('(',str3,')')
(abc) *2つの小文字だけが表示される。
(abc) *2つの小文字だけが表示される。

○プログラムの文法がよくわからないのでいろいろためしてみる。
mysql> select concat('(',str3,')')from test17 where str3='ABC';
concat('(',str3,')')
(ABC) *2つの大文字だけが表示される。
(ABC) *2つの大文字だけが表示される。

* 参考にしたサイトは→ こちら です。


これは赤色の文字例です。

これは青色の文字例です。