기본규칙
1) SQL문을 작성할 때는 적어도 테이블 이름과 열 이름은 대문자로 쓰는 것이 좋다:
SQL문은 대/소문자를 구분하지 않기 때문에, 대/소문자가 섞여 있는 프로그래밍 언어와 SQL문을 구분하고 가독성을 높이기 위해 실무에서는 SQL문 전체를 대문자로 사용하기도 한다.
데이터를 조회하는 방법 3가지
1) 셀렉션: 행 단위로 조회- 원하는 가로줄의 데이터만 선택
2) 프로젝션: 열 단위로 조회- 원하는 세로줄의 데이터만 선택
3) 조인: 두 개 이상의 테이블을 양 옆에 연결하여 하나의 테이블인 것처럼 데이터를 조회
SELECT 절, FROM 절: 데이터 조회
SELECT 열 이름1, 열 이름2...
FROM 조회할 테이블 이름;
- SELECT문은 출력되는 데이터의 정렬 순서를 보장하지 않는다.
- 데이터를 제외한 SQL문의 띄어쓰기와 줄 바꿈은 명령 수행에 영향을 주지 않는다.
*(애스터리스크): 전체를 나타낸다. 열 이름 대신 *을 쓰면 전체 열이 선택된다.
DISTINCT: 중복 제거
선택한 열들의 데이터가 모두 중복되는 경우 제거한다.
SELECT DISTINCT DEPTNO, JOB
FROM EMP;
별칭 설정 4가지 방식
최종 출력되는 열 이름을 임의로 지정할 수 있다. 이렇게 본래 열 이름 대신 붙이는 이름을 별칭(alias) 라고 한다. 다음 4가지 방식은 모두 같은 의미이다. A+B 연산을 한 열을 새롭게 C라고 이름을 짓겠다는 의미이다.
1) A+B C
2) A+B "C"
3) A+B AS C
4) A+B AS "C"
네가지 방식 중에서도 큰 따옴표가 없고, AS를 명시하는 세 번째 방식이 주로 사용된다.
- AS가 있어야 어떤 단어가 별칭인지 쉽게 알아볼 수 있기 때문이다.
- "는 다른 프로그래밍 언어와 함께 사용될 경우 오류를 발생시킬 수 있는 요인이 될 수 있기 때문이다. SQL구문에도 "가 있는 경우 문자열의 지정 범위에 영향을 줄 수도 있다. 예를 들어 다음과 같은 코드에서
String sql = "SELECT A, B, A+B AS "C" FROM TABLE";
문자열의 지정 범위가 의도하지 않게 아래처럼 되어 버려 오류가 발생한다.
"SELECT A, B, A+B AS "
" FROM TABLE"
ODRER BY: 출력 데이터 정렬하기
ORDER BY [정렬하는 열 이름] [ASC or DESC]
- SELECT문을 작성할 때 가장 마지막 부분에 쓴다. SELCT문을 통해 조회할 데이터를 모두 확정한 상태에서 정렬을 하기 때문이다.
- 정렬 옵션을 설정하지 않은 경우 디폴트 값은 ASC(오름차순)이다. 여러 개의 정렬 기준을 설정하는 경우 먼저 쓴 조건이 더 높은 우선순위의 정렬 조건이 된다.
- 정렬이 꼭 필요한 경우가 아니라면 무분별하게 사용하지 않는 것이 좋다. 정렬하는 작업 때문에 불필요한 시간 소모가 발생하기 때문이다. 이는 SQL문의 효율이 낮아진다는 의미이며, 곧 서비스의 응답 시간이 느려진다는 것을 뜻하기 때문이다.
'BackEnd > DB, SQL' 카테고리의 다른 글
SQL 3편: 함수의 종류(단일행 함수, 다중행 함수) (0) | 2021.12.27 |
---|---|
SQL 2편: WHERE절과 연산자(논리, 산술, 비교, NOT, IN,BETWEEN, LIKE, IS NULL, 집합 연산자), 연산자의 우선순위 (0) | 2021.12.17 |
오라클 데이터베이스에 접속하기/SCOTT 계정 설정하기 (0) | 2021.12.15 |
관계형 데이터베이스 (0) | 2021.12.02 |
데이터베이스란? (0) | 2021.12.02 |
댓글