정보처리기사

SQL 조작어(DML) - SELECT (단순질의문, DISTINCT)

르네 루덴스 2021. 7. 17. 10:37

• SQL 조작어는 데이터의 검색, 삽입, 수정, 삭제 등을 위해 사용된다.

• SQL 조작어는 SELECT, INSERT, UPDATE, DELETE문 4가지 명령어가 있다.

 

SELECT(검색문)

• SELECT문은 테이블에서 원하는 자료를 검색하고자 하는 경우에 사용되는 명령문이며, 산술식에 의한 계산도 수행한다.

 

• 구문

SELECT [DISTINCT] 속성_이름
FROM 테이블_이름
[WHERE 조건]
[GROUP BY 속성_이름 [HAVING 그룹 조건]]
[ORDER BY 속성_이름 [ASC|DESC];

- SELECT 속성_이름 : 검색하고자 하는 속성 이름을 나열하여 기술한다. 필요에 따라 구하고자 하는 값에 대한 계산식을 기술한다.

    •DISTINCT : 검색 결과에 중복되는 값이 있는 경우 한 번만 표현되도록 하는 옵션이며, 생략 시 중복된 값이 모두 표       시 된다.

- FROM 테이블_이름 : 검색하고자 하는 속성이 있는 테이블 이름을 기술한다.

- WHERE 조건 : 검색에 필요한 조건을 기입하는 부분으로 관계 연산자 (=, <>, <=,>,>=)와 논리 연산자 (NOT, AND,     OR) 등의 다양한 연산자를 이용할 수 있다.

- GROUP BY 속성_이름: 작업의 효율을 위해 필요시 한 속성의 값을 그룹으로 분류하고자 할 때 사용된다.

• HAVING 그룹조건 : GROUP BY에 의해 그룹으로 분류를 한 후 조건을 제시할 때 사용된다.

- ORDER BY 속성_이름 : 검색하고자 하는 속성의 값을 정렬하여 검색하고자 하는 경우 사용 된다. 정렬방법은 오름차순, 내림차순 등이 있다.

• ASC : 오름차순(작은 값에서 큰 값)으로 정렬할 때 사용되는 옵션이다.

• DESC : 내림차순(큰 값에서 작은 값)으로 정렬할 때 사용되는 옵션이다.

• 기본적으로 오름차순 정렬이 되며, 정렬 기준은 2가지 이상 주어질 수 있다.

 

①단순 질의문

기본적인 형태의 검색문을 말한다

 

학생

학번 성명 학년 수강과목 점수 연락처
011111 김예진 1 경영학과 85 2341-4567
022010 김상현 2 산업공학과 80 111-1234
033223 김태희 1 데이터베이스 88 2452-2151
044020 유병승 3 운영체제 92  
055533 양호준 2 행정학과 90 2432-4461
066017 이우식 4 행정학과 75 6255-7588

 

예1) [학생] 테이블에서 모든 학생의 성명을 검색하시오.

SELECT 성명
FROM 학생;

<결과>

성명
김예진
김상현
김태희
유병승
양호준
이우식

 

 

예2) [학생] 테이블에서 데이터베이스를 수강하는 학생의 학번과 성명을 검색하시오.

 SELECT 학번, 성명
 FROM 학생
 WHERE 수강과목='데이터베이스';

<결과>

학번 성명
033223 김태희

 

예3) 학생 테이블에서 3학년 학생의 모든 속성을 검색하시오.

SELECT *
FROM 학생
WHERE 학년 =3;

<결과>

044020 유병승 3 운영체제 92  

 

예4) [학생] 테이블에서 학년이 '3학년'이고, 수강과목이 '산업공학'인 학생의 성명과 연락처를 검색하시오.

SELECT 성명, 연락처
FROM 학생
WHERE 학년=3 AND 수강과목='산업공학';

<결과>

성명 연락처
김상현 111-1234

 

예5) [학생] 테이블에서 학년이 '1학년'이거나 수강과목이 '운영체제'인 학생의 성명을 검색하시오.

SELECT 성명
FROM 학생
WHERE 학년=1 OR 수강과목 ='운영체제';

<결과>

성명
김예진
김태희
유병승

② 'DISTINCT' 옵션을 이용하여 중복된 값을 제거한 검색의 경우

예) [학생] 테이블에서 2학년 이상인 학생의 수강과목을 검색하되, 같은 수강과목값은 한 번만 검색되도록 하시오.

SELECT DISTINCT 수강과목
FROM 학생
WHERE 학년>=2;

'DISTINCT' 옵션을 사용하지 않는 경우

수강과목
산업공학
운영체제
행정학과
행정학과

<결과> 'DISTINCT' 옵션을 사용한 경우

수강과목
산업공학
운영체제
행정학과

 

 

@All rights reserved by 영진닷컴