데이터베이스 기초 - SQL과 CRUD의 개념, SELECT, INSERT, UPDATE, DELETE 쿼리 알아보기

반응형

개요

데이터베이스의 기초를 다루려면 기본적으로 SQL과 CRUD의 개념을 알고 있어야 합니다.

또한 SQL의 질의문(쿼리문)을 사용하여 데이터를 조작할 수 있어야 합니다.

 

이번 포스팅에서는...

  • 1) SQL과 CRUD의 개념
  • 2) 데이터베이스에서 데이터를 어떻게 조회(Select)해야 하는지
  • 3) 데이터베이스에서 데이터를 어떻게 추가(Insert)해야 하는지
  • 4) 데이터베이스에서 데이터를 어떻게 갱신(Update)해야 하는지
  • 5) 데이터베이스에서 데이터를 어떻게 삭제(Delete)해야 하는지

에 대한 내용을 다룹니다.


포스팅을 읽기 앞서...

이 글은 MySQL Workbench를 기준으로 작성되었습니다.

MySQL을 사용하여 데이터베이스와 테이블을 만들고,

SQL CRUD를 수행하는 방법은 아래의 포스팅을 참고해주세요.

 

MySQL 설치 후, CRUD 작업을 수행하기 위해서는 Safe Updates 옵션을 해제해야합니다.

옵션 해제 방법은 아래의 포스팅을 참고해주세요.

 

SQL의 CRUD를 설명하는 내용에는 테이블을 기준으로 설명 되어 있습니다.

SQL 조작 명령어는 테이블 외에 뷰도 포함되지만 기초 단계이므로 해당 내용을 생략하였습니다.

뷰의 개념과 사용 방법을 알고 싶다면 아래의 포스팅을 참고해주세요.

(데이터베이스를 처음 접하는 분들에게는 뷰 관련 포스팅은 별로 추천 드리지 않습니다 ^^;;)

 

 MySQL 로컬 데이터베이스를 외부에서 사용하는 방법을 알고 싶다면 아래의 포스팅을 참고해주세요.


SQL란? (SQL의 개념)

Structured Query Language의 줄인 말로, 한국어로는 구조화 질의어라고 하며 보통 에스큐엘 이라고 읽습니다.

관계형 데이터베이스 관리 시스템(RDBMS)에서 자료의 검색과 관리, 생성과 수정 등 자료를 처리하는 용도로 사용되는 언어입니다.

* 관계형 데이터베이스 (RDBMS, Relational DataBase Management System) : 관계형 모델을 기반으로 하는 데이터베이 관리 시스템

 

쉽게 이야기하면,

게시판의 내용을 보기 위해(Select) 데이터베이스에서 관련된 내용을 보여줘야 하거나,

게시판의 글을 작성하려면(Insert) 해당 내용을 데이터베이스에 추가할 수 있도록 하기 위한 명령 언어입니다.


CRUD란? (CRUD의 개념)

데이터베이스의 기본 4대 요소로써,

일반적으로 데이터베이스나 데이터 저장소에 수행되는 작업을 의미합니다.

CRUD는 데이터에 대해 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 작업을 할 수 있는 방법의 약어입니다.

데이터베이스에서 자료를 처리하는 SQL문을 기준으로 바꿔 말하자면 다음과 같습니다.

작업명 CRUD에서의 용어 SQL에서의 용어
생성 Create Insert
읽기 Read Select
갱신 Update Update
삭제 Delete Delete

 

SQL에서의 CRUD(INSERT, SELECT, UPDATE, DELETE)는

보통 어떤 RDBMS(Oracle, MySQL, MariaDB, MS-SQL 등)에서도 구문은 동일합니다.


INSERT : 데이터 추가하기

기본 구문

데이터베이스에서 INSERT문을 사용하여 테이블의 새 행을 하나 이상 추가합니다.

INSERT문의 기본 구문은 다음과 같습니다.

INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...)
VALUES (데이터값1, 데이터값2, ...)

 

또한 테이블의 컬럼 개수와 동일한 개수의 데이터를 입력하면 컬럼명의 내용을 생략해도 됩니다.

컬럼명을 생략하여 데이터를 추가할 경우에는 데이터베이스의 테이블에 저장된 컬럼 순서대로 데이터 값이 추가됩니다.

INSERT INTO 테이블명
VALUES (데이터값1, 데이터값2, ...)
  • INSERT INTO 테이블명
    • 데이터를 추가할 테이블명을 선택합니다.
  • (컬럼명)
    • 데이터를 입력할 컬럼명을 선택합니다.
    • 컬럼명은 테이블의 컬럼 개수와 입력하는 데이터의 개수가 같을 경우 생략해도 됩니다.
    • 또한, 기본값이 있거나 널(NULL)값을 저장할 수 있는 컬럼 혹은 숫자가 자동 증가하는 컬럼일 경우도 생략 가능합니다.
  • VALUES (데이터값)
    • 추가할 데이터를 순차적으로 나열합니다.
    • 앞에서 나열한 컬럼명의 개수와 동일하게 데이터의 값을 나열하여야 합니다.

예제

위와 같은 구조의 'users' 라는 이름의 테이블이 있습니다.

