기본 기능 및 단축키
" -- " 한줄 주석 : 코드에 영향을 주지 않는 설명문
==> 한줄만 입력 가능!!
" /* " 범위 주석 : 개행이 되더라도 주석문이 닫힐 때까지 설명을 계속하는 구문
==> 범위 주석 열기 : /* , 닫기 : */
글씨 크기 바꾸는 방법
: 도구 - 환경설정 - 코드편집기 - 글꼴- 글꼴 및 크기 수정
하나의 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의 값이 다르면 중복이 아님
AS : 별칭, 통칭
[문법]
SELECT 컬럼 AS 별칭으로 칭할 이름
FROM 테이블;
=> SELECT절이 아닌 다른 곳에서도 사용 가능!
[ 주의점! ]
별칭 안에 띄어쓰기 불가능
숫자나 특수문자로 시작 불가 (영문자 가능)
특수문자는 " $ ", " _ " , " # " 만 사용 가능
예약어(데이터베이스 내부에서 이미 사용하기로 약속된 단어들) 사용 불가
AS 대신에 공백 사용 가능 (하지만 컬럼들 이름 확인이 어렵기 때문에 권장하지 않음.)
=> FROM절에서는 대부분 공백으로 사용
DML-2. NULL (= 값이 정해지지 않은 공란, 빈 칸) 함수
[NULL값의 특징]
NULL값은 산술, 비교연산이 불가능!
아직 정해지지 않는 값 표현이 가능하고, 직사각형 형태를 유지해야하는 테이블의 특성을 지키기에 용이함
[NULL 연산은 IS NULL / IS NOT NULL 로 출력 가능]
[문법]
SELECT *
FROM 직원
WHERE 나이 IS NULL;
[NULL 함수 : NULL값을 대체할 수 있는 함수]
1. NVL
[문법]
SELECT 컬럼 NVL (컬럼, NULL일 때 교체할 값)
FROM 테이블;
=> 해당 '컬럼'에 속한 튜플에 NULL값이 들어오면 '교체할 값'으로 교체, NULL이 아니면 그대로 출력
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 테이블;
문자형 함수 4. TRIM : 문자 데이터에서 양 끝 공백 제거
[문법]
SELECT TRIM(' 문자 ')
FROM DUAL ;
문자형 함수 5. REPLACE : 문자 데이터에서 x라는 문자를 y로 대체
[문법] (str, ‘x’, ‘y’)
SELECT 컬럼, REPLACE(컬럼, 'x' , 'y')
FROM 테이블 ;
숫자형 함수 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의 절대값 출력