reponの忘備録

「喉まででかかってる」状態を解消するためのメモ

LAMPのお勉強日記 (6)

LAMP環境のお勉強日記

目的

  • 自分が何をやったのか記録する
  • 自分が何を出来るのか公開する

経過

まず、MySQLの勉強をする(その後、PHPとの連携の勉強に移る予定)。

XAMPPにより、コマンドプロンプトで作業する。

リレーショナルデータベースとは(再掲)



はじめに

MySQLモニタに入る。
コマンドプロンプト

>mysql -u root -p
Enter password:[パスワード]
mysql>

使用するデータベースを指定する

mysql>use db1

今日学んだこと

今日は、条件による抽出をするため、以下のように基本となるテーブルtb1を作る。

mysql>select * from tb1;
+------+------+------+
| bang | uria | tuki |
+------+------+------+
| a103 |  101 |    4 |
| a102 |   54 |    5 |
| a104 |  181 |    4 |
| a101 |  184 |    4 |
| a103 |   17 |    5 |
| a101 |  300 |    5 |
| a102 |  205 |    6 |
| a104 |   93 |    5 |
| a103 |   12 |    6 |
| a107 |   87 |    6 |
+------+------+------+
必要なカラムを入れ替えて表示する

「select [カラム名],…… from [テーブル名];」

ex)
mysql>select uria,bang from tb1;
+------+------+
| uria | bang |
+------+------+
|  101 | a103 |
|   54 | a102 |
|  181 | a104 |
|  184 | a101 |
|   17 | a103 |
|  300 | a101 |
|  205 | a102 |
|   93 | a104 |
|   12 | a103 |
|   87 | a107 |
+------+------+
エイリアスを使う

「select [カラム名] as [エイリアス] from [テーブル名]」

ex)
mysql>select bang as 社員番号,uria as 売上 from tb1;
+----------+------+
| 社員番号 | 売上 |
+----------+------+
| a103     |  101 |
| a102     |   54 |
| a104     |  181 |
| a101     |  184 |
| a103     |   17 |
| a101     |  300 |
| a102     |  205 |
| a104     |   93 |
| a103     |   12 |
| a107     |   87 |
+----------+------+

bang→社員番号 uria→売上 と変換されて出力されました。


計算したり、文字列を処理して表示する

カラムの値で計算して表示
演算記号 演算子
掛ける(×) '*'
割る(÷) /
足す(+) +
引く(−) -


ex)
売上の単価が1万円であるときに、uriaを10000倍して、「売上」のエイリアスを使って表示してみる。

mysql>select uria*10000 as 売上 from tb1;
+---------+
| 売上    |
+---------+
| 1010000 |
|  540000 |
| 1810000 |
| 1840000 |
|  170000 |
| 3000000 |
| 2050000 |
|  930000 |
|  120000 |
|  870000 |
+---------+
関数を使って計算する
関数名 演算子
平均値 agv()
合計 sum()
データの数 count()
ex)
mysql>select avg(uria) from tb1;
+-----------+
| avg(uria) |
+-----------+
|  123.4000 |
+-----------+
mysql>select sum(uria) from tb1;
+-----------+
| sum(uria) |
+-----------+
|      1234 |
+-----------+
mysql>select count(uria) from tb1;
+-------------+
| count(uria) |
+-------------+
|          10 |
+-------------+
各種情報の表示

・円周率

mysql>select pi();
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+


MySQLサーバのバージョンを表示

mysql>select version();
+------------------+
| version()        |
+------------------+
| 5.1.30-community |
+------------------+


・現在使っているデータベースを表示

mysql>select database();
+------------+
| database() |
+------------+
| db1        |
+------------+


・現在のユーザー表示

mysql>select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+


・引数で指定した文字の文字コード(文字セット)を表示

mysql>select charset('この文字');
+---------------------+
| charset('この文字') |
+---------------------+
| sjis                |
+---------------------+
文字列を結合する

テーブルを用意

>select * from tb2;
+------+-----------+------+
| bang | nama      | tosi |
+------+-----------+------+
| a101 | sato      |   40 |
| a102 | takahashi |   28 |
| a103 | nakagawa  |   20 |
| a103 | watanabe  |   23 |
| a103 | nishizawa |   35 |
+------+-----------+------+

・文字列を結合する
「select concat([カラム名],……) from [テーブル名];

ex)
mysql>select concat(bang,nama,'さん') from tb2;
+--------------------------+
| concat(bang,nama,'さん') |
+--------------------------+
| a101satoさん             |
| a102takahashiさん        |
| a103nakagawaさん         |
| a103watanabeさん         |
| a103nishizawaさん        |
+--------------------------+
文字列操作で扱う関数
関数名 演算子
right関数 right([カラム名],文字数)
left関数 left([カラム名],文字数)
substring関数 substring([カラム名],何番目,何文字)
repeat関数 repeat([文字],[カラム(文字列]

repeat関数を用いると、簡易グラフが出来る

ex)
mysql>select repeat('*',tosi) from tb2;
+------------------------------------------+
| repeat('*',tosi)                         |
+------------------------------------------+
| **************************************** |
| ****************************             |
| ********************                     |
| ***********************                  |
| ***********************************      |
+------------------------------------------+

今回はここまで


次は関数の続き。

おしらせ

つながり合うSNS

http://http://survive-sns.jp/

メンバー募集中です!


サーバを新たに立て、一新した「サバイブSNS2.0」に、ぜひご加入ください!