본문 바로가기
데이타베이스

SQL 기본 질의어 정리

by minimax95 2020. 5. 21.

이번 포스팅에서는 데이터베이스 테이블을 생성하고 조작할 수 있는 SQL(Structured Query Language) 언어에 대해 살펴보겠습니다.

SQL은 '구조화된 질의 언어'로 데이터베이스의 표준 질의 언어입니다.

SQL은 데이터 정의 언어(DDL : Data Definition Language)와 데이터 조작 언어(DML : Data Manipulation Language)로 나눌 수 있는데  DDL은 스키마 정의, 테이블 삭제, 테이블 스키마 변경 등의 기능을 제공하고 DML은 레코드 추가, 삭제, 수정, 검색 기능을 제공합니다.

 

먼저 데이터 정의어를 살펴보겠습니다.

(1) 테이블 생성

CREATE TABLE 명령은 테이블의 이름과 컬럼의 이름, 데이터 타입을 기술하여 새로운 테이블을 생성해 줍니다. NULL 값이 허용되지 않는다면 제약조건에 NOT NLL을 지정해 주고 CREATE TABLE 명령의 일반적인 형태는 아래와 같습니다.

CREATE TABLE 테이블명

          ( 컬럼명 데이터타입 제약조건 [컬럼이름 데이터타입 제약조건] ···);

 

(2) 테이블 수정

생성된 테이블을 수정하기 위해서는 ALTER TABLE을 사용합니다.

일반적인 형태는 아래와 같습니다.

ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 제약조건;

 

ADD절 자리에 'DROP COLUMN 컬럼이름'을 사용하면 테이블의 해당 컬럼을 삭제할 수 있습니다.

'MODIFY 컬럼이름 데이터타입'을 기술하면 해당 컬럼의 데이터 타입이 변경됩니다.

'CHANGE 컬럼이름 새컬럼이름'을 기술하면 컬럼 이름이 변경됩니다.

 

(3) 테이블 삭제

테이블을 삭제하기 위해서는 DROP TABLE 명령을 사용합니다. 테이블 삭제시 연관된 인덱스와 뷰도 함께 삭제된다는 점을 주의해야 합니다. 그 일반적인 형태는 아래와 같습니다.

DROP TABLE 테이블명;

 

다음은 데이터 조작어를 살펴보겠습니다.

(1) INSERT문

테이블에 새로운 레코드를 추가 할 때에는 아래와 같이 기술합니다.

INSERT INTO 테이블명 ( 컬럼1, 컬럼2, ···, 컬럼n) VALUES (값1, 값2, ···, 값n);

 

(2) UPDATE문

테이블의 특정 컬럼의 값을 변경하고자 할대 사용하며 일부 레코드의 값을 변경하기 위해서는 WHERE 절을 기술해야 합니다. 일반적인 형태는 아래와 같습니다.

UPDATE 테이블명 SET 컬럼=값[, 컬럼=값] ··· [WHERE 조건];

참고로 [ ] 기호는 필요시 추가하거나 생략하겠다는 기호로 사용됩니다.

 

(3) DELETE문

테이블의 특정 레코드를 삭제하기 위해서는 DELETE 문을 사용하는데 이때 WHERE 절은 필수적으로 사용해야 합니다. 그렇지 않으면 테이블 전체가 삭제될 수 있기 때문에 주의해야 합니다. 일반적인 형태는 아래와 같습니다.

DELETE FROM 테이블명 WHERE 조건;

 

(4) 기본 SELECT 문

테이블의 특정 레코드를 검색하기 위해서 사용하며 그 기본 형태는 아래와 같습니다.

SELECT [DISTINCT] 컬럼1, 컬럼2, ···, 컬럼n

          FROM 테이블1[, 테이블2, ···, 테이블m]

          [WHERE 조건 [중첩질의]]

          [GROUP BY 컬럼1, 컬럼2, ···, 컬럼x

                [HAVING 조건]];

각 절의 역할을 살펴보면

SELECT 절은 관계 대수의 프로젝트 연산에 해당하며 질의 결과에 나타나는 컬럼을 열거하기 위해 사용합니다.

FROM 절은 질의를 수행하기 위해 접근해야 하는 테이블 나열에 사용됩니다.

WHERE 절은 관계 대수의 셀렉션 술어에 해당하며 FROM절에 나타나는 테이블의 컬럼을 포함하는 조건을 구성됩니다.

 

SQL의 가장 기본이 되는 질의형식에 대해서 살펴보았는데

오라클이나 MySQL, MSSQL 등에서 사용이 가능하기 때문에 기본 질의 형태는 꼭 기억해두시기 바랍니다.

 

물론 Workbench 등 GUI 환경에서 아래와 같이 클릭만으로 모든 것을 사용할 수도 있지만

GUI 환경을 너무 의지하면 기본 질의어까지 잊어버리는 사태가 나올 수도 있겠지요^^

 

감사합니다.

'데이타베이스' 카테고리의 다른 글

SQL 기타 SELECT 질의문 정리  (0) 2020.05.25
SQL 고급 질의어 정리  (0) 2020.05.23
R 프로그래밍[2] - 텍스트 마이닝  (0) 2020.05.19
MySQL Workbench 사용법  (2) 2020.05.15
R 프로그래밍[1]  (0) 2020.05.11

댓글