본문 바로가기
SQL/기초

SQL 정리 3일차

by 유서담 2023. 8. 5.

3.1 SELECT 구문의 기본 문형(SELECT ~ FROM)

SELECT (DISTINCT) 칼럼명 (ALIAS)
FROM 테이블명;

SELECT  : 검색하고자 하는 데이터(컬럼)를 나열

DISTINCT : 중복행을 제거

ALIAS : 나타날 때 칼럼에 대하여 다른 이름을 부여

FROM : 선택한 칼럼이 있는 테이블을 명시

 

3.2 전체 데이터의 검색

SQL>SELECT *
	2 FROM s_dept;

테이블에 있는 모든 데이터를 검색하고 싶은 경우에는 SELECT 뒤에 *를 기술함으로써 나타낼 수 있다

 

3.3 특정 칼럼의 검색

SQL>SELECT name, start_date, salary
	2 FROM s_emp;

테이블의 특정 칼럼의 데이터를 검색하고 싶은 경우에는 SELECT절 뒤에 칼럼을 콤마(,)로 구별하여 나열

이때 나타나는 순서는 SELECT 뒤에 기술한 칼럼의 순서대로 결과가 나타난다.

 

3.4 산술식을 이용한 검색

SQL>SELECT name, salary*18
	2 FROM s_emp;

데이터를 나타낼 때 산술 연산을 한다거나 출력되는 방식을 변경하고 싶으면 산술표현식을 사용할 수 있다.

산술 표현식에 사용되는 연산자의 종류 : + , - , *, / , () 

 

3.5 칼럼에 대한 ALIAS 부여

 

-검색결과를 나타낼 때 칼럼에 대한 ALIAS를 지정하여, 나타나는 칼럼의 HEADING을 바꾸어 줄 수 있다.

-ALIAS는 특별히 산술연산을 수행하는 경우에 유용하게 사용할 수 있다.

-AS라는 단어는 생략할 수 있다.

-ALIAS를 영문으로 부여한 경우에 대소문자를 구별하거나, ALIAS가 두 단어로 구성된 경우는 반드시 이중 따옴표( "  " )를 써야한다.

SQL>SELECT name, salary*18 AS 연봉
	2 FROM s_emp;

 

3.6 칼럼의 합성 ( CONCATENATION )

SQL>SELECT name||'  '||title
	2 FROM s_emp;

합성연산자 ( || ) 를 사용하여 칼럼을 다른 칼럼이나 값과 연결하여 하나의 칼럼으로 출력할 수 있다

 

 

3.7 중복행의 제거 - DISTINCT

SQL>SELECT DISTINCT name
	2 FROM s_dept;

SELECT를 한 경우에 기본적으로 테이블에 중복행들이 있더라도 모든 행들에 대하여 다 결과가 나타난다.

이 때 DISTINCT라는 키워드를 사용하여 중복되는 행들을 제거할 수 있다.

 

 

3.8 정렬 순서의 지정 - ORDER BY

 

ORDER BY를 사용함으로써 나타나는 데이터를 정렬할 수 있다

SELECT (DISTINCT) 칼럼명 (ALIAS)
FROM 테이블명
ORDER BY 칼럼이나 표현식 (ASC 또는 DESC);

ASC : 조회한 데이터를 오름차순으로 정렬 / 기본값으로서 생략 가능

DESC : 조회한 데이터를 내림차순으로 정렬

 

 

3.9  특정 행의 검색 - WHERE

 

WHERE절을 사용함으로써 조건에 맞는 특정 행을 선택할 수 있다

SELECT (DISTINCT) 칼럼명 (ALIAS)
FROM 테이블명
WHERE 조건식
ORDER BY 칼럼이나 표현식 (ASC 또는 DESC);

조건식 : 칼럼이나 표혀식 상수, 연산자로 구성

 

 

3.10 WHERE절에 사용되는 연산자

WHERE 형식 	연산자		값
WHERE title = '사원'
WHERE salary BETWEEN 1000 AND 2000

WHERE절에 사용되는 연산자의 3가지 부류

- 논리연산자

- 논리비교연산자

- SQL비교연산자

 

 

3.11 조건의 부정

어떤 경우에는 사용자가 원치 않은 데이터를 조건식을 통하여 제외하는 경우가 있다.

이 때 각 연산자에 부정식을 써서 데이터를 제거할 수 있다.

 

논리비교연산자

- !- <> ^=

 

SQL비교연산자

- NOT BETWEEN ~AND~

- NOT IN

- NOT LIKE

- IS NOT NULL

 

 

비교연산자의 사용예

SQL> SELECT name, salary
	 FROM s_emp
     WHERE salary >= 1000;
SQL> SELECT name, start_date, dept_id
	 FROM 
     WHERE start_date < '16/12/31';

SQL비교연산자의 사용예

SQL> SELECT name, salary
	 FROM s_emp
     WHERE salary BETWEEN 1000 AND 1500;
SQL> SELECT name, title, dept_id
	 FROM s_emp
     WHERE dept_id IN (110, 113);
SQL> SELECT name, start_date, title
	 FROM s_emp
     WHERE start_date LIKE '17%';
     
     와일드카드
     % : 0 ~ n개
     _ : 1개
     
     와일드카드 있을때만 LIKE / 없으면 =

 

3.12 논리연산자의 사용예 및 연산자 우선순위

SQL> SELECT name, salary, dept_id
	 FROM s_emp
     WHERE (dept_id = 110 OR dept_id=113)
     AND salary >= 2000;
우선순위 설명
1 모든 비교연산자 ( 논리비교, SQL 비교 )
2 AND
3 OR