본문 바로가기
SQL

[MYSQL] 테이블 생성부터 삭제까지 알아보자

by 포 키 2023. 10. 5.
728x90
반응형

 

 

오전 수업에 배웠던 테이블을 직접 생성하고 내용을 채우는 것부터 수정하고 삭제하는 것 까지! 포스팅으로 남겨두려한다.

나같은 입문자들에게도 도움이 많이 될 거라고 생각하지만, 솔직히 내가 기억안날때마다 보려고 작성하는 이유가 더 크다.

지금부터  MYSQL을 이용한 테이블 활용과정을 알아보자.

 

1. 테이블 생성하기

테이블을 생성하기 위해서는 일단 내가 사용하고자 하는 스키마 즉, DB를 선택해야한다.

그리고 CREATE를 사용해서 테이블을 만들어줘야하는데, 나는 아래와 같이 했다.

 

 

-- 사용할 스키마
USE mulcamp;

-- 테이블 생성
-- tasks 테이블을 생성하되, 테이블이 이미 존재하면 생성하지 않음
CREATE TABLE IF NOT EXISTS tasks (
	-- 데이터 타입, 자동으로 올라가라는 뜻
    task_id INT AUTO_INCREMENT
    -- 최대 255개의 문자열을 저장할 수 있는 VARCHAR 타입으로 생성하며, NULL을 가질 수 없다.
    , title VARCHAR(255) NOT NULL
    -- DATE 타입을 가진다.
    , start_date DATE
    , due_date DATE
    -- TINYINT 타입을 가지는 priority 열을 생성하고, NULL을 허용하지 않고 지정된 값이 없을 경우 3이 설정된다.
    , priority TINYINT NOT NULL DEFAULT 3
    -- TEXT로 표현하는 열 생성
    , DESCRIPTION TEXT
    -- task_id를 주요 key로 설정해 고유하게 식별하도록 한다.
    , PRIMARY KEY (task_id)
);

 

 

 

2. 테이블 채우기

테이블을 생성했으니 이제 테이블을 채워보자.

굳이 대문자를 사용할 필요는 없지만, 통상적으로 오류를 알아보기 쉽게 하려고 문법은 대문자로 작성한다.

내가 생성했던 컬럼들은 이것보다 더 많았지만, 몇개만 뽑아봤다.

만약 모든 것을 다 지정하고 싶다면, 아래 코드에서 title이 적힌 괄호 부분에 작성할 부분들을 추가해주면 된다.

VALUES는 데이터를 추가하기 위해 INSERT INTO와 함께 사용해야한다.

CURRENT_DATE() 는 실행하는 날짜를 의미한다.

만약 현재 코드에서 만기일을 실행하는 날짜로부터 2일 뒤로 하고싶다면, CURRENT_DATE() + 2 로 해주면 된다.

 

INSERT INTO tasks(title, start_date, due_date)
VALUES ('ADSP 준비', '2023-10-05', '2023-10-20');

SELECT * FROM tasks;

INSERT INTO tasks(title, start_date, due_date)
VALUES ('Learn INSERT', CURRENT_DATE(), CURRENT_DATE());

SELECT * FROM tasks;

 

 

3. 테이블 수정

테이블에 추가한 내용에 변경할 부분이 있는데 삭제를 하면 안되는 것이 있을 수 있다.

이 때, 사용하는 코드는 UPDATE이다.

 

-- 수정할 테이블 선택한다.
UPDATE tasks
-- 수정할 내용 추가한다.
SET priority = 10
-- 기본값 중 어디에 해당하는 것을 변경할 것인지 지정한다.
WHERE task_id = 7;

 

이렇게하면 쉽게 원하는 내용을 수정할 수 있다.

 

 

 

4. 테이블 내용 및 테이블 삭제

일반적으로 테이블 내용을 삭제하기 위해서는 DELETE를 사용한다.

이 때, 삭제하면 되돌릴 수 없기 때문에 중요한 내용이면 미리 백업을 해두거나, 신중하게 확인해보는 과정을 가지자.

 

DELETE FROM customer WHERE customer_id = 3;
SELECT * FROM customer;

DELETE FROM tasks WHERE title = 'Learn INSERT';
SELECT * FROM tasks;

 

위의 코드부분은 아니지만, 중간 부분을 일부 삭제해봤다.

아래에서 볼 수 있다싶이, 삭제되면 기본값으로 설정한 부분의 순서는 그대로 유지되며 재정렬되지 않는다.

 

 

임의로 테이블을 새로 생성하고 만들어봤는데, 아래 코드에서는 생략된 부분이 하나 있다.

내가 실행 시킬 때, 전체를 실행하지 않고 구문별로 실행을 했어서 청경채를 추가하는 부분을 2번 실행했었다.

그리고 아래의 DELETE는 2번 추가한 부분에서 첫부분을 삭제한 상태이고, 그에 따른 결과가 아래이다.

 

 

 

그리고 테이블 전체를 삭제하는 방법은 아래와 같다.

DROP TABLE을 사용해서 내가 삭제하고자 하는 테이블 명을 선택하면 끝이다.

 

DROP TABLE tasks;

 

 

이렇게 기본적으로 테이블을 만들어 내용을 추가해서 변경하고 삭제하는 것 까지 다뤄봤다.

개인적으로 Python 을 할 때보다 부담도 덜한 것 같고, 필수로 사용하는 코드들도 적은 느낌이라 좀 더 쉽게 느껴진다.

나중에 sqld 자격증 공부할 때도 도움될 것 같아서 재밌게 배우고 있다.

이 글을 보시면서 SQL의 기초를 알아보시는 분들도 모두 파이팅 하시길!

 

728x90
반응형