비전공자 공부일기/:: DB - SQL

[한기교] SQL 활용 필기(6) - 데이터 검색

와니_ 2020. 5. 3. 12:10

데이터 검색

 

< 간단한 데이터 검색 >

1) 무조건 검색

SELECT 속성명1, 속성명2, ...
FROM 테이블명

 

2) * (모든 속성)

SELECT *
FROM 테이블명

 

3) AS 키워드 (속성명 부여)

- 질의 결과의 속성명을 바꾸어서 나타나게 하고싶을 때

- 질의결과에 수식을 사용했을 때

- 속성명이 없을 때

SELECT 원하는 속성(수식가능) AS 부여하고 싶은 속성명
FROM 테이블명

 

 

< 조건검색 >

1) WHERE 절 (조건검색)

SELECT 속성명
FROM 테이블명
WHERE 조건

 

2) 연산자

 

3) DISTINCT 키워드 (중복제거)

- SQL은 Bag을 기반으로 하므로, 원래 중복된 것들도 모두 제시됨

- DISTICT를 이용하면 중복값을 제거한 결과를 조회 가능

SELECT DISTINCT 속성명 ...

 

 

< 복잡한 데이터 검색 >

1) BETWEEN a AND b

: 검색조건의 상한과 하한을 지정함   ==>    a<=X AND X<=b 와 같음

 

2) IN(a, b, c, ...)

: 속성값이 a, b, c, ... 중 하나라도 일치하면 참   ==>   X = a OR X = b OR X = c 와 같음

(ex)

SELECT ENAME, JOB
FROM EMPLOYEE
WHERE JOB IN('marketing', 'senior')

 

3) IS NULL

: 값이 NULL일 때 TRUE 반환

 

원래 NULL값은 어떤 비교를 하든 FALSE 반환

사원 테이블에서 COMMISSION 값이 NULL인 튜플들이 있을 경우,

X = NULL ==> X값이 NULL값이어도 결과가 거짓으로 반환됨

따라서 NULL값이 true를 반환하는 연산자가 필요해서 만들어짐

 

4) IS NOT NULL

: NULL값이 아닌 튜플 검색

 

5) LIKE 연산자 (문자열 검색)

: 지정한 문자 패턴과 부분적으로 일치하면 참이 되는 연산자

 

 % : 임의의 길이의 문자열

 ! : 글자 한 자

 

(ex)

SELECT DNAME, LOC FROM DEPARTMENT
WHERE DNAME LIKE 'H%n'

==> H로 시작하고 n으로 끝나는 문자열 위치 검색

 

6) ORDER BY절

: 질의문의 결과는 테이블에 입력된 순서대로 출력됨

 

데이터의 출력 순서를 특정 속성값을 기준으로 오름차순or내림차순으로 정렬해야 하는 경우가 있다.

ORDER BY {column_name} [ASC|DESC]

ASC : 오름차순으로, 생략 가능(기본값)
DESC : 내림차순, 생략 불가능

 

* ORDER BY절 다중속성 정렬 

: TIE BREAKER룰, 즉 같은 결과값이 나왔을 때 다른 조건을 비교하여 정렬할 수도 있다

SELECT 속성명
FROM 테이블명
ORDER BY 첫번째 조건 [ASC|DESC], 두번째 조건 [ASC|DESC]