テーブルのデフォルト値の設定 Default 0 '定近の未記入' free49

       お手本 mysql> create table defaulttest(num int default 0, 
                  -> str varchar(10) default '未入力');
○テーブルを作る
mysql> create table sadachika_books.sadachi_defaulttest(sada_num int default 0, 
    -> sada_str varchar(10) default '定近の未入力');

*データベースsadachika_booksフォルダの中に、2つのファイルが作られた。
 sadachi_defaulttest.frm
 sadachi_defaulttest.ibd

サクラエディタでdb.optファイルを開いてみる
default-character-set=utf8 
default-collation=utf8_general_ci

○テーブルの構造を見る
mysql> show columns from sadachika_books.sadachi_defaulttest;   *columns(新聞など印刷物の)縦の段; 欄.                     
Field      Type         Null   Key   Default        Extra
sada_num   int(11)      YES          0                          *Defaultの項目が0設定にになった データが未記入の場合は0が入る カラム名sada_num INT型
sada_str   varchar(10)  YES          定近の未記入               *Defaultの項目が'定近の未記入'になった カラム名sada_str VARCHAR型

SHOW COLUMNS FROM sadachi_defaulttest FROM sadachika_books LIKE 'sada_num';
Field      Type         Null   Key   Default        Extra
sada_num   int(11)      YES          0                          *Defaultの項目が'0'になった カラム名sada_num INT型

SHOW COLUMNS FROM sadachi_defaulttest FROM sadachika_books LIKE 'sada_str';
Field      Type         Null   Key   Default        Extra
sada_str   varchar(10)  YES          定近の未記入               *Defaultの項目が'定近の未記入'になった カラム名sada_str VARCHAR型

○作成したテーブル(sadachi_defaulttest)の定義を確認してみる
mysql> show create table sadachika_books.sadachi_defaulttest\G
*********** 1. row **************
       Table: sadachi_defaulttest
Create Table: CREATE TABLE 'sadachi_defaulttest'(
 'sada_num' int(11)     DEFAULT '0',                *DEFAULT '0'に設定された カムラの名前sada_num、INT型
 'sada_str' varchar(10) DEFAULT '定近の未記入',     *カムラの名前sada_str、VARCHAR型
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8               *デフォルトでcp932になるみたい 指定する場合は、文字セットと照合順序を指定してデータベース(フォルダ)を作成
1 row in set (0.61 sec)                             *例えば、こんな感じ、忘れないために書いておくmysql> create database sadachika_cp932db character set cp932; 
         *↑デフォルトはInnoDBだが、指定する場合のためにメモを残しておく InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM;   *INT型 MyISAMと入力


○データを格納する
        mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('12','12','12');
mysql> insert into sadachika_books.sadachi_defaulttest(sada_num) values(5);
Query OK 1 row affected (0.03 sec)
insert into sadachika_books.sadachi_defaulttest(sada_num,sada_str) values(null,6);
Query OK 1 row affected (0.02 sec)
insert into sadachika_books.sadachi_defaulttest(sada_num,sada_str) values();      *ERROR

insert into sadachika_books.sadachi_defaulttest(sada_num,sada_str) values(null,null);
Query OK 1 row affected (0.00 sec)
insert into sadachika_books.sadachi_defaulttest(sada_str) values('広島県');
Query OK 1 row affected (0.00 sec)

○テーブルの中身の表示 
mysql> select * from sadachika_books.sadachi_defaulttest;
sada_num    sada_str
5 定近の未入力
NULL 6
NULL NULL          *NULLがそのまま出力されちゃった
0 広島県                                                                         *↓この設定にしないとまずかったかも
            mysql> create table sadachika_books.sadachi_nulltest(sada_num1 int not null, sada_num2 int null, sada_num3 int);
             mysql> show columns from sadachika_books.sadachi_nulltest;          *columns(新聞など印刷物の)縦の段; 欄.
             Field       Type        Null  Key  Default  Extra
             sada_num1   int(11)     NO         NULL                             *Nullの項目がNO無効になった

○テーブルを作る
mysql> create table sadachika_books.sadachi_defaulttest2(sada_num int not null default 0, 
    -> sada_str varchar(10) not null default '定近の未入力');
Query OK 1 row affected (0.02 sec)

○テーブルの構造を見る
mysql> show columns from sadachika_books.sadachi_defaulttest2;   *columns(新聞など印刷物の)縦の段; 欄.                     
Field      Type         Null   Key   Default        Extra
sada_num   int(11)      NO           0                           *Defaultの項目が0設定にになった データが未記入の場合は0が入る カラム名sada_num INT型
sada_str   varchar(10)  NO           定近の未記入                *Defaultの項目が'定近の未記入'になった カラム名sada_str VARCHAR型

○作成したテーブル(sadachi_defaulttest2)の定義を確認してみる
mysql> show create table sadachika_books.sadachi_defaulttest2\G
*********** 1. row **************
       Table: sadachi_defaulttest2
Create Table: CREATE TABLE 'sadachi_defaulttest2'(
 'sada_num' int(11)     NOT NULL DEFAULT '0',                *NOT NULLになった*DEFAULT '0'に設定された カムラの名前sada_num、INT型
 'sada_str' varchar(10) NOT NULL DEFAULT '定近の未記入',     *NOT NULLになった*カムラの名前sada_str、VARCHAR型
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8                        *デフォルトでcp932になるみたい 指定する場合は、文字セットと照合順序を指定してデータベース(フォルダ)を作成
1 row in set (0.61 sec)                                      *例えば、こんな感じ、忘れないために書いておくmysql> create database sadachika_cp932db character set cp932; 
         *↑デフォルトはInnoDBだが、指定する場合のためにメモを残しておく InnoDBを変えたりするには、mysql> create table sadachika_novel(sada_id int) engine=MyISAM;   *INT型 MyISAMと入力

○データを格納する
        mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('12','12','12');
mysql> insert into sadachika_books.sadachi_defaulttest2(sada_num) values(5);
Query OK 1 row affected (0.03 sec)
insert into sadachika_books.sadachi_defaulttest2(sada_num,sada_str) values(null,6);      *ERROR
insert into sadachika_books.sadachi_defaulttest2(sada_num,sada_str) values();            *ERROR

insert into sadachika_books.sadachi_defaulttest2(sada_num,sada_str) values(null,null);   *ERROR
insert into sadachika_books.sadachi_defaulttest2(sada_str) values('広島県');
Query OK 1 row affected (0.00 sec)

○テーブルの中身の表示 
mysql> select * from sadachika_books.sadachi_defaulttest2;
sada_num    sada_str                                                                     *入力は2項目のみ 今度は入力段階でNULLがエラー
5 定近の未入力
0 広島県 

○現在接続されているデーターベース
MySQL> select database();
database()
NULL                   *どこにも接続されてないみたい


○テーブルの詳細情報を取得する
mysql> show table status\G
公式SHOW TABLE STATUS LIKE 'pattern';
    SHOW TABLE STATUS LIKE 'sadachi_goods';
    SHOW TABLE STATUS LIKE 'sadachi_goods'\G
公式SHOW TABLE STATUS FROM db_name LIKE 'pattern';
         SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_defaulttest';
         SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_defaulttest'\G

SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_defaulttest'\G

**************** 1.row **********************
           Name: sadachi_defaulttest
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 8                    *8項目の入力
 Avg_row_length: 2048
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2013-07-04 22:43:03
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:

SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_defaulttest2'\G

**************** 1.row **********************
           Name: sadachi_defaulttest2
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 2                    *2項目の入力
 Avg_row_length: 8192
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2013-07-04 23:30:46
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:


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

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

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