MYSQL은 오픈소스로 제공되는 RDBMS 소프트웨어 이다.
###어떤 DBMS를 선택하고 사용하는 것이 좋을까?
정답은 본인이 가장 잘 알고 잘 활용할 수 있는 DBMS를 사용하는 것이 좋다.
하지만 여기서 개발을 하는데 있어서 필요한 DBMS가 어떤것인지를 알고 그 DBMS를 사용하는 것도 중요한 선택사항중 하나이다.
DB를 선택하는 기준의 가장 큰 항목은 3가지 이다.
1. 안정성 2. 성능과 기능 3. 인지도와 커뮤니티
추가 작성되는 MYSQL에는 설치방법과 관련된 추가내용을 작성해보도록 하겠다.
스키마(schema)는 데이터베이스 내의 객체(table, view, index)를 담는 컨테이너 이다.
스키마(schema) 내의 객체(table)를 정의하고 관리할때 사용하는 쿼리문.
대표적인 DDL은 CREATE, ALTER, DROP, MODIFY 등이 있으며 DDL의 내용들은
공식문서를 참고해야 한다.
생성된 데이터 베이스 접근 명령어는
$USE {database_name}
데이터베이스 내부 테이블 생성명령어는
$CREATE TABLE {table_name} (filed, filed, filed, constraint);
예시로 작성한다면
$ CREATE TABLE posts(
-> id INT NOT NULL AUTO_INCREMENT,
-> title VARCHAR(100) NOT NULL,
-> content VARCHAR(3000) NULL,
-> user_id INT NOT NULL,
-> created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-> updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP,
-> PRIMARY KEY(id),
-> CONSTRAINT posts_user_id_fkey FOREIGN KEY (user_id) REFERENCES users(id)
-> );
정도로 만들어 볼 수 있다.
테이블의 구조를 변경할때는
ALTER TABLE {table_name} MODIFY {column}{data structure}{constraint}; 이다.
예시는
$ ALTER TABLE posts MODIFY content TEXT NULL;
정도로 들 수 있다.
테이블을 삭제 변경할때는
$DROP TABLE {table_name};
테이블 객체 내의 모든 데이터(row)를 삭제할때는
$TURNCATE TABLE {table_name};
을 활용한다.
data를 삭제해야할때는 삭제전에 백업했는지에 대해서 반드시 사전에 체크가 될 수 있도록 해야 위험한 상황을 예방할 수 있다.
데이터를 조작하는 쿼리문을 의미한다.(DDL은 table이라면 DML은 data)
대표적인 DML은 Insert, Update, Delete, Merge, Lock Table이 있으며 DML의 내용들은 공식문서를 참고해야 한다.
버전에 따라서 DML문법이 다를 수 있으니 DML 사용시 참고하고 유의해서 사용해야한다.
테이블에 data를 넣을때 사용하는 명령어는
$ INSERT INTO {table_name} (column1, column2,...) VALUES(data 1-1, data 1-2,..),(data2-1,data2-2,...);
예시는
$INSINSERT INTO posts(title, content, user_id) V VALUES('위코드 1일차','HTML과 CSS 익숙해지기',1),('위코드 2일차','Javascript 기본 문법 학습..',1),('위코드 3일차','웹서비스의 역사와 발전 세션을 듣고..',1);
이미 입력된 data를 수정(update)하는 명령어는
$UPDATE {table_name} SET {column_name}={new data} WHERE{condition};
예시는
$UPDATE posts SET content = '위코드 3개월 과정을 시작하며...' WHERE = user_id AND id=1;
입력되어 있던 데이터를 지우는 명령어는
$DELETE FROM {table_name} WHERE{condition};
예시는
DELETE FORM posts WHERE user_id=1;
정도로 볼 수 있다.
이때, 조심해야 할 사항은 DML에서도 명령어를 사용할때 수정(update), 삭제(delete)를 사용할때 WHERE절은 선택사항이다. 선택사항이란 의미는 WHERE절을 사용하지 않으면 data 수정의 오류가 발생하거나 table전체가 삭제될 수 있는 위험이 있으니 유의해야한다.
테이블에 저장된 데이터를 조회(검색)하는 쿼리문을 의미한다.
대표적인 DQL은 SELECT
application에서 사용되는 쿼리중에서도 가장 비율이 높고, 성능 이슈 가능성
버전에 따라서 DQL문법이 다를 수 있으니 DQL 사용시 참고하고 유의해서 사용해야한다.
기본적인 SELECT 문에 WHERE
, LIKE
를 사용하여 제한적인 조건이 적용된 데이터선택할 수 있다.
JOIN
키워드를 사용하면 서로 다른 테이블을 결합조건을 기준으로 매칭되는 데이터를 쿼리할 수 있다.
결합조건에서도 내부결합(INEER JOIN
)과 외부결합(OUTER JOIN
)을 활용하여 결합할 수 있다.
< 참고자료 - SQL statement 종류>