menu


2016年4月1日金曜日

MySQL基本的な書き方


create table
テーブルを作る
create table テーブル名(列名 形,列名 形)


SELECT
指定したテーブルのデータを検索、取得します。
*(アスタリスク)で指定した場合、全てのフィールドのデータを取得します。
・全てのフィールドの値を取得する場合
SELECT * FROM テーブル WHERE 条件式 AND 条件式;
・取得するフィールドを指定する場合
SELECT フィールド1, フィールド2, フィールド3 FROM テーブル WHERE 条件式 AND 条件式;

INSERT
指定したテーブルにデータを追加します。
INSERT INTO テーブル (フィールド1, フィールド2, フィールド3) VALUES (フィールド1の値, フィールド2の値, フィールド3の値);

UPDATE
条件式で一致したデータを更新します。
UPDATE テーブル SET フィールド = 値, フィールド = 値 WHERE 条件式 AND 条件式;

DELETE
条件式で一致したデータを削除します。
DELETE FROM テーブル WHERE 条件式 AND 条件式;

データ型

データ型とは、フィールドにどのようなデータを格納するのかを示すものです。カラム型、フィールド型とも呼ばれます。
フィールドにデータ型を指定することで、データの格納や管理が効率的に行えるようになります。

数値型

整数や少数、浮動小数点数を格納するときに指定する型です。
数値型は、商品の価格や数量、整理番号などを管理するフィールドに用います。
型名値の範囲UNSIGNEDを付与した場合の範囲
TINYINT-128~+1270~+255
SMALLINT-32768~+327670~+65535
MEDIUMINT-8388608~+83886070~+16777215
INT-2147483648~+21474836470~+4294967295
BIGINT-9223372036854775808~+92233720368547758070~+18446744073709551615
FLOAT(M.D)-3.402823466E+38 ~ -1.175494351E-38,
0,
1.175494351E-38 ~ 3.402823466E+38
負数は使用不可
DOUBLE(M.D)-1.7976931348623157E+308 ~ -2.2250738585072014E-308,
0,
2.2250738585072014E-308 ~ 1.7976931348623157E+308
負数は使用不可
DECIMAL(M.D)MとDで変化するなし(利用不可)
※「UNSIGNED」はデータ型に対して付与するもので、負の値の挿入を許可しない場合に用います。
※Mは表示幅、DはDecimalという意味で小数点以下の桁数を表します。マイナス記号も一文字としてカウントされます。

DECIMALの例

値の範囲
DECIMAL(4,1)-999.9 ~ +9999.9
DECIMAL(5,1)-9999.9 ~ +99999.9
DECIMAL(6,1)-99999.9 ~ +999999.9
DECIMAL(6,2)-9999.99 ~ +99999.99
DECIMAL(6,3)-999.999 ~ +9999.999

使い分け

整数のみしか格納しない場合は、TINYINT()、INT()、BIGINT()を使用します。
どれを使用するかは、格納するデータの大きさで決めます。

TINYINTについて

TINYINT()は、UNSINGEDを指定することで0~255というRGBカラーコードやIPアドレスに使用される範囲になりますので、これらのデータを格納するときはTINYINT()を指定するのがよいです。

注意

金額を格納するフィールドに整数のみしか格納できないINT()などの型を指定するときは注意が必要です。
日本円は一般的に小数点以下を使用しないので、INT()やBIGINT()を指定しがちですが、為替相場などでは「銭」の単位が使用されるからです。このような場合は浮動小数が格納できるFLOAT()、DOUBLE()、DECIMAL()などの型を指定します。

文字型

固定長の文字列の他、可変長の文字列、選択式の文字列、バイナリデータなどを格納できます。
一番多く使用されるのは、CHARとVARCHARです。
型名値の範囲(バイト)挿入に必要なサイズ
CHAR(M)255Mバイト
VARCHAR(M)255X+1バイト
TINYBLOB255X+1バイト
BLOB65535X+2バイト
MEDIUMBLOB16777215X+3バイト
LONGBLOB4294967295X+4バイト
TINYTEXT255X+1バイト
TEXT65535X+2バイト
MEDIUMTEXT16777215X+3バイト
LONGTEXT4294967295X+4バイト
ENUM("選択肢1","選択肢2",・・・)65535 選択肢1~2バイト
SET("選択肢1","選択肢2",・・・)64選択肢1/2/4/8バイト

使い分け

基本的には、VARCHAR型もしくはTEXT型を文字列の長さによって使い分ければよいと思います。

CHAR型とVARCHAR型の違い

CHAR型の場合、CHAR(10)とすると、それに「ABC」という文字列を挿入しても消費容量は10バイトとなります。
一方、VARCHAR型の場合、VARCHAR(10)とすると、それに「ABC」という文字列を挿入すると消費容量は3バイト(正確には4バイト)となります。
なお、MySQLでは、ひとつのテーブルにCHAR型とVARCHAR型を混同して使うことはできません。

日付・時刻型

日付、時刻を格納するときに利用するデータ型です。
格納するデータに適したものを以下の5つの型から選択します。
型名フォーマット値の範囲
DATEYYYY-MM-DD1000-01-01 ~ 9999-12-31
TIMEHH:MM:SS-838:59:59 ~ 838:59:59
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 ~ 2037-12-31 23:59:59
YEARYYYY1901 ~ 2155、そして 0000 (4桁の場合)
70  ~ 69 (2桁の場合、70は1970を表し69は2069を表す)
※デフォルトは4桁


0 件のコメント:

コメントを投稿