CHAP 1~4 복습

김승현·2021년 10월 10일
0
  • DB(Database)

    • 필요한 정보를 여러 응용 시스템에서 공용할 수 있도록 논리적으로 연관된 데이터를 모으고, 중복이 되는 데이터를 최소화 하여 구조적으로 통합/저장해 놓은 데이터의 집합체

  • DBMS의 기능

    • 데이터 추출 : 데이터 조회(검색), 응용 프로그램의 데이터 추출
    • 데이터 조작 : 데이터 추가, 수정, 삭제
    • 데이터 정의 : 데이터 구조 정의(테이블 생성), 저장공간 정의(DB 생성)
    • 데이터 제어 : 데이터베이스 사용자(관리자) 생성, 접근 제어, 백업(데이터 손실, 오류 복구)

SQL(Structured Query Language/ 구조화된 질의 언어)


  • 관계형 데이터베이스 시스템(RDBMS) 에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어
  • 원하는 데이터를 찾는 방법이나 절차를 기술하는 것이 아닌 조건을 기술하여 작성 함



기본 SQL 문법의 종류


데이터 정의어 : DDL(Data Definition Language)

  • 데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용
    - CREATE(개체 생성), ALTER(개체 수정), DROP(개체 삭제), TRUNCATE(개체 초기화)

데이터 조작어 : DML(Data Manipulation Language)

  • Data를 조작하기 위해 사용하는 언어
  • Table 안에 데이터를 추가, 수정, 삭제, 조회 등을 하기 위해 사용
  • Data를 이용하려는 사용자와 시스템간의 인터페이스를 직접적으로 제공하는 언어
    - INSERT(데이터 삽입), UPDATE(데이터 수정), DELETE(데이터 삭제), SELECT(데이터 검색) 등
    • SELECT 구문은 DQL(Data Query Language) 라고도 함

데이터 제어어: DCL(Data Control Language)

  • 사용자의 권한이나 관리자 설정 등을 처리하는 언어
    - GRANT(유저 권한 생성), REVOKE(유저 권한 삭제)

트랜잭션 제어어 : TCL(Transaction Control Language)

  • 트랜잭션 관리 제어 언어
    • 트랜잭션
      • 처리하는 업무의 작업 단위
      • 하나의 작업이 정상적으로 처리되었다명 COMMIT
      • 하나의 작업안에서 특정 작은 업무라도 잘못되면 ROLLBACK
  • COMMIT(트랜잭션 종료 처리 후 저장), ROLLBACK(트랜잭션 취소), SAVEPOINT(임시저장/ 포인트 지점 설정)



TABLE의 구조


  • Relation : Table을 Relation이라 부름
  • Column(Domain, Attribute) : 특정한 단순 자료형과 데이터의 열
  • Row(Tuple) : 테이블에서 한 객체의 대한 전체 정보를 표현한 행
  • Field : 단일 값 자체를 의미함

논리 연산자


연산자설명
NOT조건에 대한 반대 값으로 반환(NULL 예외)



LIKE

  • 비교하려는 값이 지정한 특정 패턴을 만족시키면 TRUE를 리턴
  • 연산자로'%'와 '_'를 와일드 카드로 사용
  • ‘%’ : 글자수 상관 X
  • ‘_’ : 1글자수
  • 와일드카드 문자와 패턴의 특수문자가 동일한 경우: 임이의 특수문자와 ESCAPE 이용
--EMAIL의 ID 중  앞 글자가 3글자이고 뒤에 _가 있는 직원의 이름 이메일
SELECT EMP_NAME, EMAIL FROM EMPLOYEE WHERE EMAIL LIKE '___#_%' ESCAPE '#';



IN

  • 비교하려는 값 목록에 일치하는 값이 있으면 TRUE 리턴
  • EX) DEPT_CODE가 D6 와 D9인 이름, 부서코드, 급여 조회
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE = 'D6' OR DEPT_CODE = 'D9';
  • IN 사용
SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE IN ('D6','D9');



함수의 유형


  • 단일 행 함수 : 각 행마다 반복적으로 적용되어 입력 받은 행의 개수 만큼 결과 리턴
  • 그룹 함수 : 특정한 행들의 집합으로 그룹이 형성되어 적용. 그룹당 1개의 결과 리턴



