メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

【MySQL】select構文

PPC_NCsenbannopaneru

phpmyadminとかworkbenchとか
操作を簡単にしてくれるツールは割りとありますが、
コード書くときにはクエリをある程度手書きできた方がラクだと思います。
なので割りと簡単なmysqlのクエリの例を書いていきたいと思います。

基本的な事

Mysqlはデータをテーブル状にして返してきます。
Excelの表を思い出して貰えると分かりやすいかも知れません。

1行目の列の値の事を、カラムと呼んだり、項目と呼んだりします。
これはその行のタイトルを意味する場合が多いです。
2行目以降の中にある値の事をフィールドと呼んだり、値と呼んだりします。

で、これらが合わさったものテーブルと呼びます。

Aテーブル
A項目|B項目|C項目
A値 |B値 |C値
A値 |B値 |C値

テーブルのイメージはそんな感じです。

Mysqlへのログイン

Mysqlへのログイン方法

</p>
<p>mysql -u user -p</p>
<p>

-uと-pの間にユーザー名を入れます。
-pの後にDB名を入れると、DBを選択した状態で
mysqlにログインできます。

DBを選択する

DBを選択せずにDBにログインした場、DBを選択した方が
クエリ書くたびにDB名まで引っ付けて書かなくて良いのでラクです。
だからDBを選択しましょう。

</p>
<p>use database;<br />
//useの後に半角スペースを空けてデータベース名を入力します。</p>
<p>

DB名が分からない場合

</p>
<p>show databases;</p>
<p>

こう書けば、DBの名前の一覧が出てくるので、
すきなの見つけてuseしてください。
大文字でも小文字でも良いです。僕の環境では。
無理だったら大文字で書いてみてください。

SELECT構文

DBはテーブル状にしてデータを返してきます。

Aテーブル
A項目|B項目|C項目
A値 |B値 |C値
A値 |B値 |C値

こんな感じに返してきます。
で、これをどういう風に返してくれって命令するのは操作する人です。
操作する人がする命令をクエリといいます。

とりあえず、SELECTで項目名を指定します。

</p>
<p>select 1+1;</p>
<p>

って打つと多分こうなります。

1+1|
2

項目を複数つくりたいならこうします。

</p>
<p>select 1+1,2+2,3+3;</p>
<p>

結果は実行してみて下さい。

名前の変更

これを試しにPHPでとってくると

<br />
[1+1] =&gt; [2]<br />
[2+2] =&gt; [4]<br />
[3+3] =&gt; [6]<br />

みたいなデータで来ると思います。
とりあえず、名前がこれだと意味不明だよ!名前の変更がしたいよ!
って事が言いたいので、さっきのクエリを実際PHPでは取得してないです。

すんません!

なのでとりあえず、1+1じゃなくて、clacABCとかって名前にします。

</p>
<p>select 1+1 as CalcA, 2+2 as CalcB, 3+3 as CalcC;</p>
<p>

こういう風に名前を変えると分かりやすくなりますね。
こうやって名前を分かりやすく変えるのを抽象化って言うみたいですよ。

CalcA|CalcB|CalcC
2 |4 |6

こんな感じになると思います。

カラムを連結したい場合

エクセルのセルの結合は、DBでは連結って言います。
結合っていうと、またちょっと違う意味になりますが、
今日はかけません。ごめんなさい。

さっきのselectで書いた奴を連結したい場合は
こういう風に書きます。

</p>
<p>select concat( 1 +1, 2 +2, 3 +3 ) as connect</p>
<p>

ただ、これはカラムを結合するだけなので、2+4+6の計算結果を表示してくれません。
よって、このクエリの結果は

connect |
246 |

という結果になります。

関連記事

  1. 2013.04.02

    LEFT JOIN Mysql

コメントをお待ちしております