●データベース(DB)の使用について
【①データベーのイメージ】
「データベーススペース」と「テーブル」がある。
・「データベーススペース」= フォルダ
・「テーブル」= エクセルファイル(表)
・「データ」 = 表の中に記載されている内容
と考えるとわかりやすいかも。
※テーブルはデータベーススペースの中に入っている。
※データベーススペースをデータベースという場合あり。一般的にデータベースというと、この場合が多い。
1.データベースを作成
2.テーブルを作成
3.データを挿入
4.データをホームページの表示などに使用。
【②テーブル】
縦軸・横軸からできている表。エクセルと考えるとわかりやすいかも。
エクセルは、
・縦軸=「列」
・横軸=「行」
とよばれているが、
データベースは、
・縦軸=「フィールド」
・横軸=「レコード」または、「カラム」
と呼ぶ。
【③フィールドの型】
フィールドには書く内容にあらかじめルールを決めておかなければならない。
例えば、数字しかかけない、小数点以下は表示しない・・・など。
このルールのことを「フィールドの型」と呼ぶ。
【型の種類】属性・インデックス・ヌル値・種別
- VARCHAR :文字の入力。文字数を指定する必要あり
- INT :数字の入力 ※以下に細かい指定のものあり。
・TINYINT :-128~127まで
・SMALLINT :-32768~32767まで
・BIGINT :兆を超えた桁数が可能
- FLOAT :少数を扱える
- DOUBLE :少数を扱える。FLOATより大きいデータを扱える
- DATE :日付、時間を扱える
- DATETIME :日付、時間を扱える
- BLOB :バイナリーでーたを取り込める(コンピュータ用データ)
【④データベース(DB)の入力について】
2種類の方法あり。
1.PHPMyadminによるGUIでの入力 ⇒ 簡単に使えるが限界がある
2.SQL言語による直接入力 ⇒ GUIではできない高度な操作が可能。
▽SQL言語による直接入力で以下を作成
1.データベースを作成
CREATE DATABASE `データベースを作成`
例;
「lesson」というデータベースを作成
CREATE DATABASE lesson
2.テーブルを作成
CREATE TABLE データベース名 . テーブル名 (フィールド①,フィールド②);
※フィールドの内容は「,」(カンマ)で区切る。
※データベース名とテーブル名の間は「.」(ドット)で区切る
例;
「lesson」データベースに「staff」というテーブルを作成せよ。
・フィールド数×5、テーブルコメントは「従業員名簿」
・フィールド名「staff_id」、 種別「int」、 NULL値「×」、インデックス「PRIMARY」、AUTO_INCREMENT(自動採番)「○」
・フィールド名「name」、 種別「varchar(32)」、NULL値「×」、インデックス「×」、 AUTO_INCREMENT(自動採番)「×」
・フィールド名「enter_date」、種別「date」、 NULL値「×」、インデックス「×」、 AUTO_INCREMENT(自動採番)「×」
・フィールド名「salary」、 種別「int」、 NULL値「×」、インデックス「×」、 AUTO_INCREMENT(自動採番)「×」
・フィールド名「section_id」、種別「int」、 NULL値「×」、インデックス「×」、 AUTO_INCREMENT(自動採番)「×」
CREATE TABLE lesson.staff (
staff_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '従業員番号',
name VARCHAR( 32 ) NOT NULL COMMENT '従業員名',
enter_date DATE NOT NULL COMMENT '入社日',
salary INT( 10 ) UNSIGNED NOT NULL COMMENT '月額給与',
section_id INT( 10 ) UNSIGNED NOT NULL COMMENT '部署番号'
) ENGINE = InnoDB COMMENT = '従業員名簿';
3.データを挿入
INSERT INTO データベース名 . テーブル名(フィールド①,フィールド名②) VALUES (数値データ,'文字データ')
※フィールドとデータは「,」(カンマ)で区切る
※文字データは「'」(シングルクォーテーション)でくくる
例:「1991-04-31」という日付データは数値か?
⇒ A.文字データ
例:
「lesson」データベースの「staff」テーブルに以下の内容を入れよ。
<フィールド名> ⇒ <入れるデータ>
・「staff_id」 ⇒ 3
・「name」 ⇒ 田中
・「enter_date」⇒ 1998-05-20
・「salary」 ⇒ 200000
・「section_id」⇒ 5
①まともにすべて入力
INSERT INTO lesson.staff (
staff_id,
name,
enter_date,
salary,
section_id
) VALUES (
'',
'吉田',
'1999-1-15',
'150000',
'5'
);
②フィールドは省略することができる。
※但し、データの順序と内容がフィールドに対応したものでないといけない。
INSERT INTO lesson.staff VALUES (
'4',
'田中',
'1999-1-15',
'160000',
'5'
);
4.データをホームページの表示などに使用。
⇒[[PHP]]などを使用してデータを任意の箇所で使用
【⑤テーブル構造修正:フィールド(カラム・列)の追加】
●単数追加
ALTER TABLE <テーブル名> ADD <カラム名> <型情報>;
※一部を変更するだけでも、変更点以外の最初に定義した内容を記述しなければいけない。(再定義する必要がある)
※AFTER <カラム名>で対象のカラム名の後ろに入れることができる。
例:
ALTER TABLE staff
ADD kana VARCHAR(32) NULL COMMENT '社員名ふりがな' AFTER name;
※「かな」フィールドを作る、nameデータの後ろに挿入したいので「AFTER name」
●複数追加
ALTER TABLE <テーブル名> ADD (<カラム名> <型情報>, <カラム名> <型情報>, ....);
【⑥テーブル構造修正:フィールド(カラム・列)の変更】
●フィールド名の変更
ALTER TABLE <テーブル名> CHANGE <古いカラム名> <新しいカラム名> <型情報>;
********************************
【NULL(ヌル)とAUTO_INCREMENT】
- NULL = 未定義状態、何のデータも含まれない状態。
フィールドをNULL値の入力をしても大丈夫な設定していると、データをNULLで入力することができる。
⇒その場合、phpMyadminのデータ表にはNULLと表示される。
- AUTO_INCREMENT = 自動採番(自動で番号を設定してくれる。)
フィールドの型にAUTO_INCREMENTを設定していると、データを挿入する際に省略(未入力)することができる。
⇒その場合、一番最近入力した番号の次の番号が割り振られる。
※フィールドの型にAUTO_INCREMENTを設定して、データをNULLと入力した場合、
⇒省略(未入力)の場合と同じように、、一番最近入力下番号の次の番号が割り振られる。
********************************
最終更新:2012年02月14日 16:58