오늘 포스팅에선 SQL 명령어 중, 테이블을 생성 / 변경 / 삭제하기 위한 명령어를 포스팅합니다.
저번 포스팅에선 데이터베이스를 생성했습니다. 예시로 RANDOM 데이터베이스를 생성해보고, 삭제했었는데요.
이렇게 데이터베이스 내에 들어가는 2차원 형태(행x열로 구성됨)의 데이터를 테이블(Table) 이라고 합니다.
앞으로 데이터 추출을 위해선 바로 이 테이블로부터 쿼리를 쳐서 원하는 데이터만 뽑아올 것입니다.
코드는 여기서 다운받을 수 있습니다. (chapter2.sql 다운로드)
✔Table of Contents
1. 데이터베이스 생성하기
먼저 새로운 쿼리를 만듭니다.(단축키: Ctrl+N)
그리고 다음을 입력하고 실행합니다.(단축키: F5)
CREATE DATABASE EDU
입력 후, 왼쪽을 보시면 DATABASE에 'EDU'가 생길 것입니다.
현재 사용중인 데이터베이스는 'master' 입니다. EDU를 사용하기 위해선 다음을 입력합니다.
USE EDU
참고로, 그냥 F5를 누르면 쿼리창에 쓴 모든 코드가 한번에 실행됩니다.
이를 막기 위해, 위 사진처럼 드래그를 하고 F5를 누르게 되면 드래그된 코드만 실행됩니다.
2. 테이블 생성하기
이번엔 [EDU] 데이터베이스 내의 테이블을 생성합니다. 이 테이블은 회원정보를 담을 테이블 'MEM_TABLE' 입니다.
CREATE TABLE [MEM_TABLE] (
[ID] VARCHAR(20) PRIMARY KEY,
[NAME] VARCHAR(20),
[GENDER] VARCHAR(2),
[AGE] INT,
[JOINMONEY] MONEY,
[JOINDATE] DATE NOT NULL,
[CAMPAIGN] BIT
)
위 코드를 실행하면 [MEM_TABLE]이라는 테이블이 하나 만들어집니다.
이 테이블 내의 열(컬럼)은 ID, NAME, GENDER, AGE, JOINMONEY, JOINDATE, CAMPAIGN이며, 각각 회원아이디, 이름, 성별, 나이, 가입금액, 가입일자, 수신동의여부를 뜻합니다.
사실 데이터 분석을 위해 추출하는 것이라면, 데이터 분석가가 데이터베이스나 테이블을 생성하진 않기 때문에 그냥 참고용으로만 봐주시면 될 것 같습니다.
여기서 중요한 것은 'PRIMARY KEY' 와 'NOT NULL'로, 둘은 테이블의 데이터 내 제약 조건을 뜻합니다.
- PRIMARY KEY: 중심 키라는 뜻으로, 이것이 설정된 열은 중복을 허용하지 않으며 비어 있으면 안 되는 유일한 컬럼입니다. (여기선 ID가 primary key이므로, ID가 중복되게 들어가거나 비어있으면 에러가 납니다.)
- NOT NULL: NULL이 되면 안된다는 뜻으로, 이것이 설정된 열은 비어 있으면 안 됩니다. (여기선 JOINDATE가 NOT NULL이므로, 이 값이 비어있으면 에러가 납니다.)
※ 참고 - 컬럼 타입(column type)
VARCHAR : 문자형
INT: 숫자형 - 정수
REAL: 숫자형 - 실수
MONEY: 화폐 단위
DATE: 날짜형
BIT: 논리형 (0 or 1)
생성된 테이블을 확인하려면 다음 쿼리를 실행합니다.
SELECT * FROM MEM_TABLE
아직 데이터가 없어서 값이 나오진 않지만, 이런 틀을 갖춘 테이블 [MEM_TABLE]이 만들어졌음을 알 수 있습니다.
3. 컬럼 추가하기
새로운 컬럼 'WEIGHT'를 추가해봅시다. 형식은 REAL 입니다.
ALTER TABLE MEM_TABLE ADD [WEIGHT] REAL
WEIGHT 컬럼이 추가되었다는 것은 위와 같이 확인할 수 있습니다.
[EDU] 데이터베이스 클릭 → 테이블 MEM_TABLE 클릭 → Columns 클릭 하면 어떤 컬럼들이 있는지, 형식은 무엇인지가 나옵니다.
4. 컬럼 형식(type) 변경하기
WEIGHT 컬럼의 형식을 REAL에서 INT로 바꾸고자 합니다. 다음 쿼리를 실행합니다.
ALTER TABLE MEM_TABLE ALTER COLUMN [WEIGHT] INT
잘 변경되었는지는 직접 확인해보세요! :)
5. 컬럼명 변경하기 / 테이블명 변경하기
이번엔 컬럼의 이름을 바꿉니다. WEIGHT가 아니라, weight(kg) 으로 바꾸겠습니다.
SP_RENAME 'MEM_TABLE.WEIGHT', 'weight(kg)'
만일 테이블명을 MEM_TABLE이 아니라 MEMBER로 바꾸고 싶다면 어떻게 하면 될까요? 위와 코드가 거의 비슷합니다.
SP_RENAME 'MEM_TABLE', 'MEMBER'
6. 데이터 삭제하기 / 테이블 삭제하기
이번엔 데이터를 삭제해보겠습니다.
지금 MEMBER 테이블에는 아무런 데이터가 없지만, 데이터가 있다고 가정하고 모든 데이터를 삭제하는 쿼리는 이렇게 만들면 됩니다.
TRUNCATE TABLE MEMBER
위 쿼리 실행 시, MEMBER 테이블에 있는 모든 데이터가 날라갑니다.
그럼 아예 MEMBER 테이블 전체를 삭제하려면 어떻게 할까요? 다음 쿼리를 실행합니다.
DROP TABLE MEMBER
위 쿼리를 실행하면 MEMBER 테이블이 흔적도 없이 사라지게 됩니다.
.
이렇게 해서 오늘 포스팅을 마무리합니다. 오늘은 데이터베이스와 테이블을 직접 생성해보고, 테이블명과 컬럼명을 바꾸고, 테이블 내 데이터를 삭제하는 과정을 공부했습니다.
사실 데이터 분석가의 경우엔 데이터베이스로부터 데이터를 추출하는 일을 하지, 데이터베이스나 테이블을 생성하는 일은 많이 하지 않는데요. 그래서 바로 다음 포스팅에선 직접 데이터를 추출하는 기본 명령어에 대해 공부해보겠습니다.
다음 포스팅에서 만나요! :)
'Skillset > SQL' 카테고리의 다른 글
SQL 서브쿼리(Sub Query) 예제 - select절, from절, where절 (4) | 2022.05.28 |
---|---|
SQL JOIN 예제 - INNER, LEFT, RIGHT, FULL, CROSS, SELF JOIN (0) | 2022.05.27 |
SQL SELECT 예제 - FROM, WHERE, GROUP BY, HAVING, ORDER BY (0) | 2022.05.26 |
SQL 데이터 추출 / 삽입 / 수정 / 삭제하기 (SQL select, insert, update, delete) (0) | 2022.05.25 |
SQL 설치 및 기본 명령어 알아보기 (0) | 2022.05.24 |