이 'users' 테이블에 데이터를 추가해봅시다.

 

1. 컬럼명을 입력하여 데이터 삽입하기

insert into users (name, age)
values ('eunbyeol', 33);

 

2. 컬럼명을 생략하여 데이터 삽입하기

insert into users
values ('tester', 123);
반응형

SELECT : 데이터 조회하기

기본 구문

데이터베이스에서 SELECT문을 사용하여 테이블의 행을 선택할 수 있습니다.

조건을 이용하여 특정 조건에 맞는 행들만 선택할 수도 있습니다.

선택된 테이블의 행들은 결과 셋(Result Set)으로 사용자에게 보여지게 됩니다.

SELECT문의 기본 구문은 다음과 같습니다.

SELECT	컬럼명
FROM	테이블명
[WHERE	조건]
  • SELECT 컬럼명
    • 선택한 테이블에 존재하는 컬럼을 선택합니다.
    • 컬럼 대신 별표(*)를 사용하면 테이블의 모든 컬럼을 선택할 수 있습니다.
  • FROM 테이블명
    • 데이터를 조회할 테이블을 선택합니다.
  • WHERE 조건
    • 조회할 데이터의 조건이 존재한다면 조건을 추가합니다.
    • 이 구문은 필수가 아니며 조건이 존재하지 않을 경우에는 생략해도 됩니다.

예제

'users' 라는 테이블에 추가한 데이터를 확인해 봅시다.

 

1. 테이블의 모든 결과 조회하기

select *
from users;

 

  • MySQL에서의 SELECT 쿼리 실행 결과 화면

 

2. 테이블의 특정 조건에 맞는 결과 조회하기

특정 이름의 유저를 조회하도록 하는 조건이 있는 SELECT 쿼리를 작성해 봅다.

조건은 WHERE 절을 사용하여 조회할 조건의 내용을 기재합니다.

  • 이름이 'eunbyeol'인 유저 조회하기
    >>> WHERE 절에 이름 컬럼(name)의 데이터 값이 'eunbyeol' 의 문자열과 동일하는지 조건을 확인해야 합니다.
select *
from users
where name = 'eunbyeol';

 

  • MySQL에서의 조건이 있는 SELECT 쿼리 실행 결과 화면

 


UPDATE : 데이터 갱신(업데이트)하기

기본 구문

데이터베이스에서 UPDATE문을 사용하여 기존 테이블에 존재하는 데이터의 값을 변경합니다.

조건을 이용하여 특정 조건에 맞는 행들만 업데이트할 수도 있습니다.

UPDATE문의 기본 구문은 다음과 같습니다.

UPDATE	테이블명
SET	컬럼명1 = 데이터값1
WHERE	조건
  • UPDATE 테이블명
    • 데이터를 갱신할 테이블을 선택합니다.
  • SET 컬럼명1 = 데이터값1
    • 선택한 컬럼에 기재한 데이터 값으로 데이터를 갱신합니다.
    • WHERE 절의 조건이 없을 경우, 테이블의 모든 행이 갱신될 수 있으므로 주의하여야 합니다.
  • WHERE 조건
    • 갱신할 데이터의 조건이 존재한다면 조건을 추가합니다.
    • 이 구문은 필수가 아니지만, 가급적 사용을 권장합니다.

예제

특정 조건에 맞는 유저의 이름을 변경해봅시다.

  • 이름이 'eunbyeol'인 유저의 이름을 'ko'로 변경하기
    >>> WHERE 절에 이름 컬럼(name)의 데이터값이 'eunbyeol'의 문자열과 동일한지 조건을 확인한 후
    >>> SET 절에 이름 컬럼(name)의 데이터 값을 'ko'로 입력합니다.
update users
set name = 'ko'
where name = 'eunbyeol';

 

  • SELECT 문으로 변경된 내용을 확인해봅시다.
select * from users;

 


DELETE : 데이터 삭제하기

기본 구문

데이터베이스에서 DELETE문을 사용하여 기존 테이블에 존재하는 데이터의 값을 삭제합니다.

조건을 이용하여 특정 조건에 맞는 행들만 삭제할 수도 있습니다.

DELETE문의 기본 구문은 다음과 같습니다.

DELETE FROM 테이블명
WHERE 조건
  • DELETE FROM 테이블명
    • 데이터를 삭제할 테이블을 선택합니다.
    • 주의 : 조건을 작성하지 않고 위의 쿼리만 실행할 경우 테이블의 모든 내용이 지워지니 조심해야 합니다.
  • WHERE 조건
    • 삭제할 데이터의 조건이 존재한다면 조건을 추가합니다.
    • 이 구문은 필수가 아니지만 테이블의 모든 데이터가 삭제되기 때문에 가능한 필수적으로 사용을 권장합니다.

예제

특정 조건에 맞는 행을 삭제해봅시다.

  • 이름이 'tester'인 유저의 모든 데이터(행) 삭제하기
    >>> WHERE 절에 이름 컬럼(name)이 데이터값이 'tester'의 문자열과 동일한지 조건을 확인합니다.
delete from users
where name = 'tester';

 

  • SELECT 문으로 변경된 내용을 확인해봅시다.
select * from users;


참고

반응형