[Doit]Do it! SQL 입문[1]
** 본 포스팅은 이지스퍼블리싱의 Do it! SQL 입문 도서를 기반으로 작성되었습니다. ** Do it! SQL입문의 1장은 SQL에 대한 기초적인 설명과 배워야할 필요성에 대해 말하고 있고, 2장은 SQL설치 및 실습환경 구축에 관한 내용입니다. 본 포스팅에서는 3장 내용부터 정리합니다.
3장 SQL 시작하기
3-1 SELECT 문으로 데이터 검색하기
⏹️ SELECT문 SELECT 문은 데이터베이스에서 데이터를 검색하는 구문이다.
SELECT <col> FROM [table] WHERE [value]
- [table]에서 조회하고 싶은 데이터의 필드 리스트를 기술
- 여러 개의 필드를 읽을 때는 콤마(,)로 구분하여 연결
- 테이블 전체를 조회할 때는 SELECT * FROM 을 사용(최대한 필요한 컬럼만 조회해야 한다! 불필요한 데이터를 불러올 때 오버헤드가 발생하기 때문!)
[table]
- from 절 뒤에 위치
- 데이터가 저장되어 있는 테이블명 기술
- 스키마명을 적용하여 기술 가능
- [table] AS [별칭] 으로 별명 사용 가능
SELECT의 다양한 함수
- SELECT top 1 from ~ : 조회된 데이터의 1행 반환
- SELECT top @n from ~ : 조회딘 데이터의 변수 행만큼 반환
- SELECT count(*) from ~ : 조회된 데이터의 ROW 카운트 반환
3-2 WHERE 문으로 조건에 맞는 데이터 검색하기
⏹️ WHERE문 WHERE [value] : 필요한 정보만 조회할 수 있도록 필터를 적용하는 부분
- 비교연산자(-, >=, <=, >, <, > 등), 논리연산자(AND, OR, IN, NOT IN) 사용 가능
- 범위 검색시 BETWEEN 사용 가능.
- 날짜
SELECT * FROM [table] WHERE [col] BETWEEN '2017-03-17' AND '2017-03-19'
[col]에서 2017-03-17 ~ 2017-03-19 사이의 날짜를 가진 데이터 출력 </br>
- 문자열
SELECT * FROM [table] WHERE [col] BETWEEN 'A' AND 'B'
[col]에서 A와 B를 포함한 값을 검색 </br>
- NOT을 사용하여 범윗값을 제외하고 검색
SELECT * FROM [table] WHERE [col] NOT BETWEEN 'A' AND 'B'
A와 B를 포함하지 않은 값을 검색 </br>
- 날짜
- AND 와 OR을 사용하여 다양한 조건을 적용하여 데이터를 검색할 수 있다.
- AND 연산자
SELECT * FROM nasdaq_company WHERE sector = 'Finance' AND industry = 'Major Banks'
sector가 ‘Finance’이면서 industry가 ‘Major Banks’인 데이터 검색 가능 </br>
- OR연산자
SELECT * FROM nasdaq_company WHERE symbol = 'MSFT' OR symbol = 'XXXX'
symbol이 ‘MSFT’ 또는 ‘XXXX’인 데이터를 검색한다. OR은 양쪽 조건 중 하나라도 만족하는 결과를 모두 반환한다.
</br>
- AND 연산자
- NULL 데이터 검색
SELECT * FROM nasdaq_company WHERE sector is NULL
sector 데이터가 NULL인 데이터 검색 </br></br>
다양한 연산자
- In Operator : 여러 값을 동일한 열에 비교해야할 때 유용
- ESCAPE </br></br>
3-3 ORDER BY 문으로 데이터 정렬하기
ORDER BY문의 기본 형식
SELECT [col] FROM [Table] WHERE [col] = [조건값] ORDER BY [열] [ASC, DESC]
- desc (내림차순) ASC(오름차순)
select * from nasdaq_company ORDER BY Atable DESC Btable ASC
</br>
- 데이터를 건너 뛰는 OFFSET
SELECT * FROM nasdaq_company ORDER BY symbol OFFSET 1000 ROWS
1000개의 데이터를 뛰어넘고 데이터를 출력하라. </br>
- FETCH NEXT (반드시 OFFSET과 함께 사용해야 함.)
SELECT * FROM nasdaq_company ORDER BY symbol OFFSET 1000 ROWS FETCH NEXT 10 ROWS ONLY
1000개의 데이터를 뛰어남고 1001번째부터 10개의 데이터를 출력하라.
</br></br>
참고자료
Leave a comment