NULL(データなし)の設定方法を勉強した free48

Thursday,July,4,2013

mysql> create table sadachika_books.sadachi_nulltest(sada_num1 int not null, sada_num2 int null, sada_num3 int);  *カラムsada_num1のINT型null(データなし)の入力を無効 カラムsada_num2のINT型nullの入力は有効設定、以下2番目と同じ              
                    ↑データベース名       ↑テーブル名
Query OK, 0 rows affected (2.61 sec)

○テーブルを表示する
mysql> show tables from sadachika_books;
sada_personal
sadachi_doods
sadachi_nulltest      *追加されたね
sadachi_personal    
sadachika_magazine
sadachika_novel

○テーブルの構造を見る
mysql> show columns from sadachika_books.sadachi_nulltest;    *columns(新聞など印刷物の)縦の段; 欄.
Field       Type        Null  Key  Default  Extra
sada_num1   int(11)     NO         NULL                       *Nullの項目がNO無効になった
sada_num2   int(11)     YES        NULL
sada_num3   int(11)     YES        NULL

SHOW COLUMNS FROM sadachi_nulltest FROM sadachika_books LIKE 'sada_num1';
Field       Type        Null  Key  Default  Extra
sada_num1   int(11)     NO         NULL                       *Nullの項目がNO無効になった


○作成したテーブル(sadachi_nulltest)の定義を確認してみる
mysql> show create table sadachi_nulltest\G
*********** 1. row **************
       Table: sadachi_nulltest
Create Table: CREATE TABLE 'sadachi_nulltest'(
 'sada_num1' int(11) NOT NULL,                *NULLが無効に設定された カムラの名前sada_num1、INT型
 'sada_num2' int(11) DEFAULT NULL,            *カムラの名前sada_num2、INT型
 'sada_num3' int(11) DEFAULT NULL,            *カムラの名前sada_num3、INT型
) 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> show table status\G

SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_nulltest'\G
**************** 1.row **********************
           Name: sadachi_unlltest
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2013-07-04 04:01:43
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:



○データを格納する
        mysql> create table sadachika_books.sadachi_personal(sada_id int, sada_name varchar(20));
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('12','12','12');
Query OK 1 row affected (0.00 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('sadachika','sadachika','sadachika'); ERROR               *ノーマルに入力した
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('null','sadachika','sadachika');ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('sadachika','null','null');ERROR
insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13','null','null');              ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('sadachika');              ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('SADACHIKA');              ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13');                     ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13','13','13');
Query OK 1 row affected (0.00 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13','','');               ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13',null,null);
Query OK 1 row affected (0.00 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13',,);                   ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('13', ,);                  ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('14','14','14');           *シングルクオーテイションの数字はOK
Query OK 1 row affected (0.03 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('sadachika',null,null);    ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('abc15',null,null);        ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values('16',null,null);           *シングルクオーテイションの数字はOK
Query OK 1 row affected (0.01 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(17);                       ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(17,,18);                   ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(17,null,18);               *シングルクオーテイション無し
Query OK 1 row affected (0.01 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(null,19,19);               ERROR

mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(20,null,sadachika);        ERROR
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(21,null,null);             *シングルクオーテイション無し
Query OK 1 row affected (0.03 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(21,null,'sadachika');      ERROR
Query OK 1 row affected (0.03 sec)
mysql> insert into sadachika_books.sadachi_nulltest(sada_num1, sada_num2, sada_num3) values(22,null,'22');             *シングルクオーテイションの数字はOK
Query OK 1 row affected (0.03 sec)


文字が入力ができない
INT型は英語が入力できず、数字のみの入力が可能みたい(シングルクオーテイション有る無しにかかわらず)


○テーブルの中身の表示 
mysql> select * from sadachi_nulltest;
sada_num1    sada_num2    sada_num3
       12           12           12
       13           13           13
       13         NULL         NULL
       14           14           14
       16         NULL         NULL
       17         NULL           18
       21         NULL         NULL
       22         NULL           22


○テーブルの詳細情報を取得する
mysql> show table status\G

SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_nulltest'\G
**************** 1.row **********************
           Name: sadachi_unlltest
         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 04:01:43
    Update_time: NULL
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:


○現在接続されているデーターベース
MySQL> select database();
database()
sadachika_books    *データベースsadachika_booksへ接続されている


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

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

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