- 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);
[Oracle DB 입문 09] SQL 함수 (0) | 2021.03.08 |
---|---|
[Oracle DB 입문 08] SQL 예제 (0) | 2021.03.05 |
[Oracle DB 입문 06] SQL (0) | 2021.02.26 |
[Oracle DB 입문 05] - 관계형 데이터모델 개념 (0) | 2021.02.25 |
[Oracle DB 입문 04] - 엔티티 및 속성과 관계 (0) | 2021.02.19 |