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 |
'SQL > 기초' 카테고리의 다른 글
SQL 정리 5일차 GROUP BY, HAVING (0) | 2023.08.13 |
---|---|
SQL 정리 4일차 -2- 날짜형 함수, 변환형 함수 (0) | 2023.08.11 |
SQL 정리 4일차 -1- 문자형 함수, 숫자형 함수 (0) | 2023.08.08 |
SQL 정리 2일차 (0) | 2023.07.31 |
SQL 정리 1일차 (0) | 2023.07.30 |