アットウィキロゴ

DB基礎②

●データベース(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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。