티스토리 뷰

1. SELECT 명령어

  • 한 개 이상의 테이블에서 주어진 조건에 만족하는 레코드를 출력하는 명령문
  • 관계 대수의 셀렉트, 프로젝트, 조인, 카티션 프로덕트 연산자의 기능을 모두 포함하는 명령문
    • 필수절인 SELECT절과 부가적인 목적으로 사용하는 절을 혼합하여 검색 기능을 구체화

2. SELECT의 구문형식

SELECT [DISTINCT] 컬럼1, 컬럼2, … 컬럼n
FROM 테이블1[ INNER JOIN | OUTER JOIN 
		 테이블2, INNER JOIN | OUTER JOIN 
		 ON 조인조건식1 
		 테이블3
		 … , INNER JOIN | OUTER JOIN 
		 테이블m 
		 ON 조인조건식n]
[ WHERE 조건식[중첩질의] ]
[ GROUP BY 컬럼1, 컬럼2, … 컬럼n 
[HAVING 조건] ]
[ORDER BY 컬럼1[ASC | DESC], … 컬럼n[ASC | DESC]]

3. 데이터의 정렬

  • ORDER BY절을 사용
  • 검색 결과를 특정 컬럼에 대해 오름차순 또는 내림차순으로 정렬
    • 오름차순 : ASC
    • 내림차순 : DESC
    • ASC와 DESC 모두 생략 가능하며, 생략시 기본으로 ASC가 적용
  • 구문
SELECT 문 형식
ORDER BY 컬럼1[ASC | DESC], 
             ..., 
             컬럼n[ASC | DESC]
  • 사용 예시
    • 학생의 계좌정보를 ‘잔액’ 기준으로 각각 오름차순, 내림차순으로 정렬하시오.
      • SELECT * FROM 계좌 ORDER BY 잔액 ASC
      • SELECT * FROM 계좌 ORDER BY 잔액 DESC
    • 수강 정보를 ‘학생번호’ 기준으로 1차 오름차순으로 정렬하고, ‘과목코드’를 기준으로 2차 내림차순으로 정렬하시오.
      • SELECT * FROM 수강 ORDER BY 학생번호 ASC, 과목코드 DESC

4. 특수 연산자

  • 범위, 부분 일치 여부, 포함 여부 등 RDBMS에서 사용되도록 고안된 연산자
  • 종류
    • BETWEEN : 컬럼값이 V1 ~V2사이에 존재하는지 검사
      • ex ) 컬럼명 BETWEEN V1 AND V2
    • LIKE
      • 컬럼명 LIKE ‘V1%’ : V1으로 시작하는 문자열 검사
      • 컬럼명 LIKE ‘%V1’ : V1으로 끝나는 문자열 검사
      • 컬럼명 LIKE ‘%V1%’ : V1이 문자열 내부에 존재하는지 검사
      • 컬럼명 LIKE IN ‘V1-’ : V1뒤에 한 문자만 일치하는지 검사
    • IN : 컬럼값이 V1, V2, …, Vn 중 하나와 일치하는지 검사
      • ex ) 컬럼명 IN ( V1, V2, …, Vn )

5. 특수 연산자의 사용

  • 잔액이 20만원 이상 40만원 이하인 계좌의 계좌번호, 잔액, 학생번호를 출력하시오.
    • SELECT 계좌번호, 잔액, 학생번호 FROM 계좌 WHERE 잔액 BETWEEN 200000 AND 400000
    • SELECT 계좌번호, 잔액, 학생번호 FROM 계좌 WHERE 잔액 ≥ 200000 AND 잔액 ≤ 400000
  • 과목 코드가 ‘COM’으로 시작하는 과목의 과목코드, 과목명, 이수구분을 출력하시오
    • SELECT 과목코드, 과목명, 이수구분 FROM 과목 WHERE 과목코드 LIKE ‘COM%’
  • 소속학과가 ‘컴퓨터학과’, ‘행정학과’, ‘법학과’인 교수의 교수이름, 직위, 소속학과를 출력하시오.
    • SELECT 교수이름, 직위, 소속학과 FROM 교수 WHERE 소속학과 IN ( ‘컴퓨터학과’, ‘행정학과’, ‘법학과’ )

6. 집합 연산자

  • 테이블은 집합, 레코드는 집합에 포함된 원소
  • 집합 이론에서의 이진 연산
    • 합집합 : UNION, UNION ALL
    • 교집합 : INTERSECT
    • 차집합 : EXPECT
  • 집합 연산자 사용 조건
    • 테이블 R과 S의 차수 및 각 컬럼의 도메인이 일치
  • 교집합 및 차집합은 지원하지 않는 상용 DBMS가 있어 NOT IN등의 연산자를 사용하여 우회

7. 집합 연산자의 사용

  • 과목 테이블에서 ‘컴퓨터의 이해’를 강의하는 교수와 ‘데이터베이스 시스템’을 강의하는 교수의 교수번호를 출력하시오.
    • SELECT 교수번호 FROM 과목 WHERE 과목명 = ‘컴퓨터의 이해’ UNION SELECT 교수번호 FROM 과목 WHERE 과목명 = ‘데이터베이스 시스템’

