SQL 정의
관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다. SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있다.
SQL 특징
- ANSI, ISO에서 선정한 관계 데이터베이스 표준 언어이다.
- 관계 대수와 관계 해석을 기초로 한 혼합 언어이다.
- 데이터 정의, 조작, 제어 기능을 모두 갖추고 있다.
- 비절차적 언어이며 대화식 질의어로 사용할 수 있다.
- 다른 프로그램 언어에 삽입된 형태로 사용 가능하다.
SQL 자료형
구분 |
타입명 |
설명 | |
비트형 |
비트열 |
BIT(n) |
고정 길이로 Bit 단위로 할당 |
VARBIT(n) |
가변 길이로 Bit 단위로 할당 | ||
문자형 |
문자열 |
CHAR(n) |
고정 길이로 n개 할당 |
VARCHAR(n) |
가변 길이로 n개 할당 | ||
수치형 |
정수형 |
SMALLINT |
2바이트 고정 소수점 형식 |
INT 또는 INTEGER |
4바이트 고정 소수점 형식 | ||
실수형 |
FLOAT |
4바이트 부동 소수점 형식 | |
DOUBLE |
8바이트 부동 소수점 형식 | ||
10진형 |
DEMICAL(i, j) |
i는 10진수의 개수, j는 소수점 이하 자리수 | |
기타형 |
그래픽형 |
GRAPHIC(n) |
그림 형태의 내용을 기억시킬 기억 장소 할당 |
논리형 |
LOGICAL |
TRUE, FALSE를 기억시킬 기억 장소 | |
날짜형 |
DATE |
YY-MM-DD 형식 | |
시간형 |
TIME |
HH : MM : SS 형식 |
SQL 명령어(ddl, dml, dcl)
구분 |
명령어 |
설명 |
데이터 정의어 (DDL) |
CREATE |
TABLE, INDEX, VIEW의 생성 |
ALTER |
TABLE의 변경 | |
DROP |
TABLE, INDEX, VIEW의 제거 | |
데이터 조작어 (DML) |
SELECT |
DB의 데이터 검색 |
UPDATE |
DB의 데이터 갱신 | |
INSERT |
DB의 데이터 삽입 | |
DELETE |
DB의 데이터 삭제 | |
데이터 제어어 (DCL) |
GRANT |
사용자에게 권한 부여 |
REVOKE |
사용자의 권한 해제 | |
COMMIT |
데이터를 DB에 저장하고 트랜잭션을 성공적으로 종료 | |
ROLLBACK |
데이터의 변경 사항을 취소하고 원상태로 복귀한 후 트랜잭션 종료 |
SQL 기본 함수
종류 |
의미 |
사용예 |
INITCAP |
문자열의 첫번째 문자만 대문자로 변환 |
INITCAP(student) -> Student |
LOWER |
문자열 전체를 소문자로 변환 |
LOWER(ABC) -> abc |
UPPER |
문자열 전체를 대문자로 변환 |
UPPER(abc) -> ABC |
LENGTH |
문자열의 길이를 반환 |
LENGTH('홍길동') -> 3 |
LENGTHB |
문자열의 바이트 수를 반환 |
LENGTHB('홍길동') -> 6 |
CONCAT |
두 문자열을 결합. ||와 동일 |
CONCAT('sql', 'plus') -> sqlplus |
SUBSTR |
특정 문자 또는 문자열 일부를 추출 |
SUBSTR('SQL*PLUS', 5, 4) -> PLUS |
INSTR |
특정 문자가 출현하는 첫번째 위치 반환 |
INSTR('SQL*Plus', '*', 1, 1) -> 4 |
LPAD |
오른쪽 정렬 후 왼쪽에 지정한 문자 삽입 |
LPAD('sql', 5, '*') -> **sql |
RPAD |
왼쪽 정렬 후 오른쪽에 지정한 문자 삽입 |
RPAD('sql', 5, '*') -> sql** |
LTRIM |
왼쪽의 지정 문자를 삭제 |
LTRIM('*sql', '*') -> sql |
RTRIM |
오른쪽의 지정 문자를 삭제 |
RTRIM('sql*', '*') -> sql |
REPLACE |
첫번째 인수를 두번째 인수로 바꿔주는 함수 |
REPLACE('*ql', '*', 's') -> sql |
ROUND |
지정한 자리 이하에서 반올림 |
ROUND(123.17, 1) -> 123.2 |
TRUNC |
지정한 자리 이하에서 절삭(버림) |
TRUNC(123.17, 1) -> 123.1 |
MOD(m, n) |
m을 n으로 나눈 나머지 값 |
MOD(12, 10) -> 2 |
CEIL |
지정한 값보다 큰 수 중에서 가장 작은 정수 |
CEIL(123.17) -> 124 |
FLOOR |
지정한 값보다 작은 수 중에서 가장 큰 정수 |
FLOOR(123.17) -> 123 |
SYSDATE |
시스템의 현재 날짜 |
날짜 |
MONTHS_BETWEEN |
날짜와 날짜 사이의 개월을 개산 |
숫자 |
ADD_MONTHS |
날짜에 개월을 더한 날짜 계산 |
날짜 |
NEXT_DAY |
날짜 후의 첫 월요일 날짜를 계산 |
날짜 |
LAST_DAY |
월의 마지막 날짜를 계산 |
날짜 |
ROUND |
날짜를 반올림 |
날짜 |
TRUNC |
날짜를 절삭(버림) |
날짜 |
날짜 + 숫자 |
날짜에 일수를 가산하여 날짜 계산 |
날짜 |
날짜 - 숫자 |
날짜에 이루를 감산하여 날짜 계산 |
날짜 |
날짜 - 날짜 |
날짜와 날짜를 감산하여 일수 계산 |
일수 |
날짜 + 숫자 / 24 |
날짜에 식나을 가산하여 날짜 계산 |
날짜 |
'Web Hacking > 이론적인 내용' 카테고리의 다른 글
데이터 조작어(DML)이란? (0) | 2017.08.03 |
---|---|
데이터 정의어(DDL)이란? (0) | 2017.07.27 |
OWASP Top 10 2017 (0) | 2017.07.10 |
쿠키(Cookie)란? (0) | 2017.07.07 |
Session이란? (0) | 2017.06.26 |