ABOUT ME

-

Today
-
Yesterday
-
Total
-

Post Calendar

«   2024/09   »
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
29 30
  • 정보처리기사 실기 스터디[2022-10-06] - SQL 응용(데이터베이스 기본)
    자격증/정보처리기사 2022. 10. 6. 23:14

    📌 Study

    🔸 2022-10-06

    [SQL 활용]

    1. 데이터베이스 기본

    • DDL 명령어
      • CREATE : 데이터베이스 오브젝트 생성하는 명령어
      • ALTER : 데이터베이스 오브젝트 변경하는 명령어
      • DROP : 데이터베이스 오브젝트 삭제하는 명령어
      • TRUNCATE : 데이터베이스 오브젝트 내용 삭제하는 명령어

     

    • TABLE 관련 DDL
    • CREATE
        CREATE TABLE 테이블명
        (
            컬럼명 데이터타입 PRIMARY KEY, -- 기본키 설정
            컬럼명 데이터타입 FOREIGN KEY REFERENCES 참조테이블(기본키),
            컬럼명 데이터타입 UNIQUE,
            컬럼명 데이터타입 NOT NULL,
            컬럼명 데이터타입 CHECK(조건식), -- 제약조건 설정
            컬럼명 데이터타입 DEFAULT 값
        );

     

    • ALTER
        ALTER TABLE 테이블명
            ADD 컬럼명 데이터 타입;
            MODIFY 컬럼명 데이터타입 [DEFAULT][NOT NULL];
            DROP 컬럼명;
            RENAME COLUMN 변경전 컬럼명 TO 변경후 컬럼명;

     

    • DROP
        DROP TABLE 테이블명 [CASCADE / RESTRICT];        // 참조까지 모두 삭제 / 참조 중이면 삭제 불가

     

    • TRUNCATE
        TRUNCATE TABLE 테이블명;        // 테이블 내 데이터들 삭제

     

    • VIEW 관련 DDL
    • CREATE VIEW : 뷰 생성하는 명령
        CREATE VIEW 뷰이름 AS
        조회쿼리;
        CREATE VIEW 뷰이름 AS
        SELECT 사번, 이름
        FROM 사원
        WHEW 성별 = 'M';

     

    • CREATE OR REPLACE VIEW : 뷰 교체하는 명령
        CREATE OR REPLACE 뷰이름 AS
        조회쿼리;

     

    • DROP VIEW
        DROP VIEW 뷰이름;

     

    • INDEX 관련 DLL
    • CREATE INDEX : 인덱스 생성하는 명령
        CREATE INDEX 인덱스명 ON 테이블명(컬럼명);
        CREATE INDEX 사번인덱스 ON 사원(사번);

     

    • ALTER INDEX : 인덱스 수정하는 명령
        ALTER INDEX 사번인덱스 ON 사원(사번);

     

    • DROP INDEX 인덱스명;
        DROP INDEX 사번인덱스;

     

    • DML(데이터 조작어) : 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어

     

    • DML 명령어
      • SELECT : 테이블 내 칼럼에 저장된 데이터 조회
      • INSERT : 테이블 내 칼럼에 데이터 추가
      • DELETE : 테이블 내 칼럼에 저장된 데이터 삭제
      • UPDATE : 테이블 내 칼럼에 저장된 데이터 수정

     

    • SELECT 명령문
      • SELECT 절
        • ALL : 모든 튜플 검색, SELECT 뒤에 명시하지 않은 경우 ALL로 인식
        • DISTINCT : 중복된 속성일 경우 그 중 한개만 검색
      • FROM 절 : 테이블 명 기술
      • WHERE 절 : 검색할 조건 기술
      • GROUP BY 절 : 속성값을 그룹으로 분류
      • HAVING 절 : 그룹에 대한 조건 지정
      • ORDER BY 절 : 속성값 정렬
        • ASC : 오름차순 정렬
        • DESC : 내림차순 정렬

     

    • 중복 제거
      SELECT DINSTINCT 과목
      FROM 성적;

     

    • WHERE 조건
      • [상수] : WHERE 부서번호 = 90;
      • [문자열] : WHERE 이름 = 'Daehun'
      • [날짜] : WHERE 입사일 = '06-OCT-22';

     

    • 비교
      • = ( 값이 같은 경우)
      • <>, != (값이 다른 경우)
      • <, <=, >, >= (비교 연산)

     

    • 범위
      • 컬럼 BETWEEN 값1 AND 값2
      • PRICE BETWEEN 5000 AND 8000

     

    • 집합
      • 컬럼 IN (값1, 값2, ...), 컬럼 NOT IN (값1, 값2, ...)
      • PRICE IN (5000, 6000, 7000)

     

    • 패턴
      • 컬럼 LIKE 패턴
      • % : 0개 이상의 문자열과 일치
      • [] : 1개의 문자와 일치
      • [^] : 1개의 문자와 불일치
      • _ : 특정 위치의 1개의 문자와 일치
      • NAME LIKE '정보%' = NAME이 '정보'로 시작되는 문자열

     

    • NULL
      • IS NULL : 컬럼이 NULL이 데이터 조회
      • IS NOT NULL : 컬럼이 NULL이 아닌 데이터 조회

     

    • 복합조건
      • (PRICE < 5000) AND (NAME LIKE '정보%') : 가격이 5000 미만이고, 이름이 '정보'로 시작하는 문자열

     

    • 첫 번째 문자가 'A' 또는 'B' 또는 'C' 또는 'D'인 문자열 일치 검색
      SELECT *
      FROM PRODUCT
      WHERE NAME LIKE '[ABCD]%';

     

    • GROUP BY 절
      SELECT 부서, SUM(급여) AS 급여합계
      FROM 급여
      GROUP BY 부서;

     

    • HAVING 절
      SELECT 직책, 부서, SUM(급여) AS 급여합계
      FROM 급여
      GROUP BY 직책, 부서
      HAVING 급여합계 >= 5000;

     

    • ORDER BY 절
      SELECT *
      FROM 성적
      ORDER BY 학점 DESC, 이름 ASC;

     

    • 조인 : 두 개 이상의 테이블 연결해서 검색

     

    • 논리적 조인
      • 내부조인(Inner) : 공통 걸럼 값이 같은 경우
      • 외부조인(Outer) : 왼쪽, 오른쪽, 완전 외부 조인
      • 교차조인(Cross) : 조인 조건이 없는 모든 데이터 조합
      • 셀프조인(Self) : 자기 자신에게 별칭 지정 후 다시 조인

     

    • 물리적 조인
      • Nested-Loop(중첩 반복 조인) : 2개 이상 테이블에서 순차적으로 상대박 ROW 결합
      • Sort-Merge(정렬 합병 조인) : 조인 대상 범위가 넓어 임의 접근 줄이기 위함 도는 연결 고리에 마땅한 인덱스가 존재하지 않을 때
      • Hash(해시 조인) : 해싱 함수 활용

    댓글

Designed by Tistory.