연산자

서현서현·2022년 2월 10일
0

DB, SQL

목록 보기
7/27
post-thumbnail

🍪 1. 사칙연산자

  • +, -, *, /

🍪 2. 관계연산자

  • 결과가 참(true), 거짓(false)으로 반환
  • >, >=, <, <=, =, != or <>
  • WHERE절의 조건, HAVING절의 조건, CASE WHEN-THEN의 조건문에 사용

🚨 그동안 만든 테이블을 모두 DROP하고 시작하자!

(EX1)

회원테이블(MEMBER)에서 성별 마일리지 합계를 조회하시오
Alias는 구분, 마일리지 합계이며 구분란에 ‘여성회원’,’남성회원’을 출력

SELECT CASE WHEN SUBSTR (MEM_REGNO2,1,1)='2'THEN
                '여성회원'
            ELSE
                '남성회원'
            END AS 구분,
            SUM(MEM_MILEAGE) AS 마일리지합계
 FROM MEMBER
GROUP BY CASE WHEN SUBSTR (MEM_REGNO2,1,1)='2'THEN
                 '여성회원'
             ELSE
                 '남성회원'
             END;

(EX2)

상품테이블(PROD)에서 판매가가 20만원 이상인 상품을 조회하시오.

Alias는 상품코드,상품명,분류코드,매입가,판매가
SELECT PROD_ID AS 상품코드,
			 PROD_NAME AS 상품명,
			 PROD_LGU AS 분류코드,
		 	 PROD_COST AS 매입가,
			 PROD_PRICE AS 판매가
  FROM PROD
 WHERE PROD_PRICE >= 200000;

(판매가가 모두 20만원 이상이다)

(EX3)

사원테이블에서 부서가 30~70번에 소한 사원정보를 조회하시오

Alias는 사원번호, 사원명, 부서코드, 입사일
SELECT EMPLOYEE_ID AS 사원번호, 
        FIRST_NAME||''||LAST_NAME AS 사원명,
        DEPARTMENT_ID AS 부서코드,
        HIRE_DATE AS 입사일
  FROM HR.EMPLOYEES
// HR이 아닌 다른계정으로 접속해있는 상태일때 이렇게 작성, 이후로는 컬럼명만 기술해도 된다
 WHERE DEPARTMENT_ID>=30 AND DEPARTMENT_ID<=70
 ORDER BY 3; 
// 부서코드 기입 순서가 3번이므로 DEPARTMENT_ID가 3인거나 마찬가지, 기본 ASC이므로 오름차순 정렬
// WHERE절이 FALSE면 SELECT절 실행 안하기때문에 ID가 90인 애들은 안나오는것

🍪 3. 논리연산자

(EX1)

사원테이블에서 50번부서에 속한 사원 중 급여가 6000이상인 사원을 조회

Alias는 사원번호, 이름, 급여
SELECT EMPLOYEE_ID AS 사원번호,
FIRST_NAME||''||LAST_NAME AS 이름,   //EMP_NAME으로 칼럼 바꿔주면 ㅇㅋ
SALARY AS 급여
FROM HR.EMPLOYEES
WHERE DEPARTMENT_ID=50
AND SALARY>=6000;


FIRST_NAME과 LAST_NAME이 나눠져있어서 귀찮아!

사원테이블에 사원명 컬럼(EMP_NAME)을 VARCHAR(80)로 추가하고 FIRST_NAME과 LAST_NAME을 결합하여 사원명으로 입력

ALTER TABLE HR.EMPLOYEES ADD(EMP_NAME VARCHAR2(80));
// NULL대신 이름을 결합하여 추가해넣는것이 목표
UPDATE HR.EMPLOYEES
SET EMP_NAME=FIRST_NAME||''||LAST_NAME;

(EX2)

회원테이블에서 ‘충남’에 거주하거나 직업이 ‘주부’인 회원을 조회하시오. Alias는 회원번호,회원명,주소.직업,마일리지

SELECT MEM_ID AS 회원번호,
MEM_NAME AS 회원명,
MEM_ADD1||''||MEM_ADD2 AS 주소,
MEM_JOB AS 직업,
MEM_MILEAGE AS 마일리지
FROM MEMBER
WHERE MEM_ADD1 LIKE '충남%'
OR MEM_JOB='주부';

0개의 댓글