(MYSQL) 데이터베이스 기본 명령어
장고와 mysql을 연동해서 사용할때 나는 ORM을 사용해 DB에 접근하였기 때문에 쿼리문을 알고있지 않아도 큰 문제가 되지 않았지만 최소한의 쿼리문과 명령문을 쓸 줄 알아야 편하게 DB를 조작할 수 있었다. 정말 최소한 알아야 하는 명령문을 정리하였다.
- database의 명령문은 대문자와 소문자를 구별하지 않지만 대문자를 쓰는 것이 컨벤션이다.
1. database 생성하기
이곳에 쓰이는 DB이름이 장고 settings NAME에 작성되는 이름이다
sql> CREATE DATABASE {db이름};
2. 생성한 db 확인하기 ( 현재 계정이 접근할 수 있는 데이터베이스)
sql > SHOW DATABASES;
3. 사용할 db에 접속하기
sql > USE {db이름};
4. 접속한 db의 테이블 확인하기
sql > SHOW TABLES;
5. 접속한 테이블 내부에 있는 필드 확인하기
sql > DESC {테이블명};
6. 테이블 필드 추가하기
sql > ALTER TABLE {table명} ADD {추가할 필드 이름} {추가할 필드 타입};
sql > ALTER TABLE student_tb ADD age int; # EX) student_tb 테이블에 int 타입의 age 필드를 추가한다
7. 테이블 필드 변경하기
change, modify 2가지로 변경 가능하다
sql > ALTER TABLE {table명} CHANGE COLUMN {수정할 필드 이름} {새로운 필드 이름} {타입}; # ALTER TABLE customer CHANGE COLUMN name modelname varchar(10)
sql > ALTER TABLE {table명} MODIFY COLUMN {수정할 필드 이름} {변경할 타입/유형}; # ALTER TABLE customer MODIFY COLUMN name varchar(20) NOT NULL;
8. 테이블 필드 삭제하기(ROW삭제)
sql > ALTER TABLE {table명} DROP COLUMN {삭제할 필드 이름};
9. 테이블 생성하기 (workbench 사용추천)
sql > CREATE TABLE {table명}(
필드명 타입,
필드명 타입
PRIMARY KEY(필드명)
);
# 예
sql > CREATE TABLE student(
id int,
name char(20),
age int,
PRIMARY KEY(id)
);
10. 테이블의 이름 변경하기
sql > ALTER TABLE student_tb RENAME teacher_tb;
11. 테이블 삭제하기
sql > DROP TABLE student_tb;
12. 설정했던 db의 password 변경하기
sql > ALTER USER 'root@loaclhost' IDENTIFIED BY '{변경할 password}';
13. db생성시 주의 사항
- 기본 인코딩을 utf8로 설정한다 (그렇지 않으면 한글이 테이블에 들어가지 않는다)
sql > CREATE DATABASE {db이름} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
14. 이미 생성된 데이터베이스 언어 인코딩 utf8로 변환한다
sql > ALTER DATABASE {db이름} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
15. db의 문자세트 확인하기
mysql > SHOW VARIABLES LIKE 'character_set%';