시작하면서
해당 글은 메타 코드 M에서 지원하는 정처기 필기 장학생에 합격하여 글을 작성하게 되었습니다.
메타 코드 해당 강의 보러 가기
참고 사항
- 플랫폼 => 이 뜻은 참고할 주제라는 뜻입니다.
- 이렇게 형관펜이 되어 있는 곳은 시험에 나오거나, 강조하고 싶은 부분이 있을 때 표시할 것입니다.
3-1. 데이터베이스 구축 - SQL 응용
3-1-1. 절차형 SQL 작성
SQL(Structured Query Language)
- 데이터베이스에서 데이터를 추출하고 조작하기 위해 사용하는 데이터 처리 언어
- 장점
- 대량의 데이터를 빠르게 조회, 필터링, 집계할 수 있어 데이터 분석 작업을 신속히 수행 가능
- 대부분의 데이터베이스 시스템에서 사용하는 표준화된 언어로 활용이 편리함.
SQL 기능에 따른 분류
DDL(Data Definition Language, 데이터 정의어)
- 데이터베이스의 구조를 정의하고 변경
- 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 생성, 수정, 삭제하는 작업 수행
DLC(Data Control Language, 데이터 제어어)
- 데이터베이스의 권한과 보안을 관리
- 사용자에게 데이터베이스에 대한 권한을 부여하거나 취소하는 작업 수행
- 데이터 보안, 무결성 유지, 병행 제어, 회복의 기능이 있음.
DML (Data Manipulation Language, 데이터 조작어)
- 데이터베이스에 저장된 데이터를 조작
- 데이터를 삽입, 수정, 삭제, 조회하는 작업 수행
3-1-2. 응용 SQL 작성
DDL (Data Definition Language, 데이터 정의어)
- 데이터베이스의 구조를 정의하고 변경
- 도메인, 스키마, 테이블, 뷰, 인덱스 등의 데이터베이스 객체를 생성, 수정, 삭제하는 작업 수행
데이터베이스 객체의 종류
- 도메인 : 하나의 속성이 가질 수 있는 원자값들의 집합, 속성의 데이터 타입과 저장될 수 있는 값의 범위 등을 지정
- 스키마 : 데이터 베이스 객체들을 논리적으로 그룹화하는 데이터 구조
- 외부/ 개념/ 스키마의 3가지 계층으로 구분됨.
- 테이블 : 데이터 레코드를 저장하는 기본 단위, Excel의 시트와 비슷함.
- 뷰 : 기본 테이블의 데이터를 동적으로 생성된 결과 집합으로 보여주는 가상 테이블
- 인덱스 : 데이터베이스 성능을 향상시키기 위한 데이터 구조
스키마(Schema)
- 외부 스키마
- 사용자나 응용 프로그램이 데이터를 보는 관점
- 특정 사용자의 요구에 맞춘 사용자 뷰를 제공함.
- 개념 스키마
- 데이터베이스 전체의 논리적 구조를 정의
- 데이블, 뷰, 인덱스, 관계 및 제약 조건을 포함한 모든 데이터베이스 객체를 정의
- 내부 스키마
- 데이터베이스의 뭄리적 저장 구조를 정의
- 데이터 파일의 저장 위치, 접근 경로 등을 포함
DDL의 명령어 종류, CREATE, ALTER, DROP, TRUNCATE
- CREATE: 데이터베이스 객체(도메인, 스키마, 테이블, 인덱스, 뷰) 를 생성하는 명령어
- ALTER : 기존의 데이터베이스 객체를 수정하는 명령어
- DROP : 데이터베이스 객체를 삭제하는 명령어
- TRUNCATE : 테이블의 모든 데이터를 삭제하지만, 테이블의 구조는 유지하는 명령어
CREATE : 데이터 베이스 객체를 생성하는 명렁어


ALTER : 기존의 데이터베이스 객체를 수정하는 명령어


DROP : 데이터베이스 객체를 삭제하는 명령어

TRUNCATE : 테이블의 모든 데이터를 삭제하지만, 테이블의 구조는 유지하는 명령어

