TEXT型のカラムとBLOB型のカラムを持つテーブルを作成します。MySQLの練習 free40

MySQLのテーブル表示にいろいろなプログラム文法を試みてみた。
半角スペースを入力するテストもおこなった。
Friday,June,21,2013
SHOW DATABASES;
USE sadachika;
SHOW TABLES;

Tables_in_sadachika
sadachika
test1

○例としてTEXT型のカラムとBLOB型のカラムを持つテーブルを作成します。
mysql> create table test2(t text, b blob); 


○「test2」テーブルの構造を見る。 カラムの設定が見れます。桁数、NULL値が無い場合の表示方法など 
mysql> describe test2; 
mysql> show columns from test2;  同じ結果

Field  Type    Null  Key  Default  Extra
t      text    YES        NULL
b      blob    YES        NULL

○データを格納する
mysql> insert into test2(t, b) values('abc','abc');              *ノーマルに入力した
mysql> insert into test2(t, b) values('abc ','abc ');            *後ろに半角スペースを入力
mysql> insert into test2(t, b) values(' abc ',' abc ');          *前後に半角スペースを挿入
mysql> insert into test2(t, b) values('sadachika','sadachika');  *小文字のアルファベット
mysql> insert into test2(t, b) values('SADACHIKA','SADACHIKA');  *大文字のアルファベット
mysql> insert into test2(t, b) values('SADACHIKA ','SADACHIKA ');*後ろに半角スペースを入力
mysql> insert into test2(t, b) values('定近','定近');            *漢字を入力してみる
mysql> insert into test2(t, b) values('定近 ','定近 ');          *後ろに半角スペースを入力
mysql> insert into test2(t, b) values(' 定近 ',' 定近 ');        *前後に半角スペースを入力してみる
mysql> insert into test2(t, b) values('2013','2013');            *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
mysql> insert into test2(t, b) values('2013 ','2013 ');          *後ろに半角スペース
mysql> insert into test2(t, b) values(' 2013 ',' 2013 ');        *前後に半角スペース
mysql> insert into test2(t, b) values('201306','201306');        *2013の検索でかかるかテスト 結果はかからない
mysql> insert into test2(t, b) values('2013 6 ','2013 6 ');      *半角スペースを間に入れて数字を入力してみた


○作成したテーブルの定義を確認してみる。
mysql> show create table test2\G

*********** 1. row **************
Table: test2
Create Table: CREATE TABLE 'test2'(
't' text,                                 *記述がずいぶん短くなったな。カムラの形、文字コードで理解することにしておく。
'b' blob                                  *記述がずいぶん短くなったな。カムラの形、文字コードで理解することにしておく。
)ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

○テーブルの中身の表示 
mysql> select * from test2;
t           b
abc         abc
abc         abc
 abc         abc
sadachika   sadachika
SADACHIKA   SADACHIKA
SADACHIKA   SADACHIKA
定近        定近
定近        定近
 定近        定近
2013        2013
2013        2013
 2013        2013
201306      201306
2013 6      2013 6

○テーブルの中身の表示 プログラムの文法テスト
mysql> select t, b from test2;
t           b
abc         abc
abc         abc
 abc         abc
sadachika   sadachika
SADACHIKA   SADACHIKA
SADACHIKA   SADACHIKA
定近        定近
定近        定近
 定近        定近
2013        2013
2013        2013
 2013        2013
201306      201306
2013 6      2013 6

