ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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시험

Designed by Tistory.