이번 포스트는 MySQL을 사용하여 데이터베이스의 DML을 정리해보려고 한다.
CRUD에 대해서 며칠 전에 읽은 기억이 난다.
CRUD는 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 생성, 읽기, 갱신, 삭제를 묶어서 하는 말이라고 한다.
CRUD에 해당하는 MySQL 문법은 다음과 같다.
CRUD | MySQL |
Create | INSERT |
Read | SELECT |
Update | UPDATE |
Delete | DELETE |
INSERT 명령
바로 명령문을 작성하기 전에 DDL을 연습할 겸 새로운 테이블을 정의해봤다.
mysql> CREATE TABLE CS ( language VARCHAR(50) grade VARCHAR(10) preference VARCHAR(10) );
mysql> ALTER TABLE CS MODIFY COLUMN language VARCHAR(50) NOT NULL;
mysql> ALTER TABLE CS MODIFY COLUMN grade VARCHAR(10) NOT NULL;
mysql> ALTER TABLE CS MODIFY COLUMN preference VARCHAR(50) NOT NULL;
mysql> ALTER TABLE CS ADD PRIMARY KEY(language);
한 번에 테이블 정의할 수 있었지만, 익숙해지기 위해 어려운 방법을 선택했다.
이제 실제로 데이터를 삽입시키는 INSERT명령을 수행해보겠다.
삽입 명령의 기본 문법 두 가지를 먼저 찾아보고 실제 데이터를 삽입해보았다.
기본 문법
mysql> INSERT INTO 테이블명 VALUES(val_1, val_2...);
mysql> INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES(val_1, val_2...);
실제 적용
mysql> INSERT INTO CS VALUES('C','high','low');
mysql> INSERT INTO CS VALUES('Python','high','high');
mysql> INSERT INTO CS VALUES('Go','middle','high');
mysql> INSERT INTO CS VALUES('Java','low','low');
mysql> INSERT INTO CS VALUES('Matlab','middle','low');
mysql> INSERT INTO CS VALUES('C++','middle','middle');
SELECT 명령
사실 방금 전에 SELECT명령도 배웠다.
바로 위에 있는 결과 사진을 보면 정말 간단하게 SELECT명령을 사용할 수 있는 것을 확인할 수 있다.
SELECT명령 문법을 정리한 뒤 여러 가지 SELECT명령을 수행시켜보았다.
기본 문법
mysql> SELECT * FROM 테이블명;
mysql> SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;
mysql> SELECT 컬럼명1 AS 변경할 컬럼명 FROM 테이블명;
실제 적용
mysql> SELECT language, grade FROM CS;
mysql> SELECT language AS Computer_language FROM CS;
기본적인 문법 외에도 WHERE와 논리 연산자를 사용하여 검색하거나
특정 조건을 기준으로 정렬하여 검색도 가능하다.
문법
mysql> SELECT * FROM 테이블명 WHERE 칼럼명 = '값';
mysql> SELECT * FROM 테이블명 ORDER BY 칼럼명 ASC;
실제 적용
mysql> SELECT language, grade FROM CS WHERE grade = 'high';
mysql> SELECT language, grade FROM CS ORDER BY language ASC;
마지막으로 LIMIT과 LIKE를 이용하여 조금 더 상세한 검색이 가능하다.
문법
mysql> SELECT * FROM 테이블명 WHERE 칼럼명 LIKE '글자%'; (글자로 시작하는 값)
mysql> SELECT * FROM 테이블명 WHERE 칼럼명 LIKE '%글자%'; (글자를 포함하는 값)
mysql> SELECT * FROM 테이블명 WHERE 칼럼명 LIKE '글자_'; (글자 + 다른 한 글자)
mysql> SELECT * FROM 테이블명 LIMIT 2;
실제 적용
mysql> SELECT * FROM CS WHERE language LIKE 'C%';
mysql> SELECT * FROM CS LIMIT 1;
UPDATE
데이터를 수정할 때 UPDATE명령을 사용하여 데이터를 수정할 수 있다.
UPDATE명령 문법을 정리한 뒤 여러가지 UPDATE명령을 수행시켜보았다.
기본 문법
mysql> UPDATE 테이블명 SET 컬럼명 = '수정하고 싶은 값';
mysql> UPDATE 테이블명 SET 컬럼명 = '수정하고 싶은 값' WHERE 특정 컬럼 = '값';
실제 적용
mysql> UPDATE CS SET preference = 'high' WHERE language = 'C';
그렇다 나는 C언어를 사실 좋아한다..ㅋㅋ
DELETE
데이터를 삭제할 때 DELETE명령을 사용하여 데이터를 삭제할 수 있다.
DELETE명령 문법을 정리한 뒤 여러가지 DELETE명령을 수행시켜보았다.
기본 문법
mysql> DELETE FROM 테이블명 WHERE 컬럼명 = '값';
mysql> DELETE FROM 테이블명;
실제 적용
mysql> DELETE FROM CS WHERE language = 'C++';
mysql> DELETE FROM CS;
와우 데이터가 모두 삭제됐다.
공부한 게 다 날아간 기분..ㅋㅋ
오늘 공부는 여기까지!
'Computer_Language > DataBase_Python' 카테고리의 다른 글
[DB][MySQL] pymysql을 사용하여 파이썬에서 DB 다루기 (0) | 2019.10.21 |
---|---|
[DB][MySQL] 데이터베이스의 DCL(Data Control Language) (0) | 2019.10.18 |
[DB][MySQL] 데이터베이스의 DDL(Data Definition Language) (0) | 2019.10.05 |
[DB][MySQL] 데이터베이스를 공부하기 전 기본 개념과 개발 환경 설정 (0) | 2019.10.03 |