TEXT型のカラムとBLOB型のカラムを持つテーブルを作成します。MySQLの練習 free40
MySQLのテーブル表示にいろいろなプログラム文法を試みてみた。
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 追加されたね
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。