データを抽出するときの select について考えてみます。
テーブルの列と行の再確認です。
縦が列で横が行です。
列には列名がついていますが行には行番号はついていません。
id というのはデータの一部で行番号ではありません。
列を取り出すという表現をします。
この意味がよくわかりませんでした。
この表の場合、idが102でヒットしたとき pw列はtokugawa102でname列は徳川家康でsdrs列は岡崎ということになります。
列を取り出すということは、該当する行のその列の値を取り出すということでした。
データは配列になっていて、配列の内容は行ということです。
select文は二通りあるようです。
1)select * from customer
2)select * from customer where id=5
1)の*は縦列のデータはすべてということです。
ここを name, address とするとcustomerテーブルのname列とaddress列の値だけをとりこみます。
select 列名 from テーブル という書式になっています。
2)のselect * from customer where id=5は上と同じですが、whereでid列の指定しています。
idが5の行のすべての列の値を配列にするということです。
idでなくここはnameなど、どの列の指定もできます。
select name from customer where id=5とすると、id列が5の行のname列の値をとりこみます。
私の作ったユーザーテーブルでテストしてみます。
下のようなselect文を書いています。
*アスタリスクですべてのデータを指定しています。
このようにすべてのデータが表示されます。
すべてのデータというのは、どの行もすべての列名の値を取得しているということです。
一番上のnameなどの列名はあとから書き加えたものです。
配列の一行目は
[
[ id列の一行目の値] [ name列の一行目の値 ] [ address列の一行目の値] [ mail列の一行目の値][ password列の一行目の値]
]
となっています。
こんどは内容を変えて抽出してみます。
抽出する列をnameとaddressにしました。
結果は下のような表示になりました。
名前と住所だけになっています。
次はwhereをいれてみます。
id列の値が3の行のname列の値とmail列の値を表示します。
id列が3の行のname列の値とmail列の値をとりこんでいます。
このようにid列が3の行のname列の名前とmail列のメールが表示されました。
idが3と、一行の指定なので一行しか表示されません。
長くなりましたが、データは配列になっている。
配列は行をあらわしている。
行は列の値を持っている。
ということでした。