작성법리턴값설명
LENGTH(COL | STRING)NUMBER컬럼의 값/문자열의 길이(문자 개수) 리턴
LENGTHB: Byte로 계산하여 출력
INSTR(STRING, STR, [POSITION], [OCCURRENCE])NUMBER문자(열)의 위치를 리턴
LPAD(STRING, N, [STR])
RPAD(STRING, N, [STR])
CHARACTER컬럼/문자열에 임의의 문자열을 왼쪽/오른쪽에 붙여
총 길이 N의 문자열 리턴
LTRIM(STRING,STR)
RTRIM(STRING,STR)
CHARACTER컬럼/문자열의 왼쪽/오른쪽에서 지정한 STR에 포함된 모든 문자를
제거한 나머지를 리턴
TRIM(STRING)
TRIM(CHAR FROM STRING)
TRIM(LEADING | TRAILING | BOTH [CHAR] FROM STRING)
CHARACTER컬럼/문자열의 지정한 위치에 지정한 한 글자를 제거한 나머지를 리턴
SUBSTR(STRING,POSITION, [LENGTH])CHARACTER컬럼/문자열에서 지정한 위치부터
지정한 개수(생략시 문자열 끝까지)의 문자열을 잘라내어 리턴
LOWER(STRING)
UPPER(STRING)
INITCAP(STRING)
CHARACTER컬럼/문자열을 소문자/대문자/첫글자만 대문자 형태로 변환하여 리턴
CONCAT(STRING,STRING)CHARACTER컬럼 혹은 문자열을 두 개 전달받아 하나로 합친 후 리턴
3개 이상의 컬럼/문자열을 결합할 경우 || 사용을 권장
REPLACE(STRING, STR1, STR2)CHARACTER컬럼/문자열에 변경할, 변경될의 문자열 값을 전달받아 변경 후 리턴
ABS(NUMBER)NUMBER숫자의 절대값 리턴
MOD(NUMBER,DIVISION)NUMBER숫자를 나누어 나머지를 리턴
ROUND(NUMBER)
ROUND(NUMBER, POSITION)
NUMBER지정한 위치 이후 반올림하여 값을 리턴
CEIL(NUMBER)NUMBER소수점 자리의 수 올림하여 정수 리턴
FLOOR(NUMBER)NUMBER소수점 자리의 수 버리고 정수 리턴
TRUNC(NUMBER, POSITION)NUMBER지정한 위치 이후 소수점 자리의 수를 버리고 리턴
SYSDATEDATE시스템에 저장되어 있는 현재 날짜 리턴
※ 그외 현재 시각 명령어들
CURRENT_DATE, LOCALTIMESTAMP, CURRENT_TIMESTAMP
MONTHS_BETWEEN(DATE1, DATE2)NUMBER날짜 두 개의 개월 수의 차이를 리턴
계산시 해당 월의 끝 날짜까지 계산
ADD_MONTHS(DATE, NUMBER)DATE날짜에 숫자만큼 개월 수를 더하여 특정 날짜 리턴
NEXT_DAY(DATE, STRING [OR NUMBER])DATE날짜에 인자로 전달받은 요일 중 가장 가까운 요일의 날짜 출력
(문자열: '월' '월요일'.. / 숫자: 1=일요일,...7=토요일)
LAST_DAY(DATE)DATE날짜가 속한 달의 마지막 날짜를 구하여 리턴
EXTRACT(YEAR FROM DATE)
EXTRACT(MONTH FROM DATE)
EXTRACT(DAY FROM DATE)
DATE년, 월, 일 정보를 추출하여 리턴

  • INSTR

    • POSITION : 찾을 위치의 시작 값 (기본값 1)
      • POSITION > 0 : STRING의 시작부터 끝 방향으로 찾음
      • POSITION < 0 : STRING의 끝부터 시작 방향으로 찾음
    • OCCURRENCE : 검색된 STR의 순번 (기본값 1), 음수 사용 불가
  • LPAD

    • N : 반환할 문자(열)의 길이(바이트) / 원래 STRING길이보다 작다면 N만큼 잘라서 표시
    • STR : 문자(열), 생략 시 공백





DECODE - 선택함수


작성법설명
DECODE(표현식,조건1,결과1,조건2,결과2,...[조건없는 결과(DEFAULT)] )표현식의 값과 일치하는 조건N의 결과N 리턴
(일치하는 값) (Java의 Switch문과 유사)
  • EX
SELECT DECODE(SUBSTR(EMP_NO,8,1), 1, '남', 2, '여')  AS "성별" FROM  EMPLOYEE;



CASE


작성법설명
CASE WHEN 조건1 THEN 결과1
        WHEN 조건2 THEN 결과2
        WHEN 조건3 THEN 결과3
        ELSE 결과N
END
여러가지 경우에서 선택을 할 수 있는 기능을 제공. (범위형태의 값도 가능)

profile
개발자로 매일 한 걸음

0개의 댓글