DCL (Data Control Language, 데이터 제어어)
- 데이터베이스의 권한과 보안을 관리
- 사용자에게 데이터베이스에 대한 권한을 부여하거나 취소하는 작업을 수행
- 데이터 보안, 무결성 유지, 병행 제어, 회복의 기능이 있음.
주로 데이터 베이스 관리자가 사용함., 보안을 유지하는 데에 사용됨.
DCL의 명렁어 종류 : GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT
- GRANT : 특정 사용자 또는 사용자 그룹에게 데이터베이스 객체애 대한 권한을 부여
- REVOKE : 부여된 권한을 회수
- COMMIT : 트랜잭션에서 수행된 작업을 영구적으로 데이터베이스에 적용
- ROLLBACK : 트랜잭션에서 수행된 작업을 취소하고 이전 상태로 되돌림
- SAVEPOINT : 트랜잭션 내에서 중간 지점을 설정하여 부분 취소를 가능하게 함.
GRANT : 특정 사용자 또는 사용자 그룹에게 데이터베이스 객체애 대한 권한을 부여
- GRANT SELECT ON 직원정보 TO USER1;
- USER1에게 직원 정보를 선택할 수 있는 권한을 부여
- GRANT SELECT ON 직원정보 TO USER1 WITH GRANT OPTION;
- USER1에게 직원 정보를 선택할 수 있는 권한을 부여 + USER1이 권한을 다른 사람에게 부여할 수 있도록 함.
REVOKE : 부여된 권한을 회수
- REVOKE UPDATE ON 직원정보 FROM USER1;
- USER1으로 부터 직원정보를 UPDATE 할 수 있는 권한을 회수함.
- REVOKE UPDATA ON 직원정보 FROM USER1 CASCADE;
- USER1으로 부터 직원정보를 UPDATE 할 수 있는 권한을 회수함. + USER1이 다른 사용자에게 부여한 권한 또한 회수함.
ON이나 FROM 의미를 잘 파악하기
GRANT와 REVOKE

DML (Data Manipulation Language, 데이터 조작어)
- 데이터베이스에 저장된 데이터를 조작
- 데이터를 삽입, 수정, 삭제, 조회하는 등이 작업 수행
DML의 명렁어 종류: SELECT, INSERT, UPDATE, DELETE
- SELECT : 조회
- INSERT : 삽입 , 입력
- UPDATE : 데이터 변경
- DELECT : 데이터 삭제
SELECT : 데이터 조회

예시 모음
태이블 명은 직원정보임.

- 예시 1) 모든 직원의 이름과 전화 번호를 조회
SELECT 이름, 전화 번호 FROM 직원정보
SELECT DISTINCT 이름, 전화번호 FROM 직원정보
- 중복되는 문자 제거 : DISTINCT ⇒ 쿼리에서 지정된 모든 열에 대해 중복을 제거
- 너무 많은 데이터에선, 성능이 좋지 않기 때문에 주의해야 함.
- 예시 2) 전화번호가 010-2345-6789인 직원명을 조회
SELECT 이름 FROM 직원정보 WHERE 전화번호 = “010-2345-6789”
테이블 명은 직원정보임.

- 예시 3) 각 부서별 직원의 수를 계산
SELECT 부서명, COUNT(*) AS 직원수 FROM 직원정보 GROUP BY 부서명;
- Sub Query를 통해 1차 정제된 데이터를 재사용할 수 있음.
- 예시 4) 직원 수가 2명 이상인 부서와 직원의 수를 계산
Select 부서명, count(*) AS 직원수
FROM 직원 정보
GROUP BY 부서명
HAVING COUNT(*) > 1;*
- HAVING을 통해 그룹화된 데이터에 추가 조건을 지정함.
- 예시 5) 입사년도가 빠른 순서대로 3명을 확인
SELECT 고유코드, 이름
FROM 직원정보
ORDER BY 고유코드, ASC
LIMIT 3;
- 고유코드를 기준으로 오름차순으로 정렬 후 , 상위 3개의 레코드를 반환
- ASC는 생략 가능(ORDER BY는 오름차순 기본)
INSERT : 데이터 입력

INSERT INTO 테이블명(컬럼명1, 컬럼명2 ...)
VALUES(값1, 값2 ...) ;
- 컬럼 값 간의 데이터 개수, 타입이 일치해야 함.
INSERT INTO 테이블명
VALUES(값1, 값2 ..., 마지막 값);
- 모든 값을 입력할 때는 컬럼명을 생략해도 됨.
UPDATA와 DELETE


비교 연산자: 두 값을 비교하여 조건을 설정

집합 연산자 : 특정 값이나 범위 내의 값을 찾는 데 사용

패턴 연산자 : 문자열의 특정 패턴과 일치하는 지 확인

논리 연산자 : 여러 조건을 결합하거나 조건의 부정을 표현

집계함수 : 데이터 집계를 수행하는데 활용되는 함수

윈도함수(WINDOW FUNCTION)
- 각 행에 대해 집계나 순위, 누적 합을 계산할 때 사용하는 함수
- OLAP(Online Analytical Processing) 및 데이터 분석에서 중요한 역할
ex) SELECT ROW_NUMBER() OVER (ORDER BY 성적 DESC) AS RANK,이름
FROM 학생 ;
OLAP(Online Analytical Processing)
다차원 데이터 분석을 할 수 있도록 도와주는 의사결정 지원 작업(시스템)
• Roll-up, Drill-Down, Slicing, Dicing, Pivoting 등의 연산이 있음