○テーブルの中身の表示 プログラムの文法テスト
mysql> select concat('(',t,')'), concat('(',b,')')from test2;
concat('(',t,')')     concat('(',b,')')   
(abc)                 (abc)             *ノーマルに入力した
(abc )                (abc )            *後ろに半角スペースを入力
( abc )               ( abc )           *前後に半角スペースを挿入
(sadachika)           (sadachika)       *小文字のアルファベット
(SADACHIKA)           (SADACHIKA)       *大文字のアルファベット
(SADACHIKA )          (SADACHIKA )      *後ろに半角スペースを入力
(定近)                (定近)            *漢字を入力してみる
(定近 )               (定近 )           *後ろに半角スペースを入力  
( 定近 )              ( 定近 )          *前後に半角スペースを入力してみる 
(2013)                (2013)            *数字のテスト ただシングルクォーテーションだから文字として記録されるんだろうと思う
(2013 )               (2013 )           *後ろに半角スペース 
( 2013 )              ( 2013 )          *前後に半角スペース
(201306)              (201306)          *2013の検索でかかるかテスト 結果はかからない
(2013 6)              (2013 6)          *半角スペースを間に入れて数字を入力してみた


○テーブルの中身の検索?
mysql> select concat('(',t,')')from test2 where t='abc';
concat('(',t,')')
(abc)
(abc )                                  *半角スペースでも検索にヒットする。前後の半角スペースはかからなかった。

○テーブルの中身の検索?
mysql> select concat('(',t,')')from test2 where t='sadachika';
concat('(',t,')')
(sadachika)                             *小文字検索「sadachika」で大文字がヒットしました。
(SADACHIKA)
(SADACHIKA )

○テーブルの中身の検索?
mysql> select concat('(',t,')')from test2 where t='SADACHIKA';
concat('(',t,')')
(sadachika)                             *大文字検索「SADACHIKA」で小文字がヒットしました。
(SADACHIKA)
(SADACHIKA )

○テーブルの中身の検索?
mysql> select concat('(',t,')')from test2 where t='定近';
concat('(',t,')')
(定近)
(定近 )                                 *合計2ヒット 前後の半角スペースは検索にかからなかった。

○テーブルの中身の検索?
mysql> select concat('(',t,')')from test2 where t='2013';
concat('(',t,')')
(2013)
(2013 )                                 *合計2ヒット 前後の半角スペースは検索にかからなかった。以下同じようにテストした

○テーブルの中身の検索?
mysql> select concat('(',b,')')from test2 where b='abc';
concat('(',b,')')
(abc)

○テーブルの中身の検索?
mysql> select concat('(',b,')')from test2 where b='sadachika';
concat('(',b,')')
(sadachika)

○テーブルの中身の検索?
mysql> select concat('(',b,')')from test2 where b='SADACHIKA';
concat('(',b,')')
(SADACHIKA)

○テーブルの中身の検索?
mysql> select concat('(',b,')')from test2 where b='定近';
concat('(',b,')')
(定近)

○テーブルの中身の検索?
mysql> select concat('(',b,')')from test2 where b='2013';
concat('(',b,')')
(2013)

○サーバへのtext,blob型のカラムに格納するデータの形を表示。
mysql> select hex(t), hex(b) from test2;

hex(t)                     hex(b)
616263                     616263                *左がtext 右がblob型のサーバに記憶されるデータの型 abc abc
61626320                   61626320              *空白は20かもね
2061626320                 2061626320            *前後空白は20だな
736164616368696B61         736164616368696B61    *同じ
534144414348494B41         534144414348494B41    *同じ
534144414348494B4120       534144414348494B4120 *空白の20が付く
E5AE9AE8BF91               92E88BDF              *t,bで違うんだね
E5AE9AE8BF9120             92E88BDF20            *t,bで違うんだね 空白の20が付く
20E5AE9AE8BF9120           2092E88BDF20          *t,bで違うんだね 空白の20が付く
32303133                   32303133              *同じ
3230313320                 3230313320            *空白の20が付く
203230313320               203230313320          *前後に空白の20が付く
323031333036         323031333036          *3036が付くこれが06の意味なんだろうね
32303133203620             32303133203620        *203620が付く_6の意味だろうね

○テーブルの追加を確認する
SHOW TABLES;
Tables_in_sadachika
sadachika
test1
test2                  追加されたね 


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

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

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