
MySQL shell을 실행하고 root@localhost:3306에 연결하고 난 후
존재하는 database 보기
$ show databases;
$ show schemas;


database schema 생성
school과 관련된 테이블들을 다루는 database를 생성하여 보았다.
database 대신 schema를 넣을 수 있음
$ create database school;
$ create database [database 이름];
$ create schema [schema 이름];


제대로 schema가 생성되었는지 확인해보기 위해 show를 사용하면


schema(database) 삭제
school schema를 사용하기 전에 임의로 생성한 s schema를 삭제하려고 한다.
$ drop database s;
$ drop database [database 이름];
$ drop schema [schema 이름];


schema(database) 사용
show databases;를 통해 보았던 database 중 하나를 선택해 사용하고 싶을 때
$ use school;
$ use [database 이름];

존재하는 table 보기
school database에 들어와서 이 스키마 속에 생성되어 있는 테이블들을 보고 싶으면
$ show tables;

school db는 방금 생성한 스키마이므로 테이블이 아무것도 없어 Empty set이라고 나온다.
table 생성
현재 스키마에 새로운 table을 생성하고 싶으면
$ CREATE TABLE [테이블 이름](
[애트리뷰트 이름] [애트리뷰트 타입] [조건],
...
)ENGINE=[사용할 엔진 타입];
create table은 테이블을 [테이블 이름]으로 생성
해당 테이블은 Name, Student_number, Class, Major 4개의 애트리뷰트를 갖고 있으며, Name과 Student_number은 null을 허용하지 않는다. 또한 Primary key는 Student_number인 테이블이다.

위와 같은 형식으로 4개의 table을 추가적으로 생성하여 보았다. 결과는 show tables;를 통해 확인해보았다.

생성한 table의 상태 보기
$ desc [테이블 이름];

테이블 삭제
생성한 테이블을 삭제할 때도 마찬가지로 drop을 사용한다.
밑의 사진은 IF EXISTS 를 통해 테이블이 존재할 경우에만 삭제되도록 하였다.
$ DROP STUDENT;

테이블을 삭제할 때는 삭제 순서가 중요한데, Foreign key로 인해 외부 테이블에서 참조하고 있는 애트리뷰트가 존재하면
즉, 참조되는 테이블일 경우 삭제가 되지 않을 수 있다.
따라서 테이블 삭제 시 순서를 고려해주어야 한다.

테이블에 value 삽입
생성한 테이블에 튜플들을 넣어준다.
STUDENT 테이블에 설정한 애트리뷰트 순서대로 튜플을 넣어주었다.
$ insert into [테이블 이름] values
( , , , ... , ),
... 하나도 가능, 여러 개 가능,
( , , , ... , );

테이블 전체 튜플 보기
select 명령어를 통해 테이블에 있는 튜플들을 볼 수 있다. 모든 튜플들이 보기 위해서는 * 을 사용해 준다.
$ select * from [테이블 이름];

굿~~^^*