본문 바로가기
Database

SQL( Structured Query Language )

by 냉동커피 2021. 8. 27.

관계형 데이터베이스를 관리하기 위해 사용하는 인터프리터 언어이다.

 

1. DML( Data Manipulation Language )

: 테이블의 데이터를 조작(CRUD)하기 위한 언어

 

// 조건을 만족하는 모든 행의 해당 컬럼값을  반환 - R

SELECT [ DISTINCT ] 컬럼명

FROM 테이블명

[ WHERE 조건 ]

[ GROUP BY 컬럼명 ]    

[ HAVING 검색 조건 ]

[ ORDER BY 컬럼명 [ ASEC | DESC ] ]    // 컬럼값을 기준으로 정렬

 

// 해당 테이블에 컬럼값을 갖는 행을 삽입 - C

INSERT INTO 테이블명 [ ( {컬럼명 } ) ]

VALUES( { 값 , ... } );    

 

// 조건을 만족하는 모든 행의 컬럼값을 변경 - U

UPDATE 테이블명

SET { 컬럼명 =값 , ... }

[ WHERE 조건 ];   

 

// 조건을 만족하는 모든 행을 삭제 - D

DELETE FROM 테이블명

[ WHERE 조건 ]; 

 

// SELECT 문의 결과를 임시 테이블 형태로 뷰에 저장

CREATE VIEW 뷰 이름 AS SELECT 문;

DROP VIEW 뷰 이름;

 

// SELECT 문의 결과를 새로운 테이블로 생성

CREATE TABLE  테이블명 AS SELECT 문;

 

// SELECT 문의 결과를 동일한 구조의 테이블에 삽입

INSERT INTO 테이블명 SELECT 문;

 

1-1. 연산자

 

- DISTINCT : 중복된 결과를 제거

- [NOT] IN : alphabet=A OR alphabet=B OR alphabet=C --> alphabet IN ( A, B, C )

- BETWEEN a AND b : size > 0 AND size < 10 --> size BETWEEN 0 AND 10

- LIMIT n : 결과값을 상위 n개만을 반환 

- JOIN 기준 테이블명 ON 공통 컬럼 조건 :  공통 컬럼을 기준으로 테이블을 결합

- 컬럼명 AS 표시할 컬럼명 : 결과값으로 표시할 컬럼명을 명시

- CASE { WHEN 조건 THEN 결과 } END

- LIKE 조건 : 키워드의 일부만으로 검색 ( 와일드카드 : % | _ )  // DBMS 부하가 크다

- IS [NOT] NULL : NULL 값

- HAVING 조건 : GROUP BY에 의해 나타난 결과값에 조건을 부여

 

1-2. 집계 함수

 

- count(*) : 결과값의 개수를 반환

- max(컬럼명)/min(컬럼명) : 결과값의 컬럼 중 최대/최소를 반환

- avg(컬럼명)/sum(컬럼명) : 컬럼의 평균/합을 반환

 

1-3. 문자열 관련 함수

 

- length(컬럼명) : 해당 문자열 컬럼의 길이를 반환

- mid(컬럼명, 시작 인덱스, 길이) : 해당 컬럼의 문자열을 시작 인덱스에서 길이만큼만을 반환

- upper(컬럼명)/lower(컬럼명) : 해당 컬럼값을 대문자/소문자로 반환

 

1-4. 숫자 관련 함수

 

- round(컬럼명,반올림할 소수점 위치) : 컬럼값을 반올림하여 반환

- abs(컬럼명) : 컬럼값의 절대값 반환

- sign(컬럼명) : 컬럼값의 부호를 반환

- power(컬럼명,n) : 컬럼값의 n제곱을 반환 

- isnull(n) : 컬럼값이 null인 경우 n으로 치환해서 계산

 

 

2. DDL( Data Definition Language )

: 테이블을 정의, 수정, 삭제하기 위한 언어

 

- CREATE TABLE 테이블명 ( { 필드명 필드타입 제약조건 , ... } );

- ALTER TABLE 필드명 ADD | CHANGE | RENAME | ALTER | MODIFY [ ... ];

- DROP TABLE 테이블명;

 

2-1. 자료형

 

- BIT(길이) : 0과 1로 표현되는 바이너리 값

 

- TINYINT(길이) : 1바이트 정수

- SMALLINT(길이) : 2바이트 정수

- MIDIUMINT(길이) : 3바이트 정수

- INT(길이) : 4바이트 정수

- BIGINT(길이) : 8바이트 정수

 

- FLOAT(최소비트수) : 4바이트 부동소수점 방식의 실수

- DOUBLE(최소비트수) : 8바이트 부동소수점 방식의 실수

- DECIMAL(길이,소수점자리수) : 고정소수점 방식의 실수

 

- CHAR(길이) : 고정 문자열 , '\n' 문자 미포함 , 0~255

- VARCHAR(최대길이) : 가변 문자열 ( 내용에 맞게 크기가 정해진다 ) , '\n' 문자 포함 , 0~65535

- ENUM({ '값1' , ... }) : 문자열을 정수로 치환해서 사용 , 0~65535

 

- DATE : YYYY-MM-DD 형식의 타입, 1000-01-01 ~ 9999-12-31

- DATETIME : YYYY-MM-DD hh:mm:ss 형식의 타입, '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'

- TIMESTAMP : 현재 날짜와 시간을 기본값으로 갖는 타입, '1970-01-01 00:00:01' ~ '2038-01-19 03:14:07'

- TIME : hh:mm:ss 형식의 타입, '-838:59:59' ~ '838:59:59'- YEAR(길이) : YY 또는 YYYY 형식의 타입

 

3. DCL( Data Control Language )

: 테이블의 데이터 조작에 대한 권한을 부여하고 박탈하기 위한 언어

 

- GRANT 권한 ON 테이블명 TO 유저 정보;

- REVOKE 권한 ON 테이블명 TO 유저 정보;

 

'Database' 카테고리의 다른 글

무결성 제약조건( Integrity constraint )  (0) 2021.08.29
정규화( Normalization )  (0) 2021.08.29
데이터베이스( Database )  (0) 2021.08.29
인덱스( Index )  (0) 2021.08.29
데이터베이스 용어 정리  (0) 2021.08.24