Oracle SQL-その他の演算子


その他の演算子
1)IN演算子
複数のクエリーでナビゲートする2つ以上の式(アイテム)を指定します.
依存OR演算子に変換可能
(フォーマットを使用)
列名IN(式1,式2,...)
「column name」に格納されている値が()で説明されている式と一致する場合、条件全体が本当に
2)SOME、ANY演算子
主機能はIN演算子と同じ
(フォーマットを使用)
列名関係演算子ANY|SOME(式1,式2,...)
主IN演算子は同一性(=ANY,=SOME)のみを判断する
内部ANYとSOMEでサイズを比較できます
3)ALL演算子
複数のクエリーでナビゲートする2つ以上の式(アイテム)を指定します.
すべての式の計算結果が真である場合、WHEREセクションは真の演算子になります(あまり使用されません).
依存AND演算子に変換可能
(フォーマットを使用)
カラム名ALL(式1、式2、...)
4)EXISTS演算子
依存クエリーは後に表示する必要があります
(フォーマットを使用)
WHERE EXISTS(サブクエリ)
5)BETWEEN演算子
条件を設定する理由の範囲を指定します.
所定の期間内にコンテンツを照会する際によく使用されます
(フォーマットを使用)
カラム名BETWEEN値1 AND値2
数値列と文字列で構成
[値1](Value 1)から[値2](Value 2)までの値は、[真](True)を返します.
6)LIKE演算子
プライマリ文字列用
プライマリ・モードの比較に使用する演算子
メインLIKEを使用すると効率が低下します
在宅勤務は簡単だが負担できない
プライマリ・ワイルドカードとして「%」と「%」を使用します(モード文字列)
要因「%」:「%」の後に表示されるすべての文字列に対応
例)
海苔%:海苔で始まるすべての文字列に対応
「%kim」:「kim」で終わるすべての文字列に対応
'%kim%':単語に「kim」が存在するすべての文字列に対応
「:」を使用する場所でアルファベットに対応
例)
「金」:「金」で始まり、2つの字で構成され、2番目の字はいずれの字にも関係ありません.
「金」:「金」で終わる2文字の文字列に対応
「金」:「金」
Q.従業員表で部門コードが20,60,80の従業員を検索する.Aliasは従業員番号、従業員名、部門コード、報酬を提供します.
IN演算子)
(IN演算子が使用されていない場合)
   SELECT EMPLOYEE_ID AS 사원번호,
          EMP_NAME AS 사원명,
          DEPARTMENT_ID AS 부서코드,
          SALARY AS 급여
     FROM EMPLOYEES
    WHERE DEPARTMENT_ID=20 OR DEPARTMENT_ID=60 OR DEPARTMENT_ID=80
    ORDER BY DEPARTMENT_ID ASC
**ASC昇順/DESC降順
(IN演算子を使用する場合)
    SELECT EMPLOYEE_ID AS 사원번호,
           EMP_NAME AS 사원명,
           DEPARTMENT_ID AS 부서코드,
           SALARY AS 급여
      FROM EMPLOYEES
     WHERE DEPARTMENT_ID IN(20,60,80)
     ORDER BY 3;
ANY演算子)
    SELECT EMPLOYEE_ID AS 사원번호,
           EMP_NAME AS 사원명,
           DEPARTMENT_ID AS 부서코드,
           SALARY AS 급여
      FROM EMPLOYEES
     WHERE DEPARTMENT_ID AND(20, 60, 80)
     ORDER BY 3;
SOME演算子)
    SELECT EMPLOYEE_ID AS 사원번호,
           EMP_NAME AS 사원명,
           DEPARTMENT_ID AS 부서코드,
           SALARY AS 급여
      FROM EMPLOYEES
     WHERE DEPARTMENT_ID SOME(20, 60, 80)
     ORDER BY 3;
Q.会員表で職業が公務員の会員が持っているポイントを調べると、より多くのポイントを持っている会員よりも多くなります.
Alias会員番号、会員名、職業、ポイント(職業は公務員の会員のポイント)
(ここでサブクエリを突然使用🤷‍♂️)
サブクエリを実行すると、メインクエリが実行されます.
/*먼저 서브쿼리 안에 들어갈 내용을 작성*/
    SELECT MEM_NAME, MEM_MILIEAGE
      FROM MEMBER
     WHERE MEM_JOB = '공무원'
     ORDER BY MEM_MILEAGE DESC;
     
/*메인 쿼리 작성 1)IN 연산자*/
    SELECT MEM_ID AS 회원번호,
           MEM_NAME AS 회원명,
           MEM_JOB AS 직업,
           MEM_MILEAGE AS 마일리지
      FROM MEMBER
     WHERE MEM_MILEAGE IN (SELECT MEM_MILEAGE
                             FROM MEMBER
                            WHERE MEM_JOB = '공무원') --IN은 ( )와 같은 값을 가지면 참
                            
/*메인 쿼리 작성 2)ANY 연산자*/
    SELECT MEM_ID AS 회원번호,
           MEM_NAME AS 회원명,
           MEM_JOB AS 직업,
           MEM_MILEAGE AS 마일리지
      FROM MEMBER
     WHERE MEM_MILIEAGE > ANY (SELECT MEM_MILEAGE
                                 FROM MEMBER
                                WHERE MEM_JOB = '공무원') --ANY는 4가지 중 하나라도 만족하면 참    
Q.部署番号30,50,80以外の社員を社員表に問い合わせる.
Alias従業員番号、従業員名、部門番号、入社日
    SELECT EMPLOYEE_ID AS 사원번호,
           EMP_NAME AS 사원명,
           DEPARTMENT_ID AS 부서번호,
           HIRE_DATE AS 입사일
      FROM EMPLOYEES
     WHERE NOT DEPARTMENT_ID = ANY(30, 50, 80)
   --WHERE DEPARTMENT_ID NOT IN(30, 50, 80)   --둘 중 어느 것을 사용해도 상관없음
     ORDER BY DEPARTMENT_ID;
Q.メンバーズシートで女性会員、ポイント3000以上の会員情報を検索します.
Alias会員番号、会員名、身分証明書番号、職業、ポイント
   SELECT MEM_ID AS 회원번호,
          MEM_NAME AS 회원명,
          MEM_REGNO1|| '-' || MEM_REGNO2 AS 주민번호,
          MEM_JOB AS 직업,
          MEM_MILEAGE AS 마일리지
     FROM MEMBER
    WHERE SUBSTR(MEM_REGNO2,1,1) IN (2,4)    --SUBSTR : 문자열 추출
      AND MEM_MILEAGE >= 3000;
Q.商品表の分類コードは「P 102」で、販売価格は
10万元以上の商品を調べる.
Alias商品コード、商品名、分類コード、販売価格
    SELECT PROD_ID AS 상품코드,
           PROD_NAME AS 상품명,
           PROD_LGU AS 분류코드,
           PROD_PRICE AS 판매가격
      FROM PROD
     WHERE PROD_LGU = 'P102'
       AND PROD_PRICE>=100000;
      
Q.カートシートで2005年7月1日~7月15日の販売情報を調べる.
Aliasカート番号、会員番号、数量
購入数量から出力(ORDER BY使用)
    SELECT CART_NO AS 장바구니번호,
           CART_MEMBER AS 회원번호,
           CART_QTY AS 수량
      FROM CART
     WHERE SUBSTR(CART_NO,1,8) > '20050701' AND SUBSTR(CART_NO,1,8)<'20050715'
     ORDER BY 3 DESC;