LAMPのお勉強日記 (6)
LAMP環境のお勉強日記
承前
目的
- 自分が何をやったのか記録する
- 自分が何を出来るのか公開する
はじめに
>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) | +------------------------------------------+ | **************************************** | | **************************** | | ******************** | | *********************** | | *********************************** | +------------------------------------------+
今回はここまで
次は関数の続き。