SQL SELECT基礎(2) スカラ値いろいろ

  • 0
    Like
  • 0
    Comment

    この記事は「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) その場で表を作る