入力データにインデックスをつける free51
お手本CREATE TABLE db_name.tbl_name
(col_name1 data_type1 AUTO_INCREMENT, col_name2 data_type2, ...,
INDEX(col_name1));
○設定を施したテーブルを作る
mysql> create table sadachika_books.sadachi_autotest(sada_id int auto_increment, sada_name varchar(10), *カラム名sada_id INT型 auto_increment(関数みたいなもんでしょX+1), カラム名sada_name VARCHAR型
-> index(sada_id));
Query OK, 0 rows affected (0.22 sec)
○テーブルの構造を見る
mysql> show columns from sadachika_books.sadachi_autotest; *columns(新聞など印刷物の)縦の段; 欄.
Field Type Null Key Default Extra
sada_id int(11) NO MUL NULL auto_increment *Extra項目がauto_increment設定にになった。Key項目がMULこれなんだ? データが未記入の場合は0が入る カラム名sada_num INT型
sada_name varchar(10) YES NULL *カラム名sada_name VARCHAR型
*忘れるからメモ*前回はDefaultの項目をいじってたから'定近の未記入'になってた
○テーブルを作る
mysql> create table sadachika_books.sadachi_defaulttest(sada_num int default 0,
-> sada_str varchar(10) default '定近の未入力');
○テーブルの詳細情報を取得する
SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_autotest'\G
**************** 1.row **********************
Name: sadachi_autotest
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 16384 *新たに数字が表示されましたよ
Data_free: 0
Auto_increment: 1 *ふだんはNULLですが、→1に変わりました AUTO_INCREMENTが設定されたカラムに次にNULLまたは0が格納されたときに1を足す、と説明にあります。
Create_time: 2013-07-05 04:23:11
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
○データ入力
mysql> insert into autotest(name) values('扇風機');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values(2013);
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values(広島); *ERROR
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('広島');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('福山');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('定近');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('充始');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('NULL');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values(NULL);
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('さだちか');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values(); *ERROR
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('サダチカ');
○テーブルの中身の表示
mysql> select * from sadachika_books.sadachi_autotest;
sada_id sada_name
1 2013
2 広島
3 福山
4 定近
5 充始
6 NULL *NULLが入力されても
7 NULL
8 さだちか
9 *何も表示されないがインデックス数字がついた
10 サダチカ
○テーブルの詳細情報を取得する
SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_autotest'\G
**************** 1.row **********************
Name: sadachi_autotest
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 10 *入力カウント回数10
Avg_row_length: 1638
Data_length: 16384
Max_data_length: 0
Index_length: 16384 *新たに数字が表示されましたよ
Data_free: 0
Auto_increment: 11 *現在のインデックスの最大値は10であるから、次の入力時は11だという意味表示。
Create_time: 2013-07-05 04:23:11
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
○現在接続されているデーターベース
MySQL> select database();
database()
NULL *どこにも接続されてないみたい
mysql> USE sadachika_books;
○対象のカラムの値を削除する
delete from sadachika_books.sadachi_autotest where sada_id = 10; *現在の最大値を削除してみる、つぎのインデックスのカウント数を見るテスト
delete from sadachika_books.sadachi_autotest where sada_id = 9;
delete from sadachika_books.sadachi_autotest where sada_id = 8;
○データ入力
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('定近充始');
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('Atsushi Sadachika'); *ERROR なぜエラーなんだろうね、空白?文字数?
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values('Sadachika');
○テーブルの中身の表示
mysql> select * from sadachika_books.sadachi_autotest;
sada_id sada_name
1 2013
2 広島
3 福山
4 定近
5 充始
6 NULL *NULLが入力されても
7 NULL
11 定近充始 *8〜10が削除されて、次のインデックスは11から始まる
12 Sadachika
○データ入力
mysql> insert into sadachika_books.sadachi_autotest(sada_id, sada_name) values(88, '福島県');
○テーブルの詳細情報を取得する
SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_autotest'\G
**************** 1.row **********************
Name: sadachi_autotest
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 10 *入力カウント回数10 (削除込みでカウント)
Avg_row_length: 1638
Data_length: 16384
Max_data_length: 0
Index_length: 16384
Data_free: 0
Auto_increment: 89 *現在のインデックスの最大値は88であるから、次の入力時は89だという意味表示。
Create_time: 2013-07-05 04:23:11
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
○データ入力
mysql> insert into sadachika_books.sadachi_autotest(sada_name) values(3.11);
○テーブルの中身の表示
mysql> select * from sadachika_books.sadachi_autotest;
sada_id sada_name
1 2013
2 広島
3 福山
4 定近
5 充始
6 NULL *NULLが入力されても
7 NULL
11 定近充始 *8〜10が削除されて、次のインデックスは11から始まる
12 Sadachika
88 福島県
89 3.11
○設定を施したテーブルを作る
「AUTO_INCREMENT = 初期値」を指定。
mysql> create table sadachika_books.sadachi_autotest2(sada_id int auto_increment, sada_name varchar(10),
-> index(sada_id))
-> auto_increment = 100;
○データ入力
mysql> insert into sadachika_books.sadachi_autotest2(sada_name) values('定近充始');
○テーブルの詳細情報を取得する
SHOW TABLE STATUS FROM sadachika_books LIKE 'sadachi_autotest2'\G
**************** 1.row **********************
Name: sadachi_autotest2
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1 *入力カウント回数0 (削除込みでカウント)
Avg_row_length: 16384
Data_length: 16384
Max_data_length: 0
Index_length: 16384
Data_free: 0
Auto_increment: 101 *現在のインデックスの最大値は88であるから、次の入力時は89だという意味表示。
Create_time: 2013-07-05 05:52:41
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
○テーブルの中身の表示
mysql> select * from sadachika_books.sadachi_autotest2;
sada_id sada_name
100 定近充始
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。