1. SELECT
1-1. 테이블의 특정 컬럼 조회
💡 SELECT 컬럼이름1, 컬럼이름2 (순서 상관 없음) FROM 테이블 이름 ;
;는 쿼리가 끝났다는 뜻
1-2. 중복 제거된 컬럼으로 조회
💡 SELECT DISTICNT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 ;
1-3. 컬럼에 별명을 붙여서 조회 ( 컬럼이름 변경해서 조회)
💡 SELECT 컬럼이름1 (AS) 별명1, 컬럼이름2 (혹은 공백) 별명2 FROM 테이블 이름 ;
1-4. 결과 행 개수를 제한하여 조회
💡 SELECT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 LIMIT 행 개수
▶SQL 예제
# 중복제거해서 region 데이터 불러옴
SELECT distinct region
FROM STOCK_INFO;
# 컬럼 2개안에서 중복제거하고 데이터 가져오기
SELECT distinct region, indcode
FROM STOCK_INFO;
# as(공백)로 컬럼명 변경해서 가져오기 (컬럼 별명 설정)
SELECT region 지역, mkt_capitalization_usd AS "시가총액 USD" # 별명안에 공백넣고 싶으면 "" 사용
FROM STOCK_INFO;
# 데이터 행(ROW) 개수 제한
SELECT *
FROM STOCK_INFO
LIMIT 10;
2. WHERE
💡 SELECT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 WHERE 조건1 ;
▶WHERE 절 예제
SELECT *
FROM STOCK_INFO
WHERE MKT_CAPITALIZATION_USD > 1000000;
SELECT *
FROM STOCK_INFO
WHERE REGION = 'KR'; # 문자열은 ''으로 꼭 감싸줘야함
SELECT *
FROM ETF_INFO
WHERE ASSET_TYPE = 'Equity';
-- **BETWEEN** 지정된 두 값 사이의 데이터 가져오기
SELECT *
FROM STOCK_INFO
WHERE MKT_CAPITALIZATION_USD BETWEEN 1000000 AND 2000000;
2-1. 조건 AND / OR
💡 SELECT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 WHERE 조건1 AND(OR) 조건2 ;
▶AND 예제
# 조건 AND
SELECT *
FROM STOCK_INFO
WHERE REGION = 'KR'
AND MKT_CAPITALIZATION_USD < 5000;
▶OR 예제
# 예제1
SELECT *
FROM STOCK_INFO
WHERE REGION = 'US' OR REGION = 'KR';
# 예제2
SELECT *
FROM STOCK_INFO
WHERE REGION = 'US' OR MKT_CAPITALIZATION_USD < 4000;
2-2. 조건 (NOT) IN : 조건1 OR 조건2에 만족하는건 다 불러오기
▶NOT IN 예제
💡 SELECT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 WHERE 비교컬럼이름 (NOT)IN (조건1, 조건2) ;
# OR로 조건을 넣고 싶은데 몇십개, 몇백개라면? -> (NOT) IN 사용하자!
SELECT *
FROM STOCK_INFO
WHERE REGION = 'US'
OR REGION = 'KR'
OR REGION = 'CH' ;
# IN 사용한 쿼리
SELECT *
FROM STOCK_INFO
WHERE REGION IN ('KR','US','CN'); -- REGOION 에 KR,US,CH 하나라도 들어있으면 가져와라
# NOT IN 사용한 쿼리
SELECT *
FROM STOCK_INFO
WHERE REGION NOT IN ('KR','US','CN'); -- REGOION 에 KR,US,CH 하나라도 없는 데이터 가져와
2-3. LIKE : 특정한 패턴을 가지는 값 조회
💡 SELECT 컬럼이름1, 컬럼이름2 FROM 테이블 이름 WHERE 컬럼이름 LIKE 패턴 ;
Like | 설명 |
a% | ‘a’로 시작 |
%a | ‘a’로 끝남 |
%To | ‘To’가 포함됨 |
_t% | 두번째 글자가 ‘t’임 |
a_%_% | ‘a’로 시작하고 글자수가 3개 이상 |
T%a | ‘T’로 시작하고 ‘a’로 끝남 |
▶LIKE 예제
# '%A%' 가장 많이 쓰임
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '%SOFTBANK%' ; -- NAME컬럼에 SOFTBANK가 들어있는 데이터 가져와
# '%A'
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '%A' ; -- A로 끝나는 데이터 가져와
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE '_M%' ; -- 두번째 글짜가 M인 데이터 가져와
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE 'A_%_%' ; -- A로 시작하면서 글자가 3개 이상인 데이터
SELECT *
FROM STOCK_INFO
WHERE NAME LIKE 'T%A' ; -- T로 시작하고 A로 끝나는 데이터
2-4. DML에 WHERE절 사용
UPDATE table1 SET sales = sales + 1000 WHERE ID = 2;
DELETE FROM table1 WWHERE ID = 2;
문제
1) Financial_Info 테이블에서 Total Assets의 값이 10,000,000 이상인 값만 조회해보세요.
SELECT *
FROM FINANCIAL_INFO
WHERE NAME_ = 'TOTAL ASSETS'
AND
VALUE_ > 10000000 ;
2) Fiancial_Info 테이블에서 Income과 관련된 항목 중 값이 5,000 ~ 10,000 사이인 데이터를 조회해보세요.
SELECT *
FROM FINANCIAL_INFO
WHERE NAME_ LIKE '%INCOME%'
AND
VALUE_ BETWEEN 5000 AND 10000 ;
'🛠️Skill > SQL' 카테고리의 다른 글
[SQL문법] CASE WHEN / IF, IFNULL, ISNULL (0) | 2022.11.02 |
---|---|
[SQL문법] ORDER BY 데이터 정렬하기 (0) | 2022.10.05 |
[oracle] 서울시 가장 비싼 물건과 가격 출력 / 서브쿼리 / ROWNUM (0) | 2022.10.04 |
[oracle] 가장 많이 나오는 어절 출력, 등록금이 가장 높은 대학 출력 / REGEXP_SUBSTR / RANK / WHERE (0) | 2022.10.04 |
[oracle] 범죄가 가장 많이 발생하는 요일, 범죄 동기 출력 / UNPIVOT / RANK (0) | 2022.10.04 |
댓글