「会員登録~実際にSQLでテーブルを作ってみる~」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
今回は既存のデータベースの中に、userというテーブルを作っていきます。~
さて、まずはテーブルのカラムを具体的にイメージしていきます。~
*カラム
簡単なユーザー情報のためのテーブルです。~
まずは、ユーザーIDが必要です。&color(red){ユーザーIDは登録する毎に自動的に数値を付与}していきます。~
次にログインするためのIDとパスワードも必要になります。~
名前とハンドネームも必要になります。~
おまけで、役職と登録日時もユーザーテーブルのカラムとして登録しておきます。~
最後にユーザーの状態(公開、退会、再入会など)も重要になるのでstateというカラムを用意します。~
*SQL文
CREATE table user (
user_id int(11) NOT NULL auto_increment,
login_id varchar(128) NOT NULL,
passwd varchar(128) NOT NULL,
name varchar(32) NOT NULL,
hn varchar(32) NOT NULL,
position int(11) NOT NULL,
register_date datetime NOT NULL default '0000-00-00 00:00:00',
state int(11) NOT NULL,
PRIMARY KEY (user_id),
INDEX login_id (login_id),
INDEX state (state)
)
*実行結果
#image(width=600,db_sample.png)
*解説
テーブル名、カラム名などは``で囲まれている場合が非常に多いですが、これは&color(red){もしも予約語と被った時にエスケープできるようにする}ためです。~
しかし、予約語を使ってしまうと後々わかりづらくなってしまうため最初から使わない方がよいでしょう。~
NOT NULLは値が空ではない事を表します。~
つまり、何らかの値が入らなければならない部分です。~
~
次にプライマリーキー(主キー)とauto incrementについて。~
PRIMARY KEYを設定した場合、データを追加した時にカラムの値を指定しないと自動的に値が格納されます。~
自動的に格納された場合は、&color(red){そのカラムに現在格納されている最大の値に1を加えた値}となります。~
以前に割り当てられたことがあるかどうか関係がないので、データの追加と削除を繰り返していると以前に格納されたことがある値が再度カラムに格納されることがあります。 ~
PRIMARY KEYにAUTOINCREMENTを合わせて指定すると自動的に設定される値のルールが、&color(red){「対象のカラムに今までに格納されたことのある最大の値に1が加えられた値が格納される」}ように変わります。 ~
データ型に関してはこのページがとても参考になります。~
http://php1st.com/470/
~
テキストなどが必要で文字数が長い場合は、text型を使います。~
INDEXは検索を早くするための記述です。~
~
以上
今回は既存のデータベースの中に、userというテーブルを作っていきます。~
さて、まずはテーブルのカラムを具体的にイメージしていきます。~
*カラム
簡単なユーザー情報のためのテーブルです。~
まずは、ユーザーIDが必要です。&color(red){ユーザーIDは登録する毎に自動的に数値を付与}していきます。~
次にログインするためのIDとパスワードも必要になります。~
名前とハンドネームも必要になります。~
おまけで、役職と登録日時もユーザーテーブルのカラムとして登録しておきます。~
最後にユーザーの状態(公開、退会、再入会など)も重要になるのでstateというカラムを用意します。~
*SQL文
CREATE table user (
user_id int(11) NOT NULL auto_increment,
login_id varchar(128) NOT NULL,
passwd varchar(128) NOT NULL,
name varchar(32) NOT NULL,
hn varchar(32) NOT NULL,
position int(11) NOT NULL,
register_date datetime NOT NULL default '0000-00-00 00:00:00',
state int(11) NOT NULL,
PRIMARY KEY (user_id),
INDEX login_id (login_id),
INDEX state (state)
)
*実行結果
#image(width=700,db_sample.png)
*解説
テーブル名、カラム名などは``で囲まれている場合が非常に多いですが、これは&color(red){もしも予約語と被った時にエスケープできるようにする}ためです。~
しかし、予約語を使ってしまうと後々わかりづらくなってしまうため最初から使わない方がよいでしょう。~
NOT NULLは値が空ではない事を表します。~
つまり、何らかの値が入らなければならない部分です。~
~
次にプライマリーキー(主キー)とauto incrementについて。~
PRIMARY KEYを設定した場合、データを追加した時にカラムの値を指定しないと自動的に値が格納されます。~
自動的に格納された場合は、&color(red){そのカラムに現在格納されている最大の値に1を加えた値}となります。~
以前に割り当てられたことがあるかどうか関係がないので、データの追加と削除を繰り返していると以前に格納されたことがある値が再度カラムに格納されることがあります。 ~
PRIMARY KEYにAUTOINCREMENTを合わせて指定すると自動的に設定される値のルールが、&color(red){「対象のカラムに今までに格納されたことのある最大の値に1が加えられた値が格納される」}ように変わります。 ~
データ型に関してはこのページがとても参考になります。~
http://php1st.com/470/
~
テキストなどが必要で文字数が長い場合は、text型を使います。~
INDEXは検索を早くするための記述です。~
~
以上