티스토리 뷰

반응형

https://www.youtube.com/watch?v=_f_WZYuNr7A&t=8s

 

SQL 기본에 있던 DDL,DML,TCL,DDL이 관리 구문으로 빠졌다.

구성이 사실 별 변동이 없다.

 

SQL 활용에서 Top N 쿼리, PIVOT 절과 UNPIVOT 절, 정규 표현식이 추가되었다.

이게 어렵게 느껴지는 포인트

 

나머지는 문제 잘 풀어보면서 체크

 

관계형 데이터베이스 개요

 

DBMS는 소프트웨어

이 소프트웨어가 관리하는 데이터의 집합이 데이터베이스다.

 

DBMS는 데이터를 효과적으로 관리하기 위한 시스템이다.

 

관계형 데이터 베이스 구성 요소

계정, 테이블, 스키마

 

게정은 권한, 그리고 테이블은 데이터 형석, 스키마는 기본적인 구조를 정의한다.

 

테이블

1. 정의

-엑셀에서의 워크시트처럼 행과 열을 갖는 2차원 구조로 구성, 데이터를 입력하여 저장하는 최소 단위다.

 

2. 특징

- 하나의 테이블은 반드시 하나의 유저(계정) 소유여야 한다. 즉, 무조건 소유자가 있어야 한다.

- 그 소유자는 테이블이 만들어질 때 결정된다.

테이블간 관계는 일대일(1:1), 일대다(1:N), 다대다(N:N)의 관계를 가질 수 있음

 

테이블명 중복은 불가능하지만, 소유자가 다를 경우는 같은 이름으로 생성 가능하다.

객체의 종류가 다르다 하면 만들어진다.

 

테이블은 행 단위로 데이터가 입력되고 삭제

그러나 수정은 값의 단위로 가능하다.

 

SQL

-관계형 데이터베이스에서 데이터 조회 및 조작, DBMS 시스템 관리 기능을 명령하는 언어

정의어, 조작, 제어 언어 등으로 구분

대소문자 구분X

 

관계형 데이터 베이스 특징

- 데이터의 분류, 정렬, 탐색 속도가 빠르다.

- 신뢰성이 높고, 데이터의 무결성 보장

- 기존의 작성된 스키마를 수정하기 어렵다

- 데이터베이스의 부하를 분석하는 것이 어렵다.

 

데이터 무결성

-데이터의 정확성과 일관성을 유지

- 데이터에 결손과 부정합이 없음을 보증한다.

 

데이터 무결성

1. 개체 무결성 : 기본키에 대한 것 NULL이나 중복값 X

2. 참조 무결성 : 외래키 값은 NULL 이거나 참조 테이블으 기본키 값과 동일

3. 도메인 무결성 (각 컬럼(속성)이 갖는 범위 ): 주어진 속성 값이 정의된 도메인에 속해 있어야 한다.

4. NULL 무결성 : 특정 속성에 대해서는 NULL 허용 X

5. 고유 무결성 : 특정 속성에 대해 값이 중복되지 않는다.

6. 키 무결성 : 하나의 관계에는 적어도 하나의 키가 존재

 

키 : 식별자

 

ERD = 테이블 간 서로의 상관 관계를 그림으로 표현한 것

엔터티, 관계, 속성이 있다.

 

SQL 종류

 

구분 종류
DDL(데이터 정의어) CREATE,ALTER,DROP,TRUNCATE(테이블의 구조는 두고 다 삭제(auto commit))
DML(데이터 조작어) INSERT,DELETE,UPDATE, MERGE
DCL(데이터 제어 언어) GRANT, REVOKE(권한을 부여, 회수)
TCL(트랜잭선 제어 언어) COMMIT, ROLLBACK
DQL(데이터 쿼리 언어) SELECT

 

SELECT는 사실 어디에도 속하지 않는다.

 

SELECT FROM WHERE GROUP BY HAVING ORDER BY

 

파싱 순서는 FROM > WHERE> GROUP BY> HAVING> SELECT > ORDER BY

SELECT만 ORDER BY 앞으로 간다.

 

SELECT 절

Alias 별칭 지정 가능

표현식(집계함수나 *1.1 같은걸 사용 가능)

 

SELECT 문보다 늦게 수행되는 ORDER BY 절에서만, SELECT 문에서 정의한 컬럼 별칭 사용이 가능하다.

단, 서브 쿼리로는 가능.

 

별칭에 쌍따옴표 전달 필요한 경우 - 별칭에 공백 포함, 특수문자, 대소문자 그대로 하고 싶을때

 

FROM 절

