[DB] mysql shell 사용해보기 #1 (스키마, 테이블 생성 및 사용)

채멈·2023년 11월 18일

DB

목록 보기
2/2
post-thumbnail

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 [테이블 이름];

profile
공부 기록 차곡차곡 ( ੭ ・ᴗ・ )੭

1개의 댓글

comment-user-thumbnail
2024년 1월 3일

굿~~^^*

답글 달기