テーブルのデフォルト値の設定 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:
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。