この記事は「SQL SELECT基礎」の第2回目です。
SQL SELECT基礎 目次
←前の記事はSQL SELECT基礎(1) データと表
→次の記事はSQL SELECT基礎(3) その場で表を作る

※以下がわかっていたらこの章は飛ばしてOK

  1. SELECT文で「Hello, world」と出力して下さい。
  2. SELECT文中にはダブルクォーテーションで囲まれている単語と、囲まれていない単語が登場します。
    両者は何が違うのでしょう?説明して下さい。

スカラ値いろいろ

前回の記事で、表の枠の中にはスカラが入っていると書きました。
具体例を書いていきます。

文字列

スカラの代表例は文字列です。
プログラミング言語を学ぶとき、最初にHello, world!を出力する、というお約束があります。
SELECT文で書くならこんな感じです。

SELECT "Hello, world!"

各自の環境で実行してみて下さい。ちゃんと返ってくるはず。
image.png

こんな風に、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) その場で表を作る

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.