- 영진닷컴의 '그림으로 배우는 데이터베이스' 도서를 학습하고 정리합니다.
3-1 SQL 명령어
- Structured Query Language : 데이터베이스 조작 준비
- MySQL 기준으로 작성
1. 데이터베이스 조작 준비 및 접속 방법
- DBMS에 접속해야 한다. 데이터베이스에 접속하는 것으로 명령을 받아들일 준비가 가능하게 된다.
- 데이터베이스 접속은 명령을 입력할 수 있는 소프트웨어에서 데이터베이스에 접속하는 명령어를 실행하는 것이 일반적이다.
- DBMS에 따라 SQL 명령어가 다르지만 호스트명이나 사용자명, 패스워드, 데이터베이스명을 지정하는 경우가 많다.
- MySQL의 예시
mysql -h 호스트명 -u 사용자명 -p 데이터베이스명
2. 명령어를 사용하지 않고 접속하다
- DBMS에 따라 다르지만
전용 클라이언트(Client) 소프트웨어를 사용해 접속할 수 있거나,
- 브라우저에서
전용 관리 페이지에 접속해 데이터베이스를 조작하는 방법이 준비되어 있는 경우도 있다.
- 보다 고도의 작업이나 세세한 설정을 하고 싶다면 SQL을 사용해야 한다.
3-2 SQL 언어 문장
1. SQL 언어에는 규칙이 있다.
2. SQL 문장 예시
SELECT 컬럼명 FROM 테이블명 WHERE 조건;
(예시)
SELECT name
FROM menus
WHERE category = '한식';
3-3 CREATE DATABASE, DROP DATABASE
1. 복수의 데이터베이스를 관리할 수 있다.
- DBMS에서는 복수의 데이터베이스를 관리할 수 있다.
- 용도가 달라도 같은 데이터베이스 관리 시스템에서 관리할 수 있다.
- 또한, 앱 개발에 있어서 실제 운영 환경용 데이터베이스와는 별개로 테스트에서 사용하는 개발 환경용 데이터베이스를 생성하는 상황도 가능하다.
2. 데이터베이스를 생성한다.
- 새로운 데이터베이스를 생성할 때는 명령어로 데이터베이스 이름을 지정하여 생성한다.
- 데이터베이스 이름은 나중에 이름만 보았을 때 무엇에 사용되는 데이터베이스인지 구별하기 쉬운 이름으로 생성하는 것이 좋다.
CREATE DATABASE 데이터베이스명;
3. 데이터베이스를 삭제하다
- 데이터베이스가 필요 없게 되었을 때는 삭제할 수 있다.
- 데이터베이스 안에 저장되어 있는 내용들도 사라져 버리게 되므로 주의해야 한다.
DROP DATABASE 데이터베이스명;
3-4 SHOW DATABASE, USE
1. 데이터베이스 목록 표시
-
생성한 데이터베이스 이름은 목록에서 확인할 수 있다.
SHOW DATABASES;
-
데이터베이스를 생성한 후 데이터베이스가 올바르게 생성되었는지 확인하거나,
-
데이터베이스를 삭제하기 전이나 이후 설명할 데이터베이스를 선택할 때나 대상이 되는 데이터베이스의 이름을 확인하고자 하는 상황에서 이용된다.
2. 데이터베이스는 선택해서 사용한다
-
수많은 데이터베이스 중에서 어떤 데이터베이스에 대해 작업을 할 것인지 미리 지정해 둘 필요가 있다.
-
MySQL의 경우 USE 명령어를 사용하지만,
USE + 데이터베이스명;
- 앞으로 해당 이름의 데이터베이스를 사용한다고 선언
- 이후 모든 조작(SQL문)은 지정된 데이터베이스를 대상으로 행해진다.
-
데이터베이스 조작을 수행하기 전, 반드시 어떤 데이터베이스를 대상으로 하는 조작인지 미리 지정해 둘 필요가 있다.
3. 데이터베이스를 바꾸다.
- 다른 데이터베이스로 바꿔서 작업을 하고 싶을 때에는 다시
USE 데이터베이스명;을 실행해서 다른 데이터베이스를 지정한다.
3-5 CREATE TABLE, DROP TABLE
1. 테이블의 생성
- 데이터를 저장해 두기 위한 표를 테이블이라고 하는데, 이 테이블은 SQL을 통해 만들게 된다.
CREATE TABLE 테이블명(컬럼명 데이터타입);
2. 데이터베이스 안에서 복수의 테이블을 만들 수 있다
-
생성한 하나의 데이터베이스 안에는 복수의 테이블을 생성할 수 있다.
-
다른 종류의 데이터를 저장하고자 하는 경우에는, 별도의 테이블을 생성해서 테이블을 분리하여 데이터를 관리한다.
-
ex) 도서관 데이터베이스 안에는 소장하고 있는 책 정보를 저장하는 테이블과 책의 대출 이력을 저장하는 테이블을 생성하는 방식이다.
3. 테이블을 삭제, 확인한다
테이블 삭제
- 테이블이 필요 없어지거나 잘못 생성된 경우에는 테이블을 삭제할 수 있다.
DROP TABLE 테이블명;
테이블 목록 확인
- 생성한 테이블이 제대로 만들어졌는지, 혹은 데이터베이스 내에 어떤 테이블이 있는 확인할 때 사용한다.
SHOW TABLES;
3-6 INSERT INTO
1. 레코드(행) 추가
INSERT INTO 테이블명 (컬럼명(들)) VALUES (입력할 값);
2. 데이터 형에 주의
- 레코드를 추가할 때는 컬럼의 데이터 형(Data Type)에 맞는 값을 지정해야 한다.
- DBMS에 따라 동작은 다르지만, 컬럼에 할당되어 있는 데이터 타입과 다른 값을 저장하려고 하면
- 에러가 나거나 그 컬럼의 데이터 형에 맞도록 포맷(Format)을 고쳐서 저장될 수도 있다.
- ex) 숫자형 컬럼에 굳이 문자열을 넣으려고 하면 MySQL 에서는 자동으로 int 컬럼의 값은 '0'이 입력된 상태가 된다.
- 또한 문자형 컬럼에 숫자 1을 넣어보면 자동으로 문자형인 '1'로 저장된다.