인공지능 개발일지

MySQL 기본 내용 총 정리 - create, use, insert, select, update, drop 본문

개발 지식/데이터베이스(DB)

MySQL 기본 내용 총 정리 - create, use, insert, select, update, drop

Prcnsi 2022. 3. 10. 14:53
728x90

안녕하세요!

저번에 한 번 SQl 관련해서 기본 create, insert, select 등을 간단하게 소개한 적이 있는데 이번에는 추가적으로 다른 기본 명령어도 더하여 총정리를 해봤습니다.

 

다음 SQL 게시물로는 테이블 조인, 외래키 등 심화 내용도 한 번 다뤄보도록 합시다.

 

참고로 MySQL Workbench를 사용하는 법은 지난번에 소개드려서 생략하였습니다.


 

MySQL의 기본 구조는 아래와 같습니다. MySQL 자체가 기본적으로 테이블 형태의 데이터를 어떻게 다룰 건가에 대한 문제이기 때문에 아래와 같은 내용을 다룹니다.

 

    1) 데이터 베이스 생성 (create)
    2) 데이터 베이스 선택 (use)
    3) 테이블 생성 (create) 
    4) 데이터 입력 (insert)
    5) 데이터 조회 (select) 
    6) 데이터 수정 (update) 
    7) 데이터 삭제 (drop) 

 

 
보시면 사실 1~3번까지는 초기 환경설정같은 느낌이여서 계속 수정할 일이 많이 없습니다.
그래서 이보다는 4~7까지의 내용을 수정하고 추가하는 것이 데이터베이스 관리의 핵심입니다.
 
먼저 오늘 소개할 내용을 모두 모은 코드는 다음와 같습니다. 명령어별 예제와 자세한 설명은 아래 첨부하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
--데이터 베이스 생성
CREATE DATABASE [데이터베이스명]
 
--데이터 베이스 선택
USE [데이터베이스명];
 
--DB/테이블 리스트 확인
SHOW DATABASES;
SHOW TABLES;
 
--DB/테이블 삭제
DROP [데이터베이스명];
DROP TABLE [테이블명];
 
-- 테이블 생성
CREATE TABLE 테이블명 (
    변수명 자료형(최대길이),
    변수명 자료형(최대길이),
PRIMARY KEY(NOT NULL 설정한 변수명)
) [테이블 옵션];
 
 
--테이블 구조 확인
DESC [테이블명];
 
--데이터 입력
insert into 테이블명(입력할 칼럼들) values(‘대응되는 값’, ~);
 
--데이터 조회
Select [조회할 칼럼] FROM [테이블명]; select * from signup;
 
--데이터 필터링(조건식) 조회
Select * FROM [테이블명] WHERE [칼럼 명]=‘값’; 
 
-- 데이터 수정
UPDATE [테이블명] SET 바꾸는 값 WHERE 조건
 
-- 칼럼 추가
alter table [테이블명] add [칼럼명][데이터 타입];
 
-- 칼럼 타입(자료형) 변경
alter table [테이블명] modify [칼럼명][바꿀 타입];
 
-- 칼럼 삭제
alter table [테이블명] drop [칼럼명] 
 
cs

 

0.0 용어 정리

이 데이터베이스(DB)는 여러 테이블을 묶어주는 역할을 합니다. 계속 보시다 보면 테이블, 데이터베이스라는 말이 나오는데 DB가 더 큰 단위고 테이블이 더 작은 단위여서 한 데이터베이스 안에 여러  테이블이 존재합니다.
예를 들어 A홈페이지 DB에 데이터 베이스 관리 테이블과 회원 관리 2개의 테이블이 있고
B홈페이지 DB에도 마찬가지로 같은 테이블이 존재한다고 할 때 영역을 구분해주는 역학을 합니다.

그리고 추가적으로 모든 명령어 뒤에는 세미콜론(;)을 꼭 붙여주셔야 합니다.

 

 

 

1.1 데이터 베이스(스키마) 생성

데이터 베이스는 스키마라고도 부릅니다. 이를 만드는 방법은 아래와 같습니다.
1
2
CREATE DATABASE [데이터베이스명]
 
cs
 

예를 들어 아래와 같은 'exdb'라는 이름의 DB를 만드는 명령어는 아래와 같습니다.

 

 

 

1.2 데이터베이스 선택

데이터베이스를 생성하였으면 꼭 데이터 베이스를 선택하고 테이블을 생성해야합니다.

