본문 바로가기
> 개발/Database

[MySQL] 터미널로 MySQL 사용하기 : 테이블 생성/수정/삭제

by @일리 2023. 8. 1.

MySQL 데이터베이스와 상호작용할 수 있는 방법이 두 가지가 있다. 하나는 MySQL workbench를 이용하는 방법이고 또 다른 하나는 터미널을 이용하는 방법이다. 나는 workbench만 사용해보았고 터미널은 이용해본 적이 없어서 이번에 터미널로 데이터베이스를 다뤄보려고 한다. 잠깐이지만 터미널로 MySQL을 이용해본 소감은 workbench는 GUI 도구라서 CLI 기반인 터미널보다 데이터베이스와 상호작용하기가 더 쉽다는 점이다. SQL 명령어를 사용하긴 해야 하지만 버튼 클릭으로도 데이터베이스를 조작 가능하다는 점에서 workbench가 편리하긴 하다. 그렇지만 터미널 실행만으로 데이터베이스를 조작한다는 점에서 터미널로 MySQL을 조작하는 게 속도는 더 빠를 것 같다. 터미널로 MySQL을 조작하는 방법과 간단한 터미널 명령어까지 공부해보자!!

 

SHOW _______;

1. SHOW DATABASES;

전체 데이터베이스를 출력할 수 있다.

2. SHOW TABLES;

테이블을 보기 위해서는 우선 데이터베이스를 사용할지 알려준 다음에 SHOW TABLES; 명령어를 사용해야 한다. 나는 TEST 테이블을 보여주는 명령어를 작성했다.

CREATE _______;

1. CREATE DATABASES 이름 ;

새로운 데이터베이스를 만들기 위해서는 CREATE DATABASE 이름; 라는 명령어를 작성하면 된다. instagram 이라는 명령어를 작성했다.

2. CREATE TABLE users;

이제 인스타그램 안에 필요한 테이블을 만들어보자. 테이블을 만들 때는 데이터 타입과 제약조건을 같이 기술해줘야 한다.

테이블을 만들고 나서 DESC 테이블명; 을 하면 각 테이블의 데이터타입과 제약조건을 한 눈에 볼 수 있다! 그런데 여기서 실수를 두 가지 했다. 하나는 users 테이블에 uupdated_at 필드명 오타가 있는 것이고 또 다른 하나는 posts 테이블에 updated_at을 생략한 것이다.

 

테이블에서 잘못된 열 이름을 수정하려면 ALTER 명령어를 사용해야 한다.

 

1. uupdated_at에서 updated_at으로 컬럼명 수정하기

ALTER TABLE users
CHANGE COLUMN uupdated_at updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP;

2. 누락된 컬럼 추가하기

ALTER TABLE posts
ADD COLUMN updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP;

이렇게 하면 원하는대로 테이블이 수정된 것을 볼 수 있당!!

 

추가로 열을 삭제할 때는 ALTER TABLE 테이블명 DROP 컬럼명; 을 하면 된다. 

그리고 열의 자료형이나 제약조건을 수정하고자 할 때는 ALTER TABLE 테이블명 MODIFY 열이름 [자료형] [제약조건] 을 하면 된닷

 

DROP을 사용할 때는 항상 주의해야 한다. 테이블 안의 데이터까지 모두 삭제할 수 있기 때문이다 만약 테이블 형태는 그대로 냅두고 데이터만 삭제하길 원한다면 DELETE FROM 테이블명 [WHERE 조건]; 이나 TRUNCATE TABLE 명령; 을 해주면 된다.

 

 

 

댓글