제로하우스

[TIL][DB] 23 SQL 데이터베이스 본문

DB&SQL

[TIL][DB] 23 SQL 데이터베이스

송제로투 2022. 6. 2. 22:51

Overview

SQL의 데이터베이스 및 테이블 관련 명령어에 대해서 알아본다. 데이터베이스는 한 개 이상의 테이블을 포함하며, 테이블은 데이터 기록을 포함하고 있다.

 

Database (Schema)

Schema 생성: CREATE DATABASE

CREATE DATABASE 데이터베이스_이름;

기본 옵션을 설정할 수도 있다. 예를 들어 데이터 인코딩 방식(CHARSET)과 DB에서 문자 데이터를 다루는 방식(COLLATE)를 설정해본다.

CREATE DATABASE <스키마 이름> DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Schema 조회: SHOW

SHOW DATABASES;

Schema 사용: USE

데이터베이스를 이용해 테이블을 만들거나 수정/삭제 등의 작업을 하려면, 먼저 데이터베이스를 사용하겠다는 명령을 전달해야 한다.

USE 데이터베이스_이름;

Schema 삭제: DROP

DROP DATABASE <스키마 이름>;

 

Table

명령어 기능 사용법
CREATE 테이블 생성 CREATE TABLE _ ();
ALTER TABLE 테이블 이름 수정 ALTER TABEL _ RENAME TO _
DROP 테이블 삭제 DROP TABLE _

Table 생성: CREATE TABLE

USE를 이용해 데이터베이스를 선택했다면, 테이블을 만들 수 있다.

CREATE TABLE <table> (
    <column> <DATATYPE> <(option)>,
    ...
)

예를 들어, id가 정수이며 pk인 user라는 이름의 테이블을 생성하는 경우 다음과 같다. NOT NULL을 사용하면 해당 필드의 값을 필수적으로 입력해야 하도록 설정할 수 있다.

CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name TEXT NOT NULL,
    age INT NOT NULL,
    address TEXT NOT NULL,
    email varchar(255)
);
필드 이름 필드 타입 기타 속성
id 숫자 Primary Key, 자동 증가
name 문자열 (최대 255)  
email 문자열 (최대 255)  

Table 수정: ALTER TABLE

테이블명 변경

RENAME TO를 사용하면, 테이블명을 변경할 수 있다.

ALTER TABLE <table_name> RENAME TO <new_table_name>;
ALTER TABLE articles RENAME TO news;    // 예시

새로운 컬럼 추가

ADD COLUMN을 사용하면, 새로운 컬럼을 추가할 수 있다.

ALTER TABLE news ADD COLUMN created_at TEXT;

단, 새로운 필드에 NOT NULL 옵션을 입력하면 기존의 데이터와 충돌하면서 오류가 일어나기 때문에, 이런 경우 DEFAULT 값을 넣어서 새로운 컬럼을 추가해야 한다.

ALTER TABLE news ADD COLUMN subtitle TExt NOT NULL DEFAULT 1;

Table 삭제: DROP TABLE

sqlite> DROP TABLE <table>;

Table 정보 확인

DESCRIBE user;

sqlite에서는 다음과 같이 사용할 수 있다.

sqlite> .schema <table>;
sqlite> .tables;    # table 조회

 

<실습> 외부 csv파일 불러오기

먼저 데이터베이스를 생성한다.

$ sqlite3 tutorial.sqlite3

다음의 명령어로 mode를 csv 파일을 읽어오는 상태로 변경한다.

sqlite> .mode csv

.mode를 입력해 보면 현재 output mode가 csv인 것을 확인할 수 있다.

sqlite> .mode
current output mode: csv

hellodb.csv라는 파일을 가져와서 examples라는 테이블에 넣어준다.

sqlite> .import hellodb.csv examples

불러온 데이터를 저장할 경우 아래의 명령어를 입력한다. data라는 테이블로 불러온 데이터를 data.db라는 파일로 저장된다.

sqlite> .save data.db data

 

Copyright © 2022 Song_Artish

'DB&SQL' 카테고리의 다른 글

[TIL][DB] 25 SQL Statements  (0) 2022.06.02
[TIL][DB] 24 SQL CRUD  (0) 2022.06.02
[TIL][DB] 22 SQL 문법 종류  (0) 2022.06.02
[TIL][DB] 21 SQL Intro  (0) 2022.06.02
[TIL][DB] 13 데이터 무결성  (0) 2022.06.02
Comments