この記事は「SQL SELECT基礎」の第2回目です。
SQL SELECT基礎 目次
←前の記事はSQL SELECT基礎(1) データと表
→次の記事はSQL SELECT基礎(3) その場で表を作る
※以下がわかっていたらこの章は飛ばしてOK
- SELECT文で「Hello, world」と出力して下さい。
- SELECT文中にはダブルクォーテーションで囲まれている単語と、囲まれていない単語が登場します。
両者は何が違うのでしょう?説明して下さい。
スカラ値いろいろ
前回の記事で、表の枠の中にはスカラが入っていると書きました。
具体例を書いていきます。
文字列
スカラの代表例は文字列です。
プログラミング言語を学ぶとき、最初にHello, world!
を出力する、というお約束があります。
SELECT文で書くならこんな感じです。
SELECT "Hello, world!"
こんな風に、SQL文中で文字列を表現する場合は「"」ダブルクォーテーションか、「'」シングルクォーテーションで囲みます。文字列本体に「"」が登場する場合は「'」で囲うと読みやすくなりますね。
SELECT
というキーワードはダブルクォーテーションでくくってないことに気をつけて下さい。これは「予約語」と呼ばれる特殊なキーワードで、SELECT
は「これからデータベースに問い合わせますよ〜」という合図になります。
整数
データベースに数字を保存することは多いですね。もちろん数字も扱うことができます。
SELECT 123
マイナスも書けます。
SELECT -123
小数も書けます。
SELECT 1.08
その場で四則演算も書けますよ!計算された結果が得られます。
計算の優先順位を示すのにカッコを使うことができます。
SELECT (100 + 250) * 1.08
真偽値
各種プログラミング言語だと、真偽値(true/false)が用意されていることがあります。
MySQLの場合、true/false
というキーワードは用意されていますが、0はfalseとみなされ、0以外はtrueとみなされます。
今の時点ではよくわからないと思うので、WHERE句の回で詳しく解説します。
日付・時刻
日時系はデータベースによって方言が激しいジャンルです。
MySQLでサーバーの現在時刻を調べるには
SELECT NOW()
もしくは
SELECT CURRENT_TIMESTAMP
とすればよいですが、まあ、マニュアルを読みながら試してみるとよいです。筆者もよく覚えていません。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.7 日付および時間関数
他にも記法を調べたい場合は、公式マニュアルを読んでみましょう。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 11 データ型
関数
ところで、先程しれっとNOW()
というワードが出てきました。こういう後ろにカッコを付けて書くものは関数と言って、MySQLに予め用意されている機能の一つです。実行すると何か特別な値を返してくれたり、値を加工してくれたりします。
例えばこんなのがあります。
-
CONCAT(text1, text2, text3, ...)
... カッコの中に書いた複数の文字列を連結し、一つの文字列にして返します -
NOW()
... 現在時刻を返します -
FLOOR(108.012)
... 小数点を切り捨て、この場合だと108
を返します。
非常にたくさんあるので、調べながら使うと良いです。追々、よく使うものだけ覚えていきましょう。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 12 関数と演算子
補足
- この記事はFROM句を省略できるというMySQLの方言を使って記載しています。OracleやDB2だと省略できないので、ちょっと記法が変わります。
この記事は「SQL SELECT基礎」の第2回目です。
SQL SELECT基礎 目次
←前の記事はSQL SELECT基礎(1) データと表
→次の記事はSQL SELECT基礎(3) その場で表を作る