1) 파일시스템 : 데이터 중복, 데이터 일관성 유지 안됨
2) DBMS (Database Management System)
▶ MySQL : 데이터 전송 속도가 빠르고 유지관리가 편하다.
※ MySQL 실행 명령문 :
systemctl start mysql
/usr/bin/mysql -u root -p
1. 데이터베이스를 만드는 SQL문 (한글 폰트 적용도 같이)
CREATE DATABASE 데이터베이스이름 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
2. 데이터베이스 삭제 SQL문
DROP DATABASE 이름;
3. 데이터베이스 사용
USE 이름;
테이블 만들기 :
필자는 ID, name, birthday라는 속성을 생성할 것이다.
▼ SQL에서 사용되는 데이터 타입
문자형:
- CHAR() : 고정형 문자길이타입
- VARCHAR() : 가변형 문자길이타입
숫자형:
- int() : 정수형 타입
- float() : 실수형 타입
NULL(공백이지만 Empty가 아님):
- null : 값이 없어도 됨
- not null : 값이 무조건 있어야 됨
CREATE TABLE member (
ID varchar(10) not null,
name varchar(10) not null,
birthday date not null
);
5. 테이블 확인하기 (MySQL 기준)
SHOW TABLES;
▼ 결과 화면:
Tables_in_SSAC |
---|
member |
6. 테이블 정보 상세 확인하기
DESC 테이블명;
▼ 결과 화면:
Field | Type | Null | Default | Extra |
---|---|---|---|---|
ID | varchar(10) | Null | ||
name | varchar(10) | Null | ||
birthday | date | Null |
7. CRUD (CREATE, READ, UPDATE, DELETE) 작성:
1) C - INSERT
INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES (값1, 값2);
INSERT INTO member (ID, name, birthday) VALUES ('kim', '홍길동','2021-08-20');
INSERT INTO member (ID, name, birthday) VALUES ('lee', '성춘향','2021-08-20');
INSERT INTO member (ID, name, birthday) VALUES ('hong', '김철수','2021-08-20');
▼ 결과 화면:
ID | name | birthday |
---|---|---|
ID | 홍길동 | 2021-08-20 |
name | 성춘향 | 2021-08-20 |
birthday | 김철수 | 2021-08-20 |
2) U - UPDATE
UPDATE 테이블명 SET 컬럼1 = 값1 (WHERE 컬럼2 = 값2) --> 컬럼2가 조건2인 데이터의 칼럼1을 값1로 변경한다.
UPDATE member SET name ='김미미' (WHERE ID = 'kim')
▼ 결과 화면:
ID | name | birthday |
---|---|---|
ID | 김미미 | 2021-08-20 |
name | 성춘향 | 2021-08-20 |
birthday | 김철수 | 2021-08-20 |
3) D - DELETE
DELETE FROM 테이블명 WHERE 컬럼1 = 조건1;
DELETE FROM member WHERE ID = 'kim';
ID | name | birthday |
---|---|---|
name | 성춘향 | 2021-08-20 |
birthday | 김철수 | 2021-08-20 |
4) R - SELECT
SELECT 컬럼명 FROM 테이블명 WHERE 조건문(컬럼1 = 조건1);
SELECT * FROM 테이블명; <- 모든 컬럼의 값을 가져온다.
SELECT name FROM member WHERE bithday = '2021-08-20';
name | birthday |
---|---|
성춘향 | 2021-08-20 |
김철수 | 2021-08-20 |
5) WHERE문 연산자:
① = : 같다
② != : 같지 않다(<>)
③ <, <=, >, >= : 부등호
④ BETWEEN A AND B : A와 B사이의 값 찾기
⑤ IS NULL : NULL인 값 찾기
6) 검색조건:
① AND : 그리고
② OR : 또는
③ NOT : 아닌 것
④ IN, NOT IN : 조건 범위 지정
7) 패턴 (LIKE): %, _
SELECT * FROM member WHERE name LIKE '정%'; #'정'으로 시작하는 단어 검색
SELECT * FROM member WHERE name LIKE '%정%'; #'정'이 포함된 단어 검색
SELECT * FROM member WHERE name LIKE '%정'; #'정'으로 끝나는 단어 검색
SELECT * FROM member WHERE name LIKE '김_'; #'김'으로 시작하는 두글자 단어 검색
SELECT * FROM member WHERE name LIKE '_김'; #'김'으로 끝나는 두글자 단어 검색
8. 테이블값 순서 정렬하기
SELECT * FROM member ORDER BY 값 ASC; # 오름차순, ASC가 기본값임
SELECT * FROM member ORDER BY 값 DESC; # 내림차순
9. 특정 조회 개수 설정
SELECT 컬럼명 FROM 테이블명 ORDER BY 타입 LIMIT 숫자;
10. MySQL 데이터베이스 실습 문제 풀이 :