[포스코x코딩온] 스마트팩토리 4주차 회고 | DDL, DML

이남웅·2023년 5월 13일
0
post-thumbnail

저번 게시물에서 데이터베이스의 기본적인 개념과 모델링에 대해 배웠다면 이번 시간에는 실제 데이터베이스를 만든 후 테이블을 추가하여 수정까지 할 수 있는 데이터 정의어와 데이터 조작어에 대해서 정리한다.

1. mysql 설치

https://dev.mysql.com/downloads/mysql/
https://dev.mysql.com/downloads/Workbench/

먼저 위의 링크에 들어가서 MySQL을 설치해주자. 윈도우는 MySQL와 Workbench가 같이 설치되지만 macos는 mysql과 Workbench를 따로 설치해주어야 한다.

intel Mac이면 x86으로 설치하고 Apple Silicon Mac이면 ARM으로 설치해주자. 참고로 Workbench 8.0.32에서 테이블로 들어갈 시 팅겨버리는 증상이 있는 것 같다. Workbench 8.0.31로 설치하여 사용하면 팅김현상이 사라지니 만약 팅기는 증상이 있으면 구버전을 설치하여 사용하는 방법도 좋을 것 같다.

2. CREAT문

CREAT문은 데이터베이스와 테이블을 생성하는 명령어로 생성할 때 이름과 열, 데이터 형식을 지정하여 생성하여야 한다.

데이터베이스 생성

CREAT DATABASE ACCOUNT DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

데이터베이스에 한글이 들어간다면 CHARACTER SET을 utf8-general_ci로 설정하여 생성하면 데이터베이스에 한글을 넣는 것이 가능해진다.

테이블 생성

CREAT TABLE users {
	id, int, PRIMARY KEY,
	name, varchar(50)
    };

데이터 타입

자주 사용하는 타입은 주황색으로 표시하였다. 테이블을 생성할 때 적절한 데이터 타입을 선택하여 생성하면 나중에 정렬을 하거나, 최적화를 할때 편하므로 사용하려고 하는 데이터에 맞는 데이터 타입으로 생성하면 좋을 것 같다.

3. ALTER문

생성된 테이블의 속성과 속성에 대한 제약사항이나 기본키, 외래키 설정을 바꾸고 싶다면 ALTER문을 사용하여 변경할 수 있다.

속성 추가

ALTER TABLE users ADD age int;

속성 삭제

ALTER TABLE users DROP COLUMN age;

속성 수정

ALTER TABLE users MODIFY age varchar(20);

속성 이름 변경

ALTER TABLE users RENAME COLUMN age to birthday;

4. DROP문

생성한 테이블을 삭제하고 싶다면 DROP문을 사용하여 테이블을 삭제할 수 있다. 단, 삭제하기 전 경고 메세지가 뜨지 않기 때문에 신중히 삭제하여야 한다.

테이블 삭제

DROP TABLE users;

5. TRUNCATE문

테이블을 삭제하지 않고, 초기화할 때 사용한다. 마찬가지로 초기화 하기 전에 경고메세지가 뜨지 않는다.

테이블 초기화

TRUNCATE TABLE users;

6. INSERT문

CREAT문으로 생성된 테이블에 데이터를 넣고 싶다면 INSERT문을 사용하여 데이터를 추가할 수 있다.

데이터 추가

INSERT INTO users (id, name, birthday) VALUSES(1, "nick", "1997-02-03");
INSERT INTO users VALUESE (1, "nick", "1997-02-03");

위의 INSERT문을 사용한다면 필드 순서대로 값을 기입해주어야 한다.

7. UPDATE문

테이블에서 특정 속성 값을 수정할 때 UPDATE문을 사용하여 수정이 가능하다.

데이터 수정

UPDATE users SET name = "denis" WHERE name = "nick";

UPDATE문을 사용할 때에는 WHERE 조건문을 같이 사용하여 조건에 맞는 속성 값을 지정하여 속성 값을 수정해야 한다. WHERE 조건문은 SELECT문과 같이 서술한다.

8. DELETE문

테이블에서 기존 투플을 삭제할 때 사용한다.

데이터 삭제

DELETE FROM users WHERE id = 1;

UPDATE문과 마찬가지로 삭제하고 싶은 속성을 지정해야 DELETE문을 사용할 수 있다.

9. SELECT문

데이터베이스의 데이터를 검색할 때 사용한다. SQL문에서 가장 많이 사용되는 문법이다.

데이터 검색 (모든 항목 출력)

SELECT * FROM users WHERE name = "denis";

데이터 검색 (id만 출력)

SELECT id FROM users WHERE name = "denis";

WHERE 조건문

WHERE 조건문에서 사용할 수 있는 조건문은 많다. 여기서 주의해야 할 점은 다른 프로그래밍 언어에서 대입연산자로 "="를 사용하고 비교연산자로 "=="를 사용한다. 하지만 SQL에서는 대입연산자가 없고, 비교연산자를 사용할 때 "="를 사용하므로 이 부분은 주의하는 것이 좋을 것 같다.

ORDER BY

결과 출력되는 순서를 조절할 수 있다.

오름차순(기본값)

SELECT * FROM users WHERE ORDER BY ASC;

내림차순

SELECT * FROM users WHERE ORDER BY DESC;

DISTINCT

중복된 데이터는 제거하여 출력할 수 있다.

SELECT * FROM users WHERE DISTINCT;

LIMIT

출력 개수를 제한 할 수 있다.

SELECT * FROM users WHERE LIMIT 5;

오늘은 SQL에 데이터를 넣기 위한 데이터베이스를 생성/삭제하거나 테이블을 생성, 삭제하는 데이터 정의어와 데이터를 검색하거나 수정할 수 있는 데이터 조작어에 대해 정리하였다. 5주차에서는 애플 아카데미 교육의 후기에 대해 작성하게 되므로, 6주차에 SQL을 마무리하는 시간을 가지게 될 것 같다.

0개의 댓글