이 데이터베이스를 선택하는 것이 이 DB영역으로 들어가는 역할을 하기 때문입니다.

1
2
USE [데이터베이스명];
 
cs

 

 

 

 

 

1.3 DB/테이블 리스트 확인, 삭제

DB나 테이블을 여러 개 만들었을 때 ls처럼 이들의 리스트를 확인하는 명령은 아래와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
--DB 리스트 확인
SHOW DATAbases;
 
--table 리스트 확인
SHOW TABLES;
 
--DB 삭제
DROP [데이터베이스명];
 
--table 삭제
DROP TABLE [테이블명];
cs

 

데이터 베이스 리스트를 확인하면 디폴트 DB(information~sys)와 함께 아까 만든 DB 리스트를 확인할 수 있습니다.

 

 

 

 

 

1.4 테이블 생성

기본 틀은 아래와 같고 변수에 대한 옵션은 변수명 자료형(최대길이) 뒤에 덧붙여주면 됩니다.

기본 틀
1
2
3
4
5
CREATE TABLE 테이블명 (
    변수명 자료형(최대길이),
    변수명 자료형(최대길이),
PRIMARY KEY(NOT NULL 설정한 변수명)
) [테이블 옵션];
cs
주요 옵션
-NOT NULL(PRIMARY KEY와 세트)
-AUTO_INCREMENT: 자동 인덱스 증가
-CHARSET=utf8: 언어 설정

 

 

 

 

 

1.5 테이블 구조 확인

테이블을 생성하였으면 우리가 설정한 대로 잘 만들어졌는지 확인을 해야겠죠? 테이블의 구조를 확인하는  명령어는 DESC입니다.

1
2
DESC [테이블명];
 
cs

 

 

 

 

 

1.6 데이터 입력

이때 AUTO_INCREMENT, DEFAULT, NULL값인 칼럼에 데이터 입력은 생략이 가능합니다.

 

1
2
insert into 테이블명(입력할 칼럼들) values(‘대응되는 값’, ~);
 
cs

참고로 터미널에서 데이터 한 행을 입력하고 확인하는 예제입니다.

 

 

 

 

1.7 데이터를 조회

입력한 데이터를 조회하는 명령어는 아래와 같습니다.

1
2
Select [조회할 칼럼] FROM [테이블명]; select * from signup; 
 
cs

참고로 [조회할 칼럼]이 '*'이면 모든 칼럼 조회를 뜻합니다.  아래는 데이터 세 행을 입력하고 확인하는 예제입니다.

 

 

 

 

1.8 데이터 필터링 조회

1
2
3
Select * FROM [테이블명] WHERE [칼럼 명]=‘값’; 
 
 
cs

위 예제에서 이름이 'hi'인 행을 조회하고 싶으면 signup 테이블에서 name=='hi'인 행을 조회하면 됩니다.

 

 

 

1.9 데이터 수정

원하는 위치의 데이터를 수정하고 싶으면 그 위치를 조건식으로 선택하고 바꿀 값을 적어주면 됩니다.

이때 조건을 생략하면 해당 칼럼의 "모든 행"에 대해서 값을 바꾸게 됩니다.

1
2
UPDATE [테이블명] SET 바꾸는 값 WHERE 조건
 
cs

예를 들어 데이터 조회 예제 테이블(1.7)에서 칼럼 'num'이 2024인 행의 'name'을 json으로 바꾸는 명령은 아래와 같습니다.

 

 

 

 

2.0 칼럼 추가/변경/삭제

1
2
3
4
5
6
7
8
-- 칼럼 추가
alter table [테이블명] add [칼럼명][데이터 타입];
 
-- 칼럼 타입(자료형) 변경
alter table [테이블명] modify [칼럼명][바꿀 타입];
 
-- 칼럼 삭제
alter table [테이블명] drop [칼럼명] 
cs

위의 예제 테이블에 'address' 칼럼을 추가하는 명령은 아래와 같고 나머지도 다 구조가 동일합니다.

이제 좀 감이 오시지 않나요?

 

 




자 그럼 여기까지 MySQL의 기본 내용을 "모두"정리해 보았습니다.

다음 시간에는 테이블 JOIN, 외래 키 등 심화 내용으로 데이터베이스 관리를 끝내봅시다!!

그럼 모두 지루한 글 읽어주셔서 감사하고 파이팅 하십시오.

감사합니다.

728x90