[SQL]プログラマ-String、Date


ルーシーとエラを探して


動物保護所の動物では、Lucy、Ella、Pickle、Rogan、Sabrina、Mittyという名前の動物のIDと名前、性別、中性化の有無を問い合わせるSQL文を記入してください.
SELECT AI.ANIMAL_ID, AI.NAME, AI.SEX_UPON_INTAKE
FROM ANIMAL_INS AS AI
WHERE AI.NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty")
ORDER BY AI.ANIMAL_ID
IN
WHEREセクションでは、キーワードを使用して、複数の値をOR関係グループ別にリストします.
  • IN演算子は、条件の範囲を指定するために使用されます.この値はカンマ(,)で区切られ、括弧内に囲まれ、そのうちの1つ以上の値が一致する場合、条件を満たす値
  • として評価される.
    IN条件優勢
  • リストに複数の値がある場合、IN演算子はORよりも書きやすく、表示と理解が容易になります.
  • INを使用すると、より簡単に条件順序を管理することができ、演算量
  • を削減することができる.
  • IN演算子はOR演算子より
  • 速い
  • IN演算子の別のSELECT文(サブクエリ?)置いてもいいです.
  • 名前の中のelの動物を探します


    庇護所で亡くなったおばあちゃんが飼っている犬を探しに来た人がいます.この人はおばあちゃんが飼っている犬の名前に「el」があると言った.動物保護所の動物名に入り、クエリ名にELの犬のIDと名前が含まれているSQL文を記入してください.この場合は名前順に結果を調べてください.名前は大文字と小文字を区別しません
    SELECT ANIMAL_INS.ANIMAL_ID,ANIMAL_INS.NAME
    FROM ANIMAL_INS
    WHERE ANIMAL_INS.NAME like "%el%" AND ANIMAL_TYPE = "Dog"
    ORDER BY ANIMAL_INS.NAME
    基本的に大文字と小文字は区別されません.ただし、バイナリ・テーブルの場合は、大文字と小文字を区別して検索できます.
    表のフィールドタイプをバイナリに変更する方法もあります.
    SELECT * FROM table WHERE BINARY(field) LIKE "%test%";
    これも一つの方法だ.

    ニュートラル化するかどうかを決定


    保護所の動物が中性化したかどうか知りたいです.中性化した動物はSEX UPON INTAKE色に「Neuted」または「Spayed」を含む.動物のID、名前、中性化の有無をID順に問い合わせるSQL文を書いてください.中性化なら「O」でなければ「X」
    SELECT ai.ANIMAL_ID, ai.NAME, 
    CASE 
        WHEN ai.SEX_UPON_INTAKE LIKE "%Neutered%" or ai.SEX_UPON_INTAKE LIKE "%Spayed%"
        THEN "O"
        ELSE "X"
    END AS "중성화"
    FROM ANIMAL_INS AS ai
    ORDER BY ANIMAL_ID
    CASE構文は3つの演算子に似ています.WHEN節に条件を入力し、THEN節が真であればELSE節に出力内容を入力する(偽であれば).
    最後にENDで閉じるといいです
    Case文
    書式:case(条件または値)
    値1を選択して値を表示
    値2を選択して値を表示
    else表示値
    end
    EX)
    select case a when '1' then a when '2' then b else c end from table_name
    説明-a値が「1」の場合、aが出力され、「2」の場合、bが出力され、両方がそうでない場合、cが出力される
    SELECT ai.ANIMAL_ID, ai.NAME, 
    IF (ai.SEX_UPON_INTAKE LIKE "%Neutered%" or ai.SEX_UPON_INTAKE LIKE "%Spayed%", "O", "X") AS "중성화"
    FROM ANIMAL_INS AS ai
    ORDER BY ANIMAL_ID
    Ifゲートで解ける.

    IF文


    フォーマット:if(条件文、真値、偽値)
    EX)
    select member_id, if ( isnull(birthday), '-', birthday ) from member
    説明-メンバーテーブルからID(member id)と誕生日を選択し、nullの場合は-を出力するか、誕生日を出力します.

    長期保護動物(2)


    養子縁組した動物の中で、保護期間が最も長い2つの動物のIDと名前を照会するSQL文を記入してください.結果は保護期間が長い順に表示されます.
    SELECT ao.ANIMAL_ID, ao.NAME
    FROM ANIMAL_INS AS ai INNER JOIN ANIMAL_OUTS AS ao ON ai.ANIMAL_ID = ao.ANIMAL_ID
    ORDER BY (ao.DATETIME - ai.DATETIME) DESC
    LIMIT 2

    DATETIMEからDATEへの変換

    SELECT ANIMAL_ID, NAME,  date_format(DATETIME, '%Y-%m-%d')
    FROM ANIMAL_INS
    ORDER BY ANIMAL_ID
    Date format関数を使用してDATETIMEフォーマットを変更できます.

    SQLサンプルサイト


    https://top5dba.tistory.com/1