반응형

반응형

반응형

 

 

 

 

DCL (Data Control Language)

 

CONN/ SERVICE /12345; 로 서비스 불러오면 아래 이미지처럼 보임.

성별 = 5BYTE, 나이 = 10BYTE

반응형
반응형

반응형
반응형

내장형 함수(Built-in Function) : 날짜형 함수

 

SYSDATE

: 입력시 시스템이 현재 가지고 있는 시간을 날짜형으로 출력

 

SYSDATE 예시

 

 

LAST_DAY

: LAST_DAY(date) = date의 날짜형 값의 행당 월 마지막 날짜 출력

 

ADD_MONTHS

: ADD_MONTHS(date, int) = date의 날짜형 값에서 int개월 수만큼 더해서 출력

 

 

형변환 함수

: 특정 자료형 값으로 변경해주는 함수

 

문법

- 숫자형 ===> 문자형 : TO_NUMBER()

- 문자형 ===> 숫자형 : TO_CHAR()

- 날짜형 ===> 문자형 : TO_CHAR()

- 문자형 ===> 날짜형 : TO_DATE()

 

자료형이 일치하지 않는 값끼리의 연산하게 되면 연산하기 전에 자동으로 내부적으로 형변환이 발생

 

형변환 예시

 

 

WHERE : 원하는 정보만 출력하고 싶을 때 조건을 줄 수 있는 문

비교조건

: = , > , < 등으로 비교하는 조건

 

---------- 예제 ----------

 

비교조건 예제

 

 

 

논리조건 : TRUE OR FALSE ?

 

AND : 그리고, ~이고 등의 문자로 이어지는 명제 2가지를 모두 만족 했을 때 TRUE

OR : ~이거나 등의 문자로 이어지는 명제 2가지 중 하나라도 만족 했을 때 TRUE 

 

AND와 OR을 사용하는 이유? 

  ==> 하나의 SQL문에는 WHERE이 하나만 들어갈 수 있기 때문에 AND와 OR로 여러 조건 적용하기 위해서

 

----------예제----------

 

논리조건 예제

 

 

 

 

 

JOIN

카티션 조인 : 각 테이블으 모든 튜플에 대해 모든 경우의 수를 붙인 것 (컴퓨터가 최선으로 인식한 방식)

조인 조건 : 테이블 간에 특정 컬럼으로 연결하면 서로 연관된 테이터만 출력

 

JOIN 문법

SELECT A. 컬럼, B. 컬럼

FROM 테이블 A(별칭), 테이블 B(별칭)

WHERE A.공통컬럼 = B.공통컬럼

 

INNER JOIN

: 조건에 해당하는 튜플만 출력(교집합)

문법

SELECT 

FROM 테이블 A, 테이블 B

WHERE A.공통컬럼 = B.공통컬럼;

 

OUTER JOIN

: 조인에 실패한 튜플도 출력

문법

SELECT 

FROM 테이블 A, 테이블 B

WHERE A.공통컬럼 = B.공통컬럼(+);

 !! (+)기호는 양쪽 중 한 곳만 가능 !!

 

ANSI

: 오라클 프로그램 이외에서도 사용 가능한 JOIN

 

 

반응형
반응형

기본 기능 및 단축키

 

" -- " 한줄 주석 : 코드에 영향을 주지 않는 설명문 

                         ==> 한줄만 입력 가능!!

 

" /* " 범위 주석 : 개행이 되더라도 주석문이 닫힐 때까지 설명을 계속하는 구문 

                          ==> 범위 주석 열기 : /* , 닫기 : */

 

주석 예시

 

 

글씨 크기 바꾸는 방법

: 도구 - 환경설정 - 코드편집기 - 글꼴- 글꼴 및 크기 수정

 

하나의 SQL문을 마칠 땐" ; " (세미콜론) 입력!!

 

실행 단축키 : Ctrl + Enter

                                   ==> 실행하고자 하는 문장 위를 클릭하여 커서를 두고 실행

 

범위 실행 단축키 : 실행하고자 하는 문작을 드래그로 블록 씌운 뒤 Ctrl +Enter

 

 

SQL문법 - DML (Data Manipulation Language) Part.1

DML-1. SQL문법과 실행 및 순서

 

[역할]

SELECT : 출력(조회)할 컬럼(열)만 작성

FROM : 데이터를 가져올 테이블

WHERE : 원하는 튜플(행)만 가져오도록 조건 작성

GROUP BY : 특정 컬럼을 기준으로 그룹화

HAVING : 그룹화 상태의 테이터 필터링

ORDER BY : 특정 컬럼으로 정렬

 

* 실행 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

 

 

[작성해야하는 내용]

SELECT : 출력하고 싶은 컬럼들

                  ==> 모든 정보를 보고싶으면 " * " (ASTERISK)

FROM : 컬럼을 불러올 테이블 이름

WHERE : 조건

GROUP BY : 그룹화할 컬럼

HAVING : 그룹화한 데이터와 조건

ORDER BY : 정렬할 컬럼과 정렬 순서

 

 

[예시를 위한 (직원 관련 정보 테이블) 생성 SQL문 실행 후 예제 풀이]

 

 

테이블에서 컬럼을 불러와 출력

 

 

DISTINCT : 출력할 컬럼 정보에서 중복 값을 없에 줌

 

[문법]

SELECT DISTINCT 컬럼

FROM 테이블

 

=> 컬럼을 여러 개 입력했을 경우

튜플 단위로 각 컬럼에 해당하는 값들 중 하나라도 중복이 아니면 중복이 아닌 것으로 계산

   (EX) SELECT에 A, B, C 세 개의 컬럼을 입력했을 경우

             각 튜플에서 컬럼 A, B에 해당하는 값이 동일해도 C의 값이 다르면 중복이 아님

 

