MySQL_info
の編集
index.php?MySQL_info
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents ** ユーザー登録 [#g84160e4] *** mysql へのログイン [#z28b4175] - インストール時に設定される mysql という名前のデータベース内にアカウント情報が設定されている - mysql にログインする時には -u (アカウント名) -p でアカウントを指定する - 現在の環境では root (システムの root とは別)に対してパスワードを設定している [munakata@charisma yellowpages]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 5.0.27 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select user,host,password from mysql.user; +------+--------------------+------------------+ | user | host | password | +------+--------------------+------------------+ | root | localhost | 5eeabd381db11d2b | | root | charisma.hmuna.com | 5eeabd381db11d2b | | | charisma.hmuna.com | | | | localhost | | +------+--------------------+------------------+ 4 rows in set (0.00 sec) mysql> *** パスワードの設定 [#w6d8c5e6] - パスワードの設定のしかた mysql> set password for root@localhost=password('xxxxxxxx'); ** 表示系 [#x76d5186] *** データベース名の表示 [#bba2a426] mysql> show databases; +----------+ | Database | +----------+ | mysql | | peewee | +----------+ 2 rows in set (0.02 sec) *** データベースの選択 [#a96b0bc6] mysql> use peewee Database changed *** データ-ベース内のテーブルの表示 [#rb74be13] mysql> show tables; +------------------+ | Tables_in_peewee | +------------------+ | image | | type_info | +------------------+ 2 rows in set (0.00 sec) *** テーブル内のカラムの表示 [#hb4f361d] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** データベースの初期化(本体、テーブル) [#o6209aa7] *** データベースの新規作成 [#zd6a0311] mysql> create database new; Query OK, 1 row affected (0.00 sec) mysql> show databases; +----------+ | Database | +----------+ | mysql | | new | | peewee | +----------+ 3 rows in set (0.00 sec) *** データベースの削除 [#z1b214fd] mysql> drop database new; Query OK, 1 row affected (0.00 sec) *** データの型 (SQL 標準) [#aeedd937] + 文字型 |型|最大文字数|使用サイズ|h |CHAR(文字数)|RIGHT:255バイト|指定文字数+1バイト| |BINARY(文字数)|RIGHT:255バイト|文字列長+1バイト| |VARCHAR|RIGHT:255バイト|文字列長+1バイト| |TINYBLOB / TINYTEXT|RIGHT:255バイト|文字列長+1バイト| |BLOB / TEXT|RIGHT:64kバイト|文字列長+2バイト| |MEDIUMBLOB / MEDIUMTEXT|RIGHT:16Mバイト|文字列長+3バイト| |LONGBLOB / LONGTEXT|RIGHT:4Gバイト|文字列長+4バイト| + 数値型 |型|バイト|CENTER:最小値|CENTER:最大値|h |TINYINT|CENTER:1|-128|127| |SMALLINT|CENTER:2|-32768|32767| |MEDIUMINT|CENTER:3|-8388608|8388607| |INT|CENTER:4|-2147483648|2147483647| |BIGINT|CENTER:8|-9223372036854775808|9223372036854775807| +日付時刻型 |型|表示形式|範囲|説明|h |DATE|YYYY-MM-DD|1000-01-01 〜 9999-12-31|3バイト日付型| |DATETIME|YYYY-MM-DD HH:MM:SS|1000-01-01 00:00:00〜 9999-12-31 23:59:59|8バイト日付型| |TIME|HHH:MM:SS|-838:59:59〜 838.59.59|3バイト時刻型| |YEAR(2)|YY|70 〜 69(1970-2069)|1バイト年型| |YEAR(4)|YYYY|1901 〜 2155,0000|1バイト年型| |TIMESTAMP[2]|YY||| |TIMESTAMP[4]|YYMM|~|~| |TIMESTAMP[6]|YYMMDD|~|~| |TIMESTAMP[8]|YYYYMMDD|~|~| |TIMESTAMP[10]|YYMMDDHHMM|~|~| |TIMESTAMP[12]|YYMMDDHHMMSS|~|~| |TIMESTAMP[14]|YYYYMMDDHHMMSS|~|~| TIMESTAMP型のフィールドはレコードが更新される時に自動的に現在時刻が設定される。 複数の TIMESTAMP フォールドがある場合には最初のものだけが自動更新される &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** テーブルの新規作成 (カラム構造の宣言) [#t6394e22] '' 構文 COLOR(RED){CREATE TABLE テーブル名(カラム1 カラム1のデータの型、カラム2 カラム2のデータの型....);}'' mysql> create table type_info (type_id int, type_def varchar(100)); Query OK, 0 rows affected (0.03 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** 検索を高速化させる為にインデックスを付加する [#y30751d4] ''COLOR(GREEN){新規にテーブルを作成する時に INDEX を指定する。}'' mysql> create table pict_info(file_name varchar(20), -> category int, -> quarity int, -> reality int, -> index (file_name)); Query OK, 0 rows affected (0.00 sec) mysql> show columns from pict_info; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | file_name | varchar(20) | YES | MUL | NULL | | | category | int(11) | YES | | NULL | | | quarity | int(11) | YES | | NULL | | | reality | int(11) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) ''COLOR(GREEN){作成済みのテーブルに INDEX を追加で指定する}'' mysql> alter table file_dir add index (file_name); Query OK, 87 rows affected (0.00 sec) Records: 87 Duplicates: 0 Warnings: 0 mysql> show columns from file_dir; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | file_name | varchar(40) | YES | MUL | NULL | | | size | int(11) | YES | | NULL | | | data | datetime | YES | | NULL | | | dir | varchar(100) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** カラム構造(データベースメンバー)の表示 [#w2fc561d] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) *** カラムの削除 [ALTER TABLE xxx DROP yyy] [#pc1493b6] mysql> alter table type_info drop type_id; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 *** カラムの追加 [ALTER TABLE xxx ADD yyy zzz] [#s360afbb] mysql> alter table type_info add pict_type int; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from type_info; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | type_def | varchar(100) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** レコード登録 [#o85abb81] *** レコード登録(内容を指定しないカラムは NULL に初期化される) [#k43ce064] mysql> insert into image (file_id, pict_type, pict_size) VALUES -> ('123456.jpg',1,1024); Query OK, 1 row affected (0.03 sec) *** ファイルからのレコードの一括登録 [LOAD DATA 文] [#f77a709f] + ''COLOR(GREEN){カラムの構造とマッチしたデータが TAB で区切られたテキストデータのファイルを一括で読み込ませることができる。}'' ++ COLOR(BLUE){最初にデータを読み込ませるテーブルを準備する} mysql> create table file_dir (file_name varchar(40), -> size int, -> data datetime, -> dir varchar(100)); Query OK, 0 rows affected (0.01 sec) mysql> show columns from file_dir; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | file_name | varchar(40) | YES | | NULL | | | size | int(11) | YES | | NULL | | | data | datetime | YES | | NULL | | | dir | varchar(100) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) ++ COLOR(BLUE){読み込ませる為に作成したデータのテクストファイル (タブ区切り)} [root@rh01 root]# cat /home/munakata/dir_data.txt 20100000.jpg 40236 2002/07/05 09:35 C:\data\mydata 20100001.jpg 45323 2002/08/06 00:35 C:\data\mydata 20100002.jpg 44296 2002/07/05 09:36 C:\data\mydata 20100003.jpg 43769 2002/07/05 09:41 C:\data\mydata 20100004.jpg 38132 2002/07/05 09:37 C:\data\mydata 20100005.jpg 40826 2002/08/14 18:20 C:\data\mydata 20100006.jpg 42708 2002/08/06 00:36 C:\data\mydata 20100007.jpg 46642 2002/08/06 00:36 C:\data\mydata 20100008.jpg 55897 2002/08/06 00:30 C:\data\mydata 20100009.jpg 44572 2002/08/06 00:31 C:\data\mydata 20100010.jpg 41688 2002/08/06 00:31 C:\data\mydata ++ COLOR(BLUE){クライアント上のファイル(local file)をテーブルに読み込む} mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir; Query OK, 87 rows affected (0.00 sec) Records: 87 Deleted: 0 Skipped: 0 Warnings: 0 ++ COLOR(BLUE){レコードが正しく書き込まれたことを確認}} mysql> select * from file_dir; +--------------+--------+---------------------+--------------+ | file_name | size | data | dir | +--------------+--------+---------------------+--------------+ | 20100000.jpg | 40236 | 2002-07-05 09:35:00 | C:datamydata | | 20100001.jpg | 45323 | 2002-08-06 00:35:00 | C:datamydata | | 20100002.jpg | 44296 | 2002-07-05 09:36:00 | C:datamydata | 途中省略 | 20100085.jpg | 72163 | 2003-05-14 10:07:00 | C:datamydata | | 20100086.jpg | 61625 | 2003-06-02 18:11:00 | C:datamydata | | 20100087.jpg | 118352 | 2003-08-01 00:34:00 | C:datamydata | +--------------+--------+---------------------+--------------+ 87 rows in set (0.00 sec) *** ファイルからの一括登録時のオプション指定 [#zfd47217] +''COLOR(GREEN){レコードの先頭何行かを無視させる方法 ・・・・ IGNORE 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> ignore 1 lines; +''COLOR(GREEN){サーバー上のファイルを読み込ませる方法 ・・・・ LOCAL を取る}'' mysql> load data infile '/home/munakata/dir_data.txt' -> into table file_dir; +''COLOR(GREEN){TAB 以外のデリミタを読み込む方法 ・・・・ FIELDS TERMINATED BY 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> fields terminated by ':'; +''COLOR(GREEN){データが ”データ” などのように括られている場合・・・・ ENCLOSED BY 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> enclosed by '"'; +''COLOR(GREEN){レコードの並び順が異なる場合 ・・・・ ファイル内のカラム指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> { 項目1、項目2、... }; &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** レコードの更新 [#oef1e402] mysql> update image set pict_quality = 9999; Query OK, 2 rows affected (0.00 sec) mysql> insert into image (file_id, pict_size) values ('998866.jpg',2048); Query OK, 1 row affected (0.00 sec) mysql> insert into image (file_id, pict_size) values ('96680.jpg',4096); Query OK, 1 row affected (0.00 sec) *** 指定した条件にマッチしたデータの変更 [update 演算子] [#tf246256] mysql> select file_id, pict_type from image; +------------+-----------+ | file_id | pict_type | +------------+-----------+ | 123555.jpg | 0 | | 998866.jpg | NULL | | 96680.jpg | NULL | +------------+-----------+ 3 rows in set (0.00 sec) mysql> update image set pict_type=1 where file_id='123555.jpg'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update image set pict_type=2 where file_id='998866.jpg'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update image set pict_type=3 where file_id='96680.jpg'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select file_id, pict_type from image; +------------+-----------+ | file_id | pict_type | +------------+-----------+ | 123555.jpg | 1 | | 998866.jpg | 2 | | 96680.jpg | 3 | +------------+-----------+ 3 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** レコードの削除(条件付、何も指定しないと全て削除される) [#fa4ee364] mysql> delete from image where file_id='123456.jpg'; Query OK, 1 row affected (0.03 sec) mysql> select file_id, pict_size, pict_quality from image; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | +------------+-----------+--------------+ 1 row in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** 検索系 [#aab30e72] *** データの単純抽出 [SELECT 演算子] [#pa10e98e] mysql> select file_id,pict_size from image; +------------+-----------+ | file_id | pict_size | +------------+-----------+ | 123456.jpg | 1024 | | 123555.jpg | 2048 | +------------+-----------+ 2 rows in set (0.00 sec) mysql> select file_id, pict_size, pict_quality from image; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123456.jpg | 1024 | 9999 | | 123555.jpg | 2048 | 9999 | +------------+-----------+--------------+ 2 rows in set (0.00 sec) *** select 文はレコードの検索以外の目的でも使用できる [#i6570259] mysql> select CURDATE() as Today; +------------+ | Today | +------------+ | 2004-04-17 | +------------+ 1 row in set (0.00 sec) *** データ抽出時に演算を行うこともできる [#r0bebdb6] mysql> select file_id, pict_size, (pict_quality/2) from image; +------------+-----------+------------------+ | file_id | pict_size | (pict_quality/2) | +------------+-----------+------------------+ | 123555.jpg | 2048 | 4999.50 | | 998866.jpg | 2048 | NULL | | 96680.jpg | 4096 | NULL | +------------+-----------+------------------+ 3 rows in set (0.00 sec) mysql> select file_id, (pict_size+100), (pict_quality/2) from image; +------------+-----------------+------------------+ | file_id | (pict_size+100) | (pict_quality/2) | +------------+-----------------+------------------+ | 123555.jpg | 2148 | 4999.50 | | 998866.jpg | 2148 | NULL | | 96680.jpg | 4196 | NULL | +------------+-----------------+------------------+ 3 rows in set (0.00 sec) mysql> select file_id, (pict_size+100), (pict_quality/2) from image -> where pict_quality > 100; +------------+-----------------+------------------+ | file_id | (pict_size+100) | (pict_quality/2) | +------------+-----------------+------------------+ | 123555.jpg | 2148 | 4999.50 | +------------+-----------------+------------------+ 1 row in set (0.00 sec) *** データ抽出時にカラムを指定して並び替え [ORDER BY 演算子] [#j57e7404] mysql> select file_id, pict_size, pict_quality from image -> order by file_id; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | | 96680.jpg | 4096 | NULL | | 998866.jpg | 2048 | NULL | +------------+-----------+--------------+ 3 rows in set (0.02 sec) mysql> select file_id, pict_size, pict_quality from image -> order by pict_size; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | | 998866.jpg | 2048 | NULL | | 96680.jpg | 4096 | NULL | +------------+-----------+--------------+ 3 rows in set (0.00 sec) *** レコードの演算の表示 (単純な抽出ではなく演算結果だけを表示) [#ge5fb846] mysql> select MIN(pict_size),AVG(pict_size),MAX(pict_size) from image; +---------------+----------------+----------------+ | MIN(pict_size) | AVG(pict_size) | MAX(pict_size) | +----------------+----------------+----------------+ | 2048 | 2730.6667 | 4096 | +----------------+----------------+----------------+ 1 row in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** 検索時のリレーションの設定 (複数テーブルの連結) [#q7f280a6] *** 内部結合 [INNER JOIN 演算子] [#u56a2733] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) mysql> show columns from type_info; +--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | pict_type | int(11) | YES | | NULL | | | type_comment | varchar(100) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> select file_id, pict_type, pict_size from image; +------------+-----------+-----------+ | file_id | pict_type | pict_size | +------------+-----------+-----------+ | 123555.jpg | 1 | 2048 | | 998866.jpg | 2 | 2048 | | 96680.jpg | 3 | 4096 | +------------+-----------+-----------+ 3 rows in set (0.00 sec) mysql> select * from type_info; +-----------+--------------+ | pict_type | type_comment | +-----------+--------------+ | 1 | 区分1 | | 2 | 区分2 | | 3 | 区分3 | +-----------+--------------+ 3 rows in set (0.00 sec) mysql> select file_id, type_comment, image.pict_type, pict_size from image -> inner join type_info on -> image.pict_type = type_info.pict_type; +------------+--------------+-----------+-----------+ | file_id | type_comment | pict_type | pict_size | +------------+--------------+-----------+-----------+ | 123555.jpg | 区分1 | 1 | 2048 | | 998866.jpg | 区分2 | 2 | 2048 | | 96680.jpg | 区分3 | 3 | 4096 | +------------+--------------+-----------+-----------+ 3 rows in set (0.00 sec) *** 内部結合 [WHERE 演算子] [#l46f567b] ** 外部結合 [#kdb2efe1] *** 左外部結合 [LEFT JOIN 演算子] [#dc4c172c] *** 右外部結合 [RIGHT JOIN 演算子] [#u6fb885a] ** 和結合:ユニオン(縦方向の結合) [#o12aa174] &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;
タイムスタンプを変更しない
#contents ** ユーザー登録 [#g84160e4] *** mysql へのログイン [#z28b4175] - インストール時に設定される mysql という名前のデータベース内にアカウント情報が設定されている - mysql にログインする時には -u (アカウント名) -p でアカウントを指定する - 現在の環境では root (システムの root とは別)に対してパスワードを設定している [munakata@charisma yellowpages]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 5.0.27 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select user,host,password from mysql.user; +------+--------------------+------------------+ | user | host | password | +------+--------------------+------------------+ | root | localhost | 5eeabd381db11d2b | | root | charisma.hmuna.com | 5eeabd381db11d2b | | | charisma.hmuna.com | | | | localhost | | +------+--------------------+------------------+ 4 rows in set (0.00 sec) mysql> *** パスワードの設定 [#w6d8c5e6] - パスワードの設定のしかた mysql> set password for root@localhost=password('xxxxxxxx'); ** 表示系 [#x76d5186] *** データベース名の表示 [#bba2a426] mysql> show databases; +----------+ | Database | +----------+ | mysql | | peewee | +----------+ 2 rows in set (0.02 sec) *** データベースの選択 [#a96b0bc6] mysql> use peewee Database changed *** データ-ベース内のテーブルの表示 [#rb74be13] mysql> show tables; +------------------+ | Tables_in_peewee | +------------------+ | image | | type_info | +------------------+ 2 rows in set (0.00 sec) *** テーブル内のカラムの表示 [#hb4f361d] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** データベースの初期化(本体、テーブル) [#o6209aa7] *** データベースの新規作成 [#zd6a0311] mysql> create database new; Query OK, 1 row affected (0.00 sec) mysql> show databases; +----------+ | Database | +----------+ | mysql | | new | | peewee | +----------+ 3 rows in set (0.00 sec) *** データベースの削除 [#z1b214fd] mysql> drop database new; Query OK, 1 row affected (0.00 sec) *** データの型 (SQL 標準) [#aeedd937] + 文字型 |型|最大文字数|使用サイズ|h |CHAR(文字数)|RIGHT:255バイト|指定文字数+1バイト| |BINARY(文字数)|RIGHT:255バイト|文字列長+1バイト| |VARCHAR|RIGHT:255バイト|文字列長+1バイト| |TINYBLOB / TINYTEXT|RIGHT:255バイト|文字列長+1バイト| |BLOB / TEXT|RIGHT:64kバイト|文字列長+2バイト| |MEDIUMBLOB / MEDIUMTEXT|RIGHT:16Mバイト|文字列長+3バイト| |LONGBLOB / LONGTEXT|RIGHT:4Gバイト|文字列長+4バイト| + 数値型 |型|バイト|CENTER:最小値|CENTER:最大値|h |TINYINT|CENTER:1|-128|127| |SMALLINT|CENTER:2|-32768|32767| |MEDIUMINT|CENTER:3|-8388608|8388607| |INT|CENTER:4|-2147483648|2147483647| |BIGINT|CENTER:8|-9223372036854775808|9223372036854775807| +日付時刻型 |型|表示形式|範囲|説明|h |DATE|YYYY-MM-DD|1000-01-01 〜 9999-12-31|3バイト日付型| |DATETIME|YYYY-MM-DD HH:MM:SS|1000-01-01 00:00:00〜 9999-12-31 23:59:59|8バイト日付型| |TIME|HHH:MM:SS|-838:59:59〜 838.59.59|3バイト時刻型| |YEAR(2)|YY|70 〜 69(1970-2069)|1バイト年型| |YEAR(4)|YYYY|1901 〜 2155,0000|1バイト年型| |TIMESTAMP[2]|YY||| |TIMESTAMP[4]|YYMM|~|~| |TIMESTAMP[6]|YYMMDD|~|~| |TIMESTAMP[8]|YYYYMMDD|~|~| |TIMESTAMP[10]|YYMMDDHHMM|~|~| |TIMESTAMP[12]|YYMMDDHHMMSS|~|~| |TIMESTAMP[14]|YYYYMMDDHHMMSS|~|~| TIMESTAMP型のフィールドはレコードが更新される時に自動的に現在時刻が設定される。 複数の TIMESTAMP フォールドがある場合には最初のものだけが自動更新される &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** テーブルの新規作成 (カラム構造の宣言) [#t6394e22] '' 構文 COLOR(RED){CREATE TABLE テーブル名(カラム1 カラム1のデータの型、カラム2 カラム2のデータの型....);}'' mysql> create table type_info (type_id int, type_def varchar(100)); Query OK, 0 rows affected (0.03 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** 検索を高速化させる為にインデックスを付加する [#y30751d4] ''COLOR(GREEN){新規にテーブルを作成する時に INDEX を指定する。}'' mysql> create table pict_info(file_name varchar(20), -> category int, -> quarity int, -> reality int, -> index (file_name)); Query OK, 0 rows affected (0.00 sec) mysql> show columns from pict_info; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | file_name | varchar(20) | YES | MUL | NULL | | | category | int(11) | YES | | NULL | | | quarity | int(11) | YES | | NULL | | | reality | int(11) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) ''COLOR(GREEN){作成済みのテーブルに INDEX を追加で指定する}'' mysql> alter table file_dir add index (file_name); Query OK, 87 rows affected (0.00 sec) Records: 87 Duplicates: 0 Warnings: 0 mysql> show columns from file_dir; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | file_name | varchar(40) | YES | MUL | NULL | | | size | int(11) | YES | | NULL | | | data | datetime | YES | | NULL | | | dir | varchar(100) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** カラム構造(データベースメンバー)の表示 [#w2fc561d] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) *** カラムの削除 [ALTER TABLE xxx DROP yyy] [#pc1493b6] mysql> alter table type_info drop type_id; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 *** カラムの追加 [ALTER TABLE xxx ADD yyy zzz] [#s360afbb] mysql> alter table type_info add pict_type int; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show columns from type_info; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | type_def | varchar(100) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** レコード登録 [#o85abb81] *** レコード登録(内容を指定しないカラムは NULL に初期化される) [#k43ce064] mysql> insert into image (file_id, pict_type, pict_size) VALUES -> ('123456.jpg',1,1024); Query OK, 1 row affected (0.03 sec) *** ファイルからのレコードの一括登録 [LOAD DATA 文] [#f77a709f] + ''COLOR(GREEN){カラムの構造とマッチしたデータが TAB で区切られたテキストデータのファイルを一括で読み込ませることができる。}'' ++ COLOR(BLUE){最初にデータを読み込ませるテーブルを準備する} mysql> create table file_dir (file_name varchar(40), -> size int, -> data datetime, -> dir varchar(100)); Query OK, 0 rows affected (0.01 sec) mysql> show columns from file_dir; +-----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+-------+ | file_name | varchar(40) | YES | | NULL | | | size | int(11) | YES | | NULL | | | data | datetime | YES | | NULL | | | dir | varchar(100) | YES | | NULL | | +-----------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) ++ COLOR(BLUE){読み込ませる為に作成したデータのテクストファイル (タブ区切り)} [root@rh01 root]# cat /home/munakata/dir_data.txt 20100000.jpg 40236 2002/07/05 09:35 C:\data\mydata 20100001.jpg 45323 2002/08/06 00:35 C:\data\mydata 20100002.jpg 44296 2002/07/05 09:36 C:\data\mydata 20100003.jpg 43769 2002/07/05 09:41 C:\data\mydata 20100004.jpg 38132 2002/07/05 09:37 C:\data\mydata 20100005.jpg 40826 2002/08/14 18:20 C:\data\mydata 20100006.jpg 42708 2002/08/06 00:36 C:\data\mydata 20100007.jpg 46642 2002/08/06 00:36 C:\data\mydata 20100008.jpg 55897 2002/08/06 00:30 C:\data\mydata 20100009.jpg 44572 2002/08/06 00:31 C:\data\mydata 20100010.jpg 41688 2002/08/06 00:31 C:\data\mydata ++ COLOR(BLUE){クライアント上のファイル(local file)をテーブルに読み込む} mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir; Query OK, 87 rows affected (0.00 sec) Records: 87 Deleted: 0 Skipped: 0 Warnings: 0 ++ COLOR(BLUE){レコードが正しく書き込まれたことを確認}} mysql> select * from file_dir; +--------------+--------+---------------------+--------------+ | file_name | size | data | dir | +--------------+--------+---------------------+--------------+ | 20100000.jpg | 40236 | 2002-07-05 09:35:00 | C:datamydata | | 20100001.jpg | 45323 | 2002-08-06 00:35:00 | C:datamydata | | 20100002.jpg | 44296 | 2002-07-05 09:36:00 | C:datamydata | 途中省略 | 20100085.jpg | 72163 | 2003-05-14 10:07:00 | C:datamydata | | 20100086.jpg | 61625 | 2003-06-02 18:11:00 | C:datamydata | | 20100087.jpg | 118352 | 2003-08-01 00:34:00 | C:datamydata | +--------------+--------+---------------------+--------------+ 87 rows in set (0.00 sec) *** ファイルからの一括登録時のオプション指定 [#zfd47217] +''COLOR(GREEN){レコードの先頭何行かを無視させる方法 ・・・・ IGNORE 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> ignore 1 lines; +''COLOR(GREEN){サーバー上のファイルを読み込ませる方法 ・・・・ LOCAL を取る}'' mysql> load data infile '/home/munakata/dir_data.txt' -> into table file_dir; +''COLOR(GREEN){TAB 以外のデリミタを読み込む方法 ・・・・ FIELDS TERMINATED BY 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> fields terminated by ':'; +''COLOR(GREEN){データが ”データ” などのように括られている場合・・・・ ENCLOSED BY 指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> enclosed by '"'; +''COLOR(GREEN){レコードの並び順が異なる場合 ・・・・ ファイル内のカラム指定}'' mysql> load data local infile '/home/munakata/dir_data.txt' -> into table file_dir -> { 項目1、項目2、... }; &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** レコードの更新 [#oef1e402] mysql> update image set pict_quality = 9999; Query OK, 2 rows affected (0.00 sec) mysql> insert into image (file_id, pict_size) values ('998866.jpg',2048); Query OK, 1 row affected (0.00 sec) mysql> insert into image (file_id, pict_size) values ('96680.jpg',4096); Query OK, 1 row affected (0.00 sec) *** 指定した条件にマッチしたデータの変更 [update 演算子] [#tf246256] mysql> select file_id, pict_type from image; +------------+-----------+ | file_id | pict_type | +------------+-----------+ | 123555.jpg | 0 | | 998866.jpg | NULL | | 96680.jpg | NULL | +------------+-----------+ 3 rows in set (0.00 sec) mysql> update image set pict_type=1 where file_id='123555.jpg'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update image set pict_type=2 where file_id='998866.jpg'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> update image set pict_type=3 where file_id='96680.jpg'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select file_id, pict_type from image; +------------+-----------+ | file_id | pict_type | +------------+-----------+ | 123555.jpg | 1 | | 998866.jpg | 2 | | 96680.jpg | 3 | +------------+-----------+ 3 rows in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; *** レコードの削除(条件付、何も指定しないと全て削除される) [#fa4ee364] mysql> delete from image where file_id='123456.jpg'; Query OK, 1 row affected (0.03 sec) mysql> select file_id, pict_size, pict_quality from image; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | +------------+-----------+--------------+ 1 row in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** 検索系 [#aab30e72] *** データの単純抽出 [SELECT 演算子] [#pa10e98e] mysql> select file_id,pict_size from image; +------------+-----------+ | file_id | pict_size | +------------+-----------+ | 123456.jpg | 1024 | | 123555.jpg | 2048 | +------------+-----------+ 2 rows in set (0.00 sec) mysql> select file_id, pict_size, pict_quality from image; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123456.jpg | 1024 | 9999 | | 123555.jpg | 2048 | 9999 | +------------+-----------+--------------+ 2 rows in set (0.00 sec) *** select 文はレコードの検索以外の目的でも使用できる [#i6570259] mysql> select CURDATE() as Today; +------------+ | Today | +------------+ | 2004-04-17 | +------------+ 1 row in set (0.00 sec) *** データ抽出時に演算を行うこともできる [#r0bebdb6] mysql> select file_id, pict_size, (pict_quality/2) from image; +------------+-----------+------------------+ | file_id | pict_size | (pict_quality/2) | +------------+-----------+------------------+ | 123555.jpg | 2048 | 4999.50 | | 998866.jpg | 2048 | NULL | | 96680.jpg | 4096 | NULL | +------------+-----------+------------------+ 3 rows in set (0.00 sec) mysql> select file_id, (pict_size+100), (pict_quality/2) from image; +------------+-----------------+------------------+ | file_id | (pict_size+100) | (pict_quality/2) | +------------+-----------------+------------------+ | 123555.jpg | 2148 | 4999.50 | | 998866.jpg | 2148 | NULL | | 96680.jpg | 4196 | NULL | +------------+-----------------+------------------+ 3 rows in set (0.00 sec) mysql> select file_id, (pict_size+100), (pict_quality/2) from image -> where pict_quality > 100; +------------+-----------------+------------------+ | file_id | (pict_size+100) | (pict_quality/2) | +------------+-----------------+------------------+ | 123555.jpg | 2148 | 4999.50 | +------------+-----------------+------------------+ 1 row in set (0.00 sec) *** データ抽出時にカラムを指定して並び替え [ORDER BY 演算子] [#j57e7404] mysql> select file_id, pict_size, pict_quality from image -> order by file_id; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | | 96680.jpg | 4096 | NULL | | 998866.jpg | 2048 | NULL | +------------+-----------+--------------+ 3 rows in set (0.02 sec) mysql> select file_id, pict_size, pict_quality from image -> order by pict_size; +------------+-----------+--------------+ | file_id | pict_size | pict_quality | +------------+-----------+--------------+ | 123555.jpg | 2048 | 9999 | | 998866.jpg | 2048 | NULL | | 96680.jpg | 4096 | NULL | +------------+-----------+--------------+ 3 rows in set (0.00 sec) *** レコードの演算の表示 (単純な抽出ではなく演算結果だけを表示) [#ge5fb846] mysql> select MIN(pict_size),AVG(pict_size),MAX(pict_size) from image; +---------------+----------------+----------------+ | MIN(pict_size) | AVG(pict_size) | MAX(pict_size) | +----------------+----------------+----------------+ | 2048 | 2730.6667 | 4096 | +----------------+----------------+----------------+ 1 row in set (0.00 sec) &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart; ** 検索時のリレーションの設定 (複数テーブルの連結) [#q7f280a6] *** 内部結合 [INNER JOIN 演算子] [#u56a2733] mysql> show columns from image; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | file_id | varchar(20) | YES | | NULL | | | pict_type | int(11) | YES | | NULL | | | pict_size | int(11) | YES | | NULL | | | pict_quality | int(11) | YES | | NULL | | | pict_reality | int(11) | YES | | NULL | | | pict_date | date | YES | | NULL | | | pict_select | enum('N','Y') | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 7 rows in set (0.00 sec) mysql> show columns from type_info; +--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | pict_type | int(11) | YES | | NULL | | | type_comment | varchar(100) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec) mysql> select file_id, pict_type, pict_size from image; +------------+-----------+-----------+ | file_id | pict_type | pict_size | +------------+-----------+-----------+ | 123555.jpg | 1 | 2048 | | 998866.jpg | 2 | 2048 | | 96680.jpg | 3 | 4096 | +------------+-----------+-----------+ 3 rows in set (0.00 sec) mysql> select * from type_info; +-----------+--------------+ | pict_type | type_comment | +-----------+--------------+ | 1 | 区分1 | | 2 | 区分2 | | 3 | 区分3 | +-----------+--------------+ 3 rows in set (0.00 sec) mysql> select file_id, type_comment, image.pict_type, pict_size from image -> inner join type_info on -> image.pict_type = type_info.pict_type; +------------+--------------+-----------+-----------+ | file_id | type_comment | pict_type | pict_size | +------------+--------------+-----------+-----------+ | 123555.jpg | 区分1 | 1 | 2048 | | 998866.jpg | 区分2 | 2 | 2048 | | 96680.jpg | 区分3 | 3 | 4096 | +------------+--------------+-----------+-----------+ 3 rows in set (0.00 sec) *** 内部結合 [WHERE 演算子] [#l46f567b] ** 外部結合 [#kdb2efe1] *** 左外部結合 [LEFT JOIN 演算子] [#dc4c172c] *** 右外部結合 [RIGHT JOIN 演算子] [#u6fb885a] ** 和結合:ユニオン(縦方向の結合) [#o12aa174] &heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;
テキスト整形のルールを表示する