/ DATABASE

(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%';