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
블로그 이미지

꼴통보안인

,