먼저, 런닝 10km로 인한 체력저하와 토익스피킹때문에.... 늦었습니다.
늦은 만큼 더 세세하게 한번 해보겠습니다.
SQL 기본( SQLD 2과목)
1.관계형 데이터베이스(DBMS) 개요
- 데이터란 수집한 사실 또는 값을 의미한다. -> 데이터를 가공하고 활용할 수 있도록 만든 것을 '정보' 라고 한다.
-> 정보를 효율적으로할수있는 방법을 연구한 것이 데이터베이스 이다. - 데이터 베이스는 으용프로그램에 종속적이지 않도록 일종의 미들웨어 형태로 만든것을 말한다.
-> 이는 저장의 최소화, 통합처리, 자체적관리기능, 자료의 독립성 등의 이점을 같는다. - TABLE(엔터티, 릴레이션) : 2차원 메트릭스 형태로 표현한 것
- 칼럼헤더 / 스키마
- 열(column,필드,속성)
- 행(row,레코드,튜플)
- SQL : 명령문을 제공하는 언어, 데이터베이스의 구조를 정의하고 데이터를 조작하며, 데이터를 제어할 수 있는
절차 +비절차 언어이다.- DDL(Data Definition Language, 데이터 정의 언어) : 데이터의 구조를 정의하는 명령어 이다.
- Commit
- RollBack
- SvePoint
- DML(Data Manioulation Language 데이터 조작 언어) : 테이블에 데이터를 조회, 입력, 수정, 삭제하는 명령어이다. 커밋전에 롤백이 가능하다.
- DROP
- Truncate
- Delete
- DCL(Data Control Language 데이터 제어 언어) :사용자 접근 권한과 같이 보안과 제어을 다루는 명령어이다.
- TCL(Transaction Control Language 트랜잭션 제어 언어) : 트렌젝션에 대한 제어를 다루는 명령어이다.
- DDL(Data Definition Language, 데이터 정의 언어) : 데이터의 구조를 정의하는 명령어 이다.
2. Select문
SELECT -> 5. 지정된 칼럼을 조회하며,
FROM -> 1.테이블로 부터
WHERE -> 2. 조건에 맞는 행을 필터링하고
GROUP BY -> 3. 그룹핑을 한 뒤,
HAVING -> 4. 조건에 맞는 그룹만 필터링하고
ORDER BY -> 6. 정렬을 수행한다.
3. 함수
#1 문자함수
--------------
LOWER(문자열) --> 문자열을 소문자로 변환
--------------
UPPER(문자열) --> 문자열을 대문자로 변환
--------------
CHR(코드값) --> ASCII코드값에 대응하는 문자로 변환
--------------
TRIM --> 양끝단에서 공백 또는 지정된 문자열을 제거하고 반환
//TRIM(' 문자열') 공백 제거
//TRIM (' 문자 문자열", 문자) 문자 제거
--------------
SUBSTR(문자열,문자열기준 ,문장열길이) --> 문자열기준으로 부터 어디까지의 문자열 반환
--------------
LENGTH(문자열) --> 문자열의 길이를 반환한다.
--------------
REPLACE문자열 변경대상문자열,변경된후의 문자열) 문자열에서 특정문자열을 찾아서 반환해줌.
--------------------------------------------------------------------------------------------
#2 숫자함수
--------------
ABS(arg1) --> 문자열 정수의 절대값을 반환한다.
--------------
ROUND(arg1,int) --> 수를 반올림한다. 정수값 소수점자리에서 반올림한다.
--------------
MOD(arg1,arg2) --> 첫번째인자를 두번째린자로 나눈 나머지를 계산한다.
--------------
TRUNC(arg1,int) --> 특정자리수에서 버림한 후 결과를 반환한다.
--------------
SIGN(arg) --> 양수 이면 1 음수이면 -1 0이면 0을 반환한다.
--------------
CEIL(arg) --> 입력값보다 크거나 같은 최소의 정수를 반환한다.
--------------
FLOOR(arg) --> 입력된 값보다 작거나 같은 최대의 정수를 반환한다.
--------------------------------------------------------------------------------------------
#3 날짜함수
--------------
SYSDATE --> 오늘 날짜를 불러옴(시간정보포함)
--------------
EXTRACT --> 년, 월, 일을 추출 변환함
--------------------------------------------------------------------------------------------
#4 변환함수
--------------
TO_NUMBER --> 데이터타입을 정수형으로 변환
--------------
TO_CHAR --> 데이터 타입을 문자열로 변환함.
--------------
TO_DATE --> 데이터 타입을 날짜형 타입으로 변환
--------------------------------------------------------------------------------------------
#5 NULL관련 함숨
--------------
NVL(arg1,arg2)
--------------
NULLIF
--------------
COALESCE
--------------------------------------------------------------------------------------------
4. Where 절
- 비교연산자
- 단일행 비교연산자(자바와 같음.)
- =
- <
- <=
- >
- >=
- IS NULL
- 다중행 비교연산자
- IN : 리스트중 동일한 값이 하나라도있으면 참을 반환
- EXISTS : 서브쿼리의 결과가 한건이라도 있으면 참을 반환
- ALL : 리스트 각각의 원소와 비교하여 모두 참이면 참을 반환
- ANY : 리스트 각각의 원소와 비교한 결과가 하나라도 참이면 참을 반환
- 단일행 비교연산자(자바와 같음.)
- 부정 비교연산자
- 단일행 부정 비교연산자
- != : 두값이 다르면 참을 반환
- ^= : 두값이 다르면 참을 반환
- <> : 두값이 다르면 참을 반환
- IS NOT NULL
- 다중행 부정 비교연산자
- NOT IN : 리스트중 동일한 값이 하나라도 없으면 참을 반환
- NEOT EXISTS : 서브쿼리의 결과가 한건도 없으면 참을 반환
- 단일행 부정 비교연산자
- SQL 연산자
- BETWEEN A AND B : A보다 크거나 같고 B보다 작거나 같으면 참을 반환
- LIKE : 패턴 문자열로 문자 검색 시 사용
- SQL 부정 연산자
- NOT BETWEEN A AND B: A보다 작거나 B보다 크면 참을 반환
- NOT LIKE : 패턴과 매칭된느 것이 하나도 없으면 참을 반환
- 논리 연산자
- AND
- OR
- NOT
5. GROUP BY, HAVING절
- GROUP BY : 필터링 조건을 부여하고자 할때 사용
- COUNT
- SUM
- AVG
- MIN
- MAX
- HAVING : 집계함수를 이용하여 필터링할떄 사용
6. Order By절
- ORDER BY (칼럼명) (ASC/ESDC)
7. Join절
- 개념 : 두개의 테이블은 하나로 병합하는 것으로 데이터베이스는 나뉘어져 있는 데이터를 하나의 테이블로 재구성해야 하는 데, 이를 테이블 병합 연산이라고도 한다.
- INNER JOIN
- 정의 : 두 집합 간의 교집합
- EQUI JOIN
- 등식을 조건으로 사용할 때 발생하는 조인이다. (단, ANSI에서는 ON절 이용)
- NON EQUI JOIN
- 부등식을 사용해서 범위를 나타낸 조건일 때 발생하는 조인이다.
- OUTTER JOIN
- 합집합의 개념으로 기준이 되는 키에 따른 칼럼값이 존재하지 않더라도 튜플을 병합하는 것과 같다.
- 조인에 대한 기준의 설정에 따라 달라짐....
'PlayData 백엔드 부트캠프 정리' 카테고리의 다른 글
PlayData 백엔드 부트캠프 Start 14일차 (0) | 2024.08.28 |
---|---|
PlayData 백엔드 부트캠프 Start 13일차 (0) | 2024.08.26 |
PlayData 백엔드 부트캠프 Start 11일차(JAVA 수업끝...ㅠ) (0) | 2024.08.23 |
PlayData 백엔드 부트캠프 Start 10일차 (0) | 2024.08.21 |
PlayData 백엔드 부트캠프 Start 9일차 (0) | 2024.08.20 |