데이터를 불러올 테이블명 또는 뷰 명을 전달한다.

테이블 별칭 선언이 가능한데, AS를 쓰지 않는다.

ORACLE에서는 FROM 절 생략 불가

 

FROM TABLE B

 

조인 TABLE B 선언하는 것과 똑같다.

 

함수 정의

input output을 정의한 객체

 

데이터의 계산을 수행, 수정, 열 데이터의 유형 반환 등

 

함수의 종류(입력값의 수에 따라서)

-단일행 함수와 복수행 함수로 구분

-여러개 인풋 = 복수행, 하나면 단일행

그룹함수, 또는 집계함수라고도 한다.

 

문자함수 종류

LOWER - 소문자로

UPPER - 대문자로

SUBSTR - 문자열 중 m 위치에서 n개의 문자열 추출

INSTR - 대상에서 찾을 문자열 위치 반환(슬라이싱)

LTRIM - 문자열 중 특정 문자열을 왼쪽에서부터 삭제(rstrip?)

RTIRM - 문자열 중 특정 문자열을 오른쪽에서 삭제

TRIM - 문자열 중 특정 문자열을 약쪽에서 삭제

LPAD - 대상 왼쪽에 문자열을 추가하여 총 n의 길이 리턴

RPAD - 대상 오른쪽에 문자열을 추가하여 총 n의 길이 리턴

CONCAT - 문자열 결합

LENGTH -문자열 길이

REPLACE - 문자열 치환 및 삭제

TRANSLATE(대상, 찾을문자열, 바꿀문자열) - 글자를 1대 1로 치환

 

LENGTH나 INSTR 제외하고 값을 전부 문자열로 반환한다.

 

SQL-Server 

SUBSTR -> SUBSTRING

LENGTH -> LEN

INSTR -> CHARINDEX

 

2) 숫자형 함수

-숫자를 입력하면 숫자 값을 반환

 

ABS, ROUND,TRUNC(소수점 버림),SIGN(양음 판별),FLOOR(내림),CEIL(올림),MOD(나머지),POWER,SQRT

자리수 안 쓰면 정수로 반환

자리수 쓰면 자리수 만큼 맞춘다. -값은 정수 자리에서 반올림

 

3) 날짜형 함수

SYSDATE, CURRENT_DATE,CURRENT_TIMESTAMP = 오늘 날짜 출력

 

ADD_MONTHES - 날짜에서 n개월 후 날짜 리턴

LAST_DAY - 주워진 월의 마지막 날짜 리턴

NEXT_DAY - 주어진 날짜 이후, 지정된 요일의 첫 번째 날짜 리턴

ROUND - 날짜 반올림

TRUNC - 날짜 버림

 

SQL-Server)

SYSDATE -> GETDATE

ADD_MONTHS -> DATEADD

MONTHS_BETWWEN -> DATEDIFF

 

개월 수 출력

 

4) 변환함수

 

-값의 데이터 타입을 변환

-문자를 숫자로, 수자를 문자로, 날짜를 문자로 변경

 

TO_NUMBER(대상) - 숫자 타입으로 변경하여 리턴

TO_CHAR(대상,포맷) - 날짜의 포맷 변경, 숫자의 포맷 변경

TO_DATE(문자, 포맷) - 주어진 문자를 포맷 형식에 맞게 읽어 날짜로 리턴 / 날짜가 이닌 녀석을

CATS(대상 AS 데이터 타입) - 대상을 주어진 데이터 타입으로 변환 (위 3개를 다 가지고 있다)

 

SQL-Server)

TO_NUMBER, TO_DATE, TO_CHAR -> CONVERT(포맷 전달 시)

단순 변환일 경우 주로 CAST 사용

 

5) 그룹함수

다중행 함수이다.

groupby와 함께 자주 사용된다.

- 여러 값이 input 값으로 들어가서 하나의 요약된 값으로 리턴

 

COUNT(대상) - 행의 수

SUM(대상) - 총합

VARIANCE(대상) - 분산

STDDEV - 표준편차

 

6 ) 일반함수 - 중요

기타 함수 종류

 

DECODE(대상, 값1, 리턴1, 값 2, 리턴 ,.... 그 외 리턴) - 대상이 있고, 값1과 같으면 리턴1, 아니면 값2랑 비교후 리턴..

NVL - NULL이면 치환한다.

NVL2 - NULL일 때와 NULL이 아닐 때를 각각 치환할 수 있다.

COALESCE(대상1, 대상2, 그외 리턴)

CASE 문

 

 DECODE 안에 DECODE를 또 쓸 수도 있다.

 

 

반응형