Hi yoahn 개발블로그

#2 SQL 데이터 조작_1. 데이터 검색 본문

데이터베이스/SQL

#2 SQL 데이터 조작_1. 데이터 검색

hi._.0seon 2020. 3. 14. 12:16
반응형

1. 데이터 검색

 

# 기본 검색

SELECT  [ ALL | DISTINCT ]  속성_리스트

FROM  테이블_리스트;

- ALL 이 디폴트(명시하지 않아도 됨), 중복 허용 검색

- 검색 결과는 릴레이션, 메모리에 저장되는 것은 아님

(검색 결과를 메모리에 저장하려면 insert 명령어에서 values 대신 select 명령어 사용)

- 모든 속성을 검색하려면 *사용

 

- 결과로 출력되는 테이블의 속성 명을 변경해서 출력할 수 있다.

    -> 속성1 AS 속성2

        결과 테이블에 속성1을 속성2 이름으로 바꿔서 출력(테이블 내용이 바뀌는 것은 아님)

 

# 산술식을 이용한 검색

SELECT 제품명, 단가+500 AS "조정 단가"

FROM 제품;

 

# 조건 검색

SELECT  [ ALL | DISTINCT ] 속성_리스트

FROM  테이블_리스트

[ WHERE  조건 ];

 

- 비교연산자

  =  같다

  <> 다르다

  < , >, <=, >=

- 논리 연산자

  AND, OR, NOT

 

ex) where  제조업체='한빛제과'; //대입XX, 비교문

    where  주문고객='apple' AND 수량>=15;

- where 절에는 집계함수 사용 불가

 

## LIKE 를 이용한 검색

 : 검색 조건을 부분적으로 아는 경우 = 대신 사용(*문자열에만 사용 가능)

- 기호

% : 0개 이상의 문자

_ : 1개의 문자

 

ex) LIKE '_ _한%' //문자열 길이에 상관없이 세번째 글자가 '한'인 문자열

 

## NULL 이용한 검색

WHERE 나이 ( IS NULL | IS NOT NULL );

- 다른 값을 NULL값과 크기를 비교하면 모두 거짓

 

# 정렬 검색

SELECT ....

FROM ...

[ WHERE  조건 ]

[ ORDER BY 속성_리스트 [ ASC | DESC ]];

- ASC : 오름차순 //기본값

  DESC : 내림차순

- 결과를 여러 기준에 따라 정렬

  -> ORDER BY 주문제품 ASC, 수량 DESC;

 

# 집계 함수를 이용한 검색

- 집계 함수

[모든 데이터]

COUNT

MAX

MIN

[숫자 데이터]

SUM

AVG

- NULL 값은 제외하고 계산

- SELECT 절이나 HAVING 절에서만 사용 가능

 

ex) SELECT  COUNT( DISTINCT 제조업체) AS "제조업체 수"

      FROM  제품;

 

SELECT SUM(재고량) AS "재고량 합계"

FROM 제품

WHERE 제조업체='한빛제과';

 

# 그룹별 검색

SELECT ....

FROM ...

[ WHERE  조건 ]

[ GROUP  BY  속성_리스트 [ HAVING 조건 ]]

[ order by...];

- 그룹을 나누는 기준이 되는 속성 지정, 그룹에 대한 조건은 HAVING 키워드와 함께 작성

- having 절에는 집계함수 사용 가능

**그룹별 검색할 때 집계 함수나 group by 절에 있는 속성 외의 속성은 SELECT 절에 사용할 수 없다

 

ex)

SELECT  COUNT(*) AS 제품수, MAX(단가) AS 최고가

FROM  제품

GROUP BY 제조업체 HAVING COUNT(*)>=3;

 

# 여러 테이블에 대한 조인 검색

조인 속성: 테이블들을 연결해주는 속성. 조인 속성의 이름은 달라도 되지만 도메인은 같아야 함 (외래키)

테이블의 이름과 속성의 이름은  . 으로 연결

 

ex)

SELECT 제품.제품명

FROM 제품, 주문

WHERE 주문.주문고객='banana' AND 제품.제품번호=주문.주문제품;

 

- 테이블 이름이 길면 별명 사용 가능

FROM 절에 테이블 명과 별명을 함께 제시.

 

# 부속 질의문을 이용한 검색

 : select문 안에 다른 select문 포함 -> 부속 질의문

* 부속 질의문은 괄호로 묶어 작성

* order by 절 사용 불가

* 상위 질의문보다 먼저 수행됨

 

## 단일 행 부속 질의문  =

- 일반 비교 연산자 사용 가능

- 부속 질의문이 수행된 결과가 단일 값인 경우 사용

 

## 다중 행 부속 질의문  IN

- 일반 비교 연산자 사용 불가

- 부속 질의문이 수행된 결과가 다중 값일 경우 사용

- 사용 가능 연산자

   IN, NOT IN, EXISTS, NOT EXISTS, ALL(비교연산자와 함께 사용), ANY | SOME

반응형

'데이터베이스 > SQL' 카테고리의 다른 글

SQL 실행계획  (0) 2023.05.26
#3 SQL 데이터 삽입,수정, 삭제  (0) 2020.03.14
#1 SQL 데이터 정의어  (0) 2020.03.14
Comments