상세 컨텐츠

본문 제목

[Oracle DB 입문 07] SQL 예제

DataBase

by 코딩순이 2021. 3. 3. 20:19

본문

- ASC : ASCENDING (오름차순) ↔ DESC : DESCENDING (내림차순)

 

1. 회원테이블에서 회원ID, 회원명, 생일, 마일리지 검색하시오.

SELECT MEM_ID   AS 회원ID
, MEM_NAME      AS 회원명
, MEM_BIR       AS 생일
, MEM_MILEAGE   AS 마일리지
FROM MEMBER
ORDER BY MEM_NAME DESC;


-- ALIAS를 통한 정렬
SELECT MEM_ID   AS 회원ID
, MEM_NAME      AS 회원명
, MEM_BIR       AS 생일
, MEM_MILEAGE   AS 마일리지
FROM MEMBER
ORDER BY 회원ID;	-- ORDER BY에서는 ALIAS 사용가능


SELECT MEM_ID   AS 회원ID
, MEM_NAME      AS 회원명
, MEM_BIR       AS 생일
, MEM_MILEAGE   AS 마일리지
FROM MEMBER
ORDER BY MEM_MILEAGE,1 DESC;

-- 각각 정렬 가능
-- ORDER BY MEM_MILEAGE ASC, 1 ASC;
-- ORDER BY MEM_MILEAGE ASC, 1 DESC;
-- ORDER BY MEM_MILEAGE DESC, 1 ASC;
-- ORDER BY MEM_MILEAGE DESC, 1 DESC;

 

2. 회원ID, 상품코드 둘 다 중복되는 것을 제거함.

SELECT DISTINCT CART_MEMBER AS 회원ID
              , CART_PROD 	AS 상품코드
FROM CART
ORDER BY 1,2;

3. 상품테이블의 거래처 코드를 중복되지 않게 검색하시오.

-- (Alias는 거래처)
-- 거래처코드 : PROD_BUYER

SELECT DISTINCT PROD_BUYER AS 거래처
FROM PROD;

4. 회원테이블(MEMBER)에서 MEM_ID(회원ID), MEM_JOB(직업),MEM_LIKE(취미)를 검색하시오

- 직업으로 오름차순, 취미로 내림차순, 회원ID로 오름차순 정렬

SELECT MEM_ID   AS 회원ID
     , MEM_JOB  AS 직업
     , MEM_LIKE AS 취미
FROM MEMBER
ORDER BY 직업, 취미 DESC, 회원ID;

5. 상품 중 판매가가 170,000원 이상인 상품을 검색하시오.

SELECT PROD_NAME AS 상품
    , PROD_SALE AS 판매가
FROM PROD
WHERE PROD_SALE >= 170000
ORDER BY PROD_SALE;

6. 상품 중 매입가(PROD_COST)가 200,000원 이하인 상품을 검색하시오.

- (ALIAS는 상품코드(PROD_ID), 상품명(PROD_NAME), 매입가(PROD_COST))

SELECT PROD_ID  AS 상품코드
    , PROD_NAME AS 상품명
    , PROD_COST AS 매입가
FROM PROD
WHERE PROD_COST <= 200000
ORDER BY PROD_COST;

7. 회원 중 76년도 1월 1일 이후에 태어난 회원을 검색하시오.

- 단 주민등록번호 앞자리로 비교

- (ALIAS는 회원ID, 회원명, 주민등록번호 앞자리)

SELECT MEM_ID       AS 회원ID
    , MEM_NAME      AS 회원명
    , MEM_REGNO1    AS 주민등록번호앞자리
FROM MEMBER
WHERE MEM_REGNO1 >= '760101'
ORDER BY MEM_REGNO1;

-- 문자와 숫자를 연산할 시
-- 자동형 변환 : 문자형 > 숫자형 

8. 상품 중 상품분류(PROD_LGU)가 P201(여성 캐쥬얼)이거나, 판매가(PROD_SALE)가 170,000원인 상품을 검색하시오.

- ALIAS는 상품, 상품분류, 판매가

SELECT PROD_ID  AS 상품코드
    , PROD_LGU  AS 상품분류
    , PROD_SALE AS 판매가
FROM PROD
WHERE (PROD_LGU = 'P201') OR (PROD_SALE = 170000);

9. 상품 중 상품분류가 P201(여성 캐쥬얼)도 아니고 판매가가 170,000원도 아닌 상품을 검색하시오.

SELECT PROD_ID  AS 상품코드
    , PROD_LGU  AS 상품분류
    , PROD_SALE AS 판매가
FROM PROD
WHERE (PROD_LGU != 'P201') AND (PROD_SALE != 170000);

10. 회원(MEMBER) 중 직업(MEM_JOB)이 공무원이며, 마일리지(MEM_MILEAGE)가 1500이상인 리스트를 검색하시오.

SELECT MEM_ID   AS 회원아이디
    , MEM_NAME      AS 회원명
    , MEM_JOB       AS 직업
    , MEM_MILEAGE   AS 마일리지
FROM MEMBER
WHERE MEM_JOB = '공무원' AND MEM_MILEAGE >= 1500
ORDER BY MEM_JOB,MEM_MILEAGE DESC;

11. 상품 중 판매가가 150,000원 또는 170,000원 또는 330,000원인 상품 조회

SELECT PROD_ID AS 상품코드
    , PROD_NAME AS 상품명
    , PROD_SALE AS 판매가
FROM PROD
WHERE PROD_SALE IN (150000,170000,330000)
ORDER BY PROD_SALE DESC;

12. 회원테이블(MEMBER)에서 회원ID(MEM_ID)가 c001,f001,w001인 회원만 검색하시오.

- ALIAS는 회원(MEM_ID), 회원명(MEM_NAME)

SELECT MEM_ID 	AS 회원ID
	, MEM_NAME 	AS 회원명
FROM MEMBER
WHERE MEM_ID IN ('c001','f001','w001');

13. 상품 분류 테이블에서 현재 상품테이블에 존재하는 분류만 검색하시오.

-- 서브쿼리 : 쿼리 안에 사용된 또 다른 SELECT문

SELECT LPROD_GU     AS 분류코드
    , LPROD_NM      AS 분류명
FROM LPROD
WHERE LPROD_GU IN(SELECT DISTINCT PROD_LGU FROM PROD);

14. 거래처 테이블(BUYER)에서 현재 상품테이블(PROD)에 존재하는 거래처(PROD_BUYER)만 검색하시오.

- ALIAS : 거래처ID(BUYER_ID), 거래처명(BUYER_NAME)

SELECT BUYER_ID AS 거래처ID
    , BUYER_NAME AS 거래처명
FROM BUYER
WHERE BUYER_ID IN(SELECT DISTINCT PROD_BUYER FROM PROD);

관련글 더보기