8. 함수의 개념

  • 특정 목적을 수행하도록 사전에 정의된 연산 및 기능을 수행한 후 결과값을 반환하는 명령어 집합
  • 고도의 데이터 조작을 지원하고 SQL문 작성의 편의성을 유지
    • 선언적 언어 특성상 표현 불가능한 데이터 조작을 프로그래밍 언어적 특성을 갖는 확장된 언어를 사용
      • ex ) PL/SQL, TransactSQL, SQL Procedural 등
  • DBMS는 검색결과가 사용자에게 여러 형태로 사용되도록 여러 데이터 타입에 대한 다양한 사전 정의 함수를 제공

9. 숫자 함수

  • 삼각함수, 상수, 올림과 버림, 난수 등의 숫자 데이터 타입에 적용할 수 있는 계산을 위한 함수
  • 종류
    • ABS(X) : X의 절대값을 반환
    • SIN(X), COS(X) : X의 삼각함수 값을 반환
    • SEILING(X), FLOOR(X) : X의 보다 크지(작지) 않은 최소(최대)의 정수
    • LN(X) : 자연 로그 InX의 값을 반환
    • PI( ) : 원주율 값을 반환
    • POWER(X, Y) : 거듭제곱 XY의 값을 반환
    • RAND( ) : 0과 1 사이의 임의의 값을 반환
    • ROUND(X[, Y]) : X의 Y번째 소수점 위치의 수를 반올림 값을 반환
    • SQRT(X) : X의 제곱근의 값을 반환
    • TRANCATE(X, Y) : X의 Y번째 소수점 이하를 버림한 값을 반환
      • ex ) TRANCATE(졸업학점/8, 0)

10. 문자함수

  • 문자욜 조작 및 문자 형식 변환 등의 문자와 관련된 다양한 연산을 지원하는 함수
  • 종류
    • CHAR_LENGTH(X) : X의 글자수를 반환
    • CONCAT(X, Y) : X와 Y 문자열을 결합
    • LOWER(X) : X의 문자를 모두 소문자로 변환
    • UPPER(X) : X의 문자를 모두 대문자로 변환
    • SUBSTRING(X, A, B) : X의 A번째 문자부터 B개의 문자열을 반환
    • TRIM(X) : X의 양쪽 공백 문자를 제거하고 반환
    • LTRIM(X) : X의 왼쪽 공백 문자를 제거하고 반환
    • RTRIM(X) : X의 오른쪽 공백 문자를 제거하고 반환

11. 날짜함수

  • 날짜 및 시간 데이터 타입에 적용되어 산술 연산 및 시간 형 변환 등의 조작을 위한 함수
  • 종류
    • ADDDATE(X, INTERVAL Y단위) : X에 Y단위의 시간을 더한 날짜를 반환
    • ADDTIME(X, Y) : X와 Y 시각을 더한 날짜를 반환
    • CURDATE( ), CURRENT_DATE( ) : 현재 날짜를 반환
    • CURTIME( ), CURRENT_TIME( ) : 현재 시간을 반환
    • DATE(X) : X에서 날짜(년, 월, 일)을 반환
    • YEAR(X) : X에서 년 값을 반환
    • TIMESTAMPDIFF : 특정 시점을 기준으로 얼마만큼 차이가 발생하는지

12. 집계함수

  • 특정 컬럼에 집계함수를 통해 다양한 통계 연산을 수행할 수 있는 기능
  • SELECT절 또는 HAVING절에 기술
  • AS를 통해 Alias를 지정할 수도 있다.
  • 집계함수의 종류
    • COUNT : 컬럼에 있는 값들의 개수
    • SUM : 컬럼에 있는 값들의 합
    • AVG : 컬럼에 있는 값들의 평균
    • MAX : 컬럼에서 가장 큰 값
    • MIN : 컬럼에서 가장 작은 값

13. 그룹질의

  • 특정 기준으로 레코드를 그룹화하고 각 레코드 그룹에 대해 집계함수를 적용하는 질의
  • 예시
    • SELECT 문 형식 GROUP BY 컬럼
    • ex ) SELECT 소속학과, COUNT(*) AS 교수수 FROM 교수 GROUP BY 소속학과
  • 주의점
    • SELECT절에 그룹의 기준과 집계함수 이외의 컬럼은 포함 불가능

14. 조건 그룹 질의

  • 그룹 질의의 결과 레코드에 대해 출력 조건을 기술하는 질의
  • 예시
    • SELECT 문 형식 GROUP BY 컬럼 HAVING 조건
  • 조건에 대한 기술
    • WHERE : 레코드에 대한 조건을 기술
    • HAVING : 집계 결과 레코드에 대한 조건을 기술
      • SELECT 학생번호, COUNT(*) AS 신청_전공수 FROM 전공 GROUP BY 학생번호 HAVING 신청_전공수 ≥ 2
728x90

'방송대 > 데이터베이스 시스템' 카테고리의 다른 글

8강. 정규화  (0) 2025.04.07
7강. SQL(4)  (0) 2025.04.04
5강. SQL (2)  (0) 2025.03.17
4강. SQL ( 1 )  (0) 2025.03.10
3강. 관계형 모델  (0) 2025.03.03
댓글
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
최근에 올라온 글
Total
Today
Yesterday
공지사항