SQLは大学入試より簡単?
SQLはプログラム言語?
プログラム言語がもし英語とおんなじだとしたらよ。英語とおんなじように覚えればいいんだよね?
つまり、this is a pencil.みたいにだよ、文章書いて覚える。まずはひたすらに単純なことを繰り替えし書くのがいいような気がしてきた。
そして、大学入試でした苦労はそのまま生きるんだよね。メソッドとしては。
なんかちょっとだけやる気でてきたわ。
言語って言っても英語とは違って、誰かと会話するためにある言葉じゃないから、基本は命令文。コンピュータに一方的に話しかけるだけ。なんだか寂しい。会話してくれたらいいのに。プログラマーって孤独でさみしい仕事だね。
たとえば教室の中から「なんちゃん」と言う人をを呼び出したいときに、
select なんちゃん from 五年二組
ってやりたくなるけど、これだともうなんちゃんって言う答えがわかってるから意味ないんだね。
じゃあ、
| 情報 | なんちゃん | えいみ | あり| まほ | ←column
みたいなクラスがあって
- 身長
- 体重
- 住所
- メアド
- LINEID ← row
(クラス名簿1)
みたいな情報が記録されているクラス名簿テーブルがあったとして、なんちゃんの情報を引き出したい場合には、
select なんちゃん(列) from クラス名簿1(テーブル名)
って感じなるんですかね。
でも、大概は、
| 氏名| 身長 | 体重 | 住所 | メアド | LINEID | ←column
みたいな列情報があって、
- なんちゃん
- えいみ
- あり
- まほ ← row
(クラス名簿2)
っていうならびで整理されているんだよねきっと?
なぜなら、横に伸びていくのは個体ではなくてどちらかというと属性っぽくて、縦に伸びていくのがデータなんだというイメージあるから。
たとえば世田谷区に住んでいる人だけ抜き出したいってことになったら、横に人が並んでると先に人選ばないといけなくない?
select * from クラス名簿1 where 住所 like %世田谷区%
そんなことないか。これでいいのか。いやだめだ。まちがってる!
```
RDBの大前提
- テーブルは、1つの行(row)が1件のデータになっていて、列(column)はデータの要素になる
```
というからして、テーブルとは「列の集合体」ということなんだ。
select 命令文というのは、つまり「列を指定して、行を抽出する命令文」という言葉なんですね。それ以外の意味はない。
- select 知りたい属性(列) from テーボー^ ^ 全員分
列が世界のすべてであるRDBの世界では、そんな自由な言語はいらないわけ。
行を抽出することが人生の目的なの。
ただ行を抽出するのが目的なら、とにかく住所とかLINEIDとかを全員分知りたいっていう全方位の出会い系アプリwwwなのね。チャラ男。
あ、それもちがう。
どうもwhere句っていうのがあるみたい。
```
where っていうのは、
- 対象行の絞り込みに用いる
```
って書いてあるから、なんちゃんだけのLINEID情報を知りたければ、
select LINEID from クラス名簿2 where 氏名 = なんちゃん
ってかけば、みごとLINEIDが交換できますね。
(どんだけなんちゃん好きなんだよwww)