이번 프로젝트에서 mysql 을 쓰기로해서 한번 훑어보려고 포스팅!
개념
테이블을 그룹핑 한 것을 스키마(또는 데이터베이스라고도 함) 이라고 하고
이 스키마들을 합친 것을 데이터베이스 서버 라고 한다.
서버 접속
\connect --mysql root@localhost:3306
이렇게 mysql shell 에서도 가능하고
아니면
mysql workbench 실행해서 선택해서 접속이 가능한 것 같다.
스키마의 사용
스키마를 생성할 때에는
CREATE DATABASE 스키마이름;
*이렇게 뜰 수 있는데 이건 JS 타입이어서 그렇다
\sql 명령어를 쳐줘서 sql 타입으로 변경시켜주면 된다.
SHOW DATABASES;
를 입력했더니 현재 존재하는 데이터베이스들이 나온다.
USE 스키마이름;
SQL 과 테이블
테이블을 생성해보자
CREATE TABLE 테이블이름(
컬럼이름 데이터타입 제약조건 설정옵션,
컬럼이름 데이터타입 제약조건,
...
PRIMARY KEY(pk컬럼이름)
);
INSERT
row를 추가해보자
먼저 테이블을 확인하려면
DESC 테이블이름
을 치면 된다
INSERT INTO 테이블이름 (컬럼, 컬럼, 컬럼) VALUES (데이터값, 데이터값, 데이터값);
SELECT * FROM 테이블이름;
같은 방식으로 하나 더 넣어봤다
SELECT 컬럼,컬럼,컬럼 FROM 테이블;
이런식으로 보고싶은 컬럼만 select 할 수도 있다.
SELECT 컬럼, 컬럼, 컬럼 FROM 테이블 WHERE 조건;
조건을 만족하는 행만 출력되도록 할 수도 있다.
SELECT 컬럼 FROM 테이블 WHERE 조건 ORDER BY 컬럼 DESC LIMIT 2;
만약 이런식으로 적으면 컬럼을 기준으로 순서를 배열하기도 하고, LIMIT 을 통해서 id가 2까지만(1은 출력되지 않음) 출력될 수도 있다.
UPDATE
사용법
UPDATE 테이블이름 SET 컬럼 = 수정값 WHERE 조건;
UPDATE 테이블이름 SET 컬럼1 = 수정값1, 컬럼2 = 수정값2, ... WHERE 조건;
DELETE
사용법
DELETE FROM 테이블이름 WHERE 조건;
테이블 데이터 전체 삭제 하고싶으면
DELETE FROM 테이블이름;
테이블 일부 데이터만 삭제하고 싶으면
DELETE FROM 테이블이름 WHERE 조건;
DROP
데이터베이스를 삭제하고싶으면
drop database [데이터베이스 명];
not null <-> null 허용 변경
null 값 허용하도록 변경하고 싶으면
alter table 테이블이름 modify column 칼럼이름 칼럼타입;
not null 이도록 변경하고 싶으면
alter table 테이블이름 modify column 칼럼이름 칼럼타입 not null;
FK(외래키) 설정
alter table 테이블명 add foreign key( 컬럼명 ) references 참조한 테이블( 참조할 컬럼명 ) 옵션;
옵션에는 on delete cascade / on update cascade
alter table 테이블명 add foreign key( 컬럼명 ) references 참조한 테이블( 참조할 컬럼명 ) 옵션;
update는 이 값이 바뀔 때마다 나도 갱신, delete는 참조하는 키가 삭제되면 나도 삭제