-
230131_23일차 : SQLD특강 / JAVA시험스인개 데이터디자인(12.28-06.23)/기본진도 2023. 1. 31. 12:44
1교시, 2교시, 3교시, 4교시 - SQLD특강(개념 - SQL기본)
1. SQL 기본(12-20)
14 ) DML(Data Manipulation Language) : 데이터 조작어
- 유형
- DML 언어의 특징 : 대표적인 비절차적 언어 (데이터를 추출할 때, 무슨 데이터를 원하는지 작성만 하면 된다 / 자바나 C처럼 어떻게 데이터를 처리해야하는지 작성할 필요없음. 오라클에서도 절차적언어는 존재하며 이를 프로시저 등으로 부름.)
- INSERT
- UPDATE
- DELETE
- SELECT
ALL과 DISTINCT는 써도되고 생략도가능 + 주의 : DISTINCT 뒤에 컬럼이 여러개가 들어가면, 해당 컬럼들이 모두 조합되어 중복의 기준이 된다.
15 ) TCL(Transaction Control Language) : 데이터 조작어
- TCL이란? 트랜잭션(데이터베이스의 논리적 연산단위)을 제어하는 언어
① COMMIT : 데이터를 영구 반영하기위해
② ROLLBACK : 트랜잭션 도중에 하나라도 오류가 생기면 이전에 했던 모든 활동이 ROLLBACK된다
- 트랜잭션의 특징 4가지
- AUTO COMMIT : 트랜잭션 실행시, 자동으로 COMMIT이 되느냐 안되느냐
① 오라클
+ 아래 두번째 케이스 주의) CREATE TABLE TAB1 을 처리하고, INSERT이후에 또다시 DDL인 CREATE를 처리하게되면 그 위의 커리인 INSERT도 포함해서 자동 커밋처리가 된다!!
② SQL SERVER
+ 아래 두번째 케이스 ) auto commit이 false인 경우에, BEGIN TRANSACTION을 명시하면서 작업하는데 쿼리 중간중간 자기가 원하는대로 계속해서 작성해도 무방하다. 대신 COMMIT을 한 부분까지만 확실히 처리가 된다.
- SAVEPOINT / ROLLBACK
16 ) WHERE
- WHERE : WHERE에 조건을 줘서 내가 원하는 튜플(행)만 출력
- 비교조건 : = , >, <= 등으로 비교하는 조건(동등조건(=)과 비동등조건)
- 논리조건 : AND, OR로 추가적인 조건을 준다 (주의: AND가 OR보다 우선시함)
우 : 빨강 > 노랑 순서 + 우 ) 부서ID가 D002이면서 이름이 김철수인사람 : 없음 > 없는 조건과 앞의 부서ID가 D001인 조건으로 2개가 결국 출력
- 부정연산 : 참을 거짓으로, 거짓을 참으로 바꿔버리는 성질
각각 우측이 실무에서 쓰임 - NULL : IS NULL / IS NOT NULL 연산으로만 비교 가능(NULL은 기본적으로 산술, 비교연산이 불가능)
+ 주의) 오라클과 SQL SERVER는 NULL을 보는 관점이 다름
- SQL연산자(SQL에서만 사용함)
① IN
NOT으로 부정이되는 순간, OR이 AND로 바뀌게되므로 '그 외의 나머지 모두'를 출력해야한다. NULL이 아닌 모든값과 나머지값들의 충돌이 일어남=> 아무것도 출력x ② BETWEEN : 범위조건 연산(숫자,날짜,문자범위)
주의 ) 뒤에 입력되는 값이 앞의 값보다 커야하며 / <=,>=로만 처리가능하므로 >,< 는 불가하다 ③ LIKE : _ , % 같은 와일드카드를 이용해 매칭연산
% 는 0개이상의 여러 문자매칭가능 / _는 각 1개의 문자를 매칭함( _ _ 수 : 세번째글짜가 수인글자) - ROWNUM : 테이블의 출력 행(튜플)에 임시로 부여되는 일련번호 / 출력되는 튜플(행)의 개수를 제한할수있음
+주의)
17) 함수(FUNCTION)
- 함수의 종류
사용자정의함수(직접함수를작성하여 만드는것) - 단일행함수 ? 단일행을 입력받아, 하나의 출력을 하는 함수
- 단일행함수의 종류
① 문자형함수
우: CHR(10)은 줄바꿈으로 1을 의미 / 아래의 'A'|CHR(10)은 2가됨
② 숫자형함수
③ 날짜형함수
④ 변환형함수 : 형변환함수는 특정자료형으로 값을 변경(우선순위 : 문자<숫자<날짜형)
/ SQL SERVER 의 경우, CAST나 CONVERT함수 사용
+ 연산을 하기 전에 먼저 서로의 자료형을 맞추기 위해 자동으로 형변환이 발생(묵시적 형변환) : 문자>숫자 등 불가
VS 명시적형변환=강제적형변환(TO_NUMBER, TO_CHAR, TO_DATE)
⑤ NULL함수
⑥추가함수 CASE WHEN
주의 : END를 마지막에 반드시 작성해야한다 / 좌:비동등 가능, 우: 동등가능한 차이가 있다 '나'인 경우 10, 나머지는 20으로 바꾸어 오름차순으로 정리한다(실제가 아니라 임시로 기준을 준다) / 추가적인 정렬조건(똑같은 조건에서는=>나끼리, 가끼리에서) NUM1에서는 내림차순으로 정렬 18) GROUP BY, HAVING절
- GROUP BY : 테이블 내의 행(튜플)을 작은 그룹으로 그룹화하여, 그룹별로 특정한 정보를 얻고자 할 때 활용하는 문법
/ 실제 출력되는 튜플(행)개수가 감소되어, 입력할 수 있는 컬럼이 제한됨(HAVING, ORDER BY, SELECT에서 제한)
+ 대신, 집계함수로 처리한 컬럼은 HAVING, ORDER BY, SELECT에도 입력 가능
- 다중행함수 중 '집계함수'
- '집계함수'의 종류
우:결과가 공집합일경우 0을 반환 - HAVING : 집계가 완료된 대상을 필터링하는 문법
+ 주의) WHERE절에는 집계함수에 대한 조건을 줄 수 없다 => WHERE절이 GROUP BY보다 먼저 실행되므로
+ 주의) HAVING은 GROUP BY의 영향을 받게되서, HAVING도 GROUP BY에 의해 입력된 컬럼에 의해서 HAVING도 입력가능한 컬럼에 제약을 가진다.
19 ) ORDER BY 절
- ORDER BY : 특정 컬럼을 기준으로 데이터를 오름차순/내림차순 정렬하는 문법
오름차순 내림차순(DESC) 추가기준으로 여러컬럼 사용가능 - 특징
①
②
③
20) 조인(JOIN)
- JOIN : FROM 뒤에 테이블을 두개 이상 입력할 수 있도록 처리한 문법(여러 테이블을 연결해 사용하는 것. 여러테이블의 컬럼을 한번에 가져올 수 있다) / FROM 뒤에 여러테이블이 있어도 조인은 2개씩만 발생한다(A,B 조인후에 C와 조인됨)
=> 우선 카티션조인(튜플끼리의 곱, 컬럼끼리의합) > 조인조건(특정컬럼으로 연결)하여, 서로 연관된 데이터만 남긴다
조인조건 조인조건, 일반조건 - 조인조건의 특징
① 조인조건의 개수
② 동등조인조건 / 비동등 조인조건
- FROM 뒤에 테이블이 두개 이상이면, 컬럼앞에 테이블을 명시 / FROM 뒤 테이블에 별칭을 주면 작성이 쉬워짐(테이블에 별칭을 주면, 별칭만 사용해야한다)
5교시, 6교시, 7교시, 8교시 - JAVA시험
'스인개 데이터디자인(12.28-06.23) > 기본진도' 카테고리의 다른 글
230202_25일차 : SQLD특강 / HTML,CSS (0) 2023.02.02 230201_24일차 : SQLD특강 / HTML,CSS (0) 2023.02.01 230130_22일차 : SQLD특강 / HTML,CSS (0) 2023.01.30 230125,26,27_19,20,21일차 : 1차 프로젝트(미니) (0) 2023.01.25 230120_18일차 : GIT / 자바 (0) 2023.01.20