DISTINCT 예제

 

 

AS : 별칭, 통칭

 

[문법]

SELECT 컬럼 AS 별칭으로 칭할 이름

FROM 테이블;

 

=> SELECT절이 아닌 다른 곳에서도 사용 가능!

 

[ 주의점! ]

별칭 안에 띄어쓰기 불가능

숫자나 특수문자로 시작 불가 (영문자 가능)

특수문자는 " $ ", " _ " , " # " 만 사용 가능

예약어(데이터베이스 내부에서 이미 사용하기로 약속된 단어들) 사용 불가

AS 대신에 공백 사용 가능 (하지만 컬럼들 이름 확인이 어렵기 때문에 권장하지 않음.)

  => FROM절에서는 대부분 공백으로 사용

         

 

 

DML-2. NULL  (= 값이 정해지지 않은 공란, 빈 칸) 함수

 

[NULL값의 특징]

NULL값은 산술, 비교연산이 불가능!

아직 정해지지 않는 값 표현이 가능하고, 직사각형 형태를 유지해야하는 테이블의 특성을 지키기에 용이함

 

[NULL 연산은 IS NULL / IS NOT NULL 로 출력 가능]

[문법]

SELECT *

FROM 직원

WHERE 나이 IS NULL;

 

 

IS NULL / IS NOT NULL 예제

 

 

 

[NULL 함수 : NULL값을 대체할 수 있는 함수]

 

1. NVL

[문법]

SELECT 컬럼 NVL (컬럼, NULL일 때 교체할 값)

FROM 테이블;

 

=> 해당 '컬럼'에 속한 튜플에 NULL값이 들어오면 '교체할 값'으로 교체, NULL이 아니면 그대로 출력

 

NVL 예제

 

 

 

2. NVL2

[문법]

SELECT 컬럼 NVL2 (컬럼, 컬럼, NULL일 때 교체할 값)

FROM 테이블;

 

=> 해당 '컬럼'에 속한 튜플에 NULL값이 들어오면 '교체할 값'으로 교체, NULL이 아니면 그대로 출력

 

 

3. DECODE

[문법]

SELECT 컬럼 DECODE (컬럼, 값, 컬럼의 값이 일치할 경우의 값, 컬럼의 값이 일치하지 않을 경우의 값)

FROM 테이블;

 

=> 해당 '컬럼'에 속한 튜플의 값이 '값'에 입력한 값과

       같다면 '일치 경우의 값'을, 아니면 '일치하지 않을 경우의 값'으로 출력 

 

 

 

4. COALESCE 

[문법]

SELECT 컬럼 COALESCE(DATA1, DATA2, DATA3, ... , DATA n);

 

=> 앞에서부터 DATA를 확인하다가 NULL값이 아닌 값이 나오면 출력 

 

 

 

DML-3. 자료형(Date Type) 과 함수

자료형(Data Type) : 데이터를 저장하는 형식

=> 데이터베이스에서는 문자형, 숫자형, 날짜형 자료형을 사용

=> SELECT 문에서는 간단한 연사과 내장형 함수 사용이 가능함

 

 

내장형 함수(Built-in-Function) : 미리 만들어 선언해둔 함수

=> 함수 이름을 호출해서 바로 사용 가능하게 내부에서 설계해둔 함수

 

문자형 : LOWER , UPPER , SUBSTR , TRIM , REPLACE

숫자형 : MOD , ROUND , CEIL , FLOOR , TRUNC , ABS

날짜형 : SYSDATE , LAST_DAY , ADD_MONTHS

 

 

 

문자형 함수 1. LOWER : 소괄호 속의 문자 데이터를 대문자에서 소문자로 대체

 

[문법]

SELECT LOWER('대문자 영어 형식의 문자') AS LOWER사용

FROM DUAL ;

 

 

문자형 함수 2. UPPER : 문자 데이터를 소문자에서 대문자로 대체

 

[문법]

SELECT 컬럼, UPPER(컬럼)

FROM 테이블;

 

 

문자형 함수 3. SUBSTR : 문자 데이터를 x자리부터 y개만큼 절단

 

[문법]

SELECT 컬럼, SUBSTR(컬럼, x, y)

FROM 테이블;

 

SUBSTR 예제

 

 


문자형 함수 4. TRIM : 문자 데이터에서 양 끝 공백 제거

 

[문법]

SELECT TRIM(' 문자 ')

FROM DUAL ;

 

 

문자형 함수 5. REPLACE : 문자 데이터에서 x라는 문자를 y로 대체

 

[문법] (str, ‘x’, ‘y’)

SELECT 컬럼, REPLACE(컬럼, 'x' , 'y')

FROM 테이블 ;

 

REPLACE 예제

 

 

 

 

숫자형 함수 1. MOD : '컬럼'에 있는 데이터를 '숫자'로 나눈 나머지를 숫자형으로 출력

 

[문법]

SELECT 컬럼, MOD (컬럼, 숫)

FROM 테이블 ;

 

 

숫자형 함수 2. ROUND : int1을 반올림하여 소수점 int2자리까지 출력

 

[문법]

SELECT ROUND (int1 , int2)

FROM DUAL ;

 

 

[ROUND와 비숫한 숫자형 함수들]

 

=> CEIL(int) : int보다 크거나 같은 최소 정수를 출력

=> FLOOR(int) : int보다 작거나 같은 최대 정수를 출력

=> TRUNC(int1, int2) : int1을 소수점 int2자리까지 잘라서 버린 후 출력

=> ABS(int) : int의 절대값 출력

 

 

 

반응형

+ Recent posts