즐겁고 활기찬 mysql의 세계 (1)

dongha1992·2020년 12월 13일
0

mysql

목록 보기
2/2
post-thumbnail

mysql 빠져나가는 단축키! 인생에서도 빠져나가고 싶어

시작

mycli -u root로 실행하면 세기말스러운 터미널이 뜬다. 이제 여지껏 외면했던 그 세계로 접속해보자!

DDL이란?

DDL은 Data Define Language로 데이터베이스의 Schema를 정의할 수 있는 쿼리문을 의미한다. CREATE, ALTER, DROP이 대표적인 쿼리문이다! 벌써부터 설렌다. 오늘 잠은 다 잤다.

데이터베이스를 만들어보자!

CREATE DATABASE my_favourite_artists; # Database 를 생성하는 명령어
SHOW DATABASES; # 현재 MySQL 에 저장되어있는 데이터베이스를 보는 명령어

내 인생 첫 데이터베이스를 만들고야 말았다..

USE my_favourite_artists; # 생성한 데이터베이스에 접근하는 명령어
SHOW tables; # 현재 데이터베이스 안에 저장되어있는 테이블들을 보는 명령어

USE로 생성한 데이터베이스에 접근하고 SHOW로 데이터베이스 안 저장되어있는 테이블을 본다. 이제 Aquery로 테이블을 만들자!

artists테이블이 있고 songs테이블이 있다. 아티스트와 노래는 1:N이다. 그러므로 songs 테이블에 아티스트 id를 주고 포린키로 가져온다.

가수 테이블 생성

 CREATE TABLE artists 
(
  id INT NOT NULL AUTO_INCREMENT, # id 칼럼을 정수, NULL 을 허락하지 않으며 값을 자동증가하게 설정합니다.
  name VARCHAR(100) NOT NULL, # name 칼럼을 100의 크기를 가지는 문자열, NULL 을 허락하지 않습니다.
  PRIMARY KEY (id) # 이 테이블의 Primary Key 를 id 로 설정합니다.
); # 쿼리문은 ; 로 구분되기 때문에 엔터를 쳐서 쿼리문을 멀티라인으로 작성할 수 있습니다.

DESC artists; # Description 을 축약해 놓은 명령어로써, 테이블의 정보를 보여줍니다.

설레.. 마치 매트릭스 세계에 들어온 거 같아..

노래 테이블 생성하기!

가수 테이블을 먼저 생성한 이유는 노래 테이블의 artist_id가 가수 테이블의 id를 참조하고 있기 때문이다! 포린키를 사용할 때 FOREIGN KEY 와 REFERENCES 이 두가지 옵션을 사용해서 원하는 칼럼을 외래키로 만들고 참조하는 테이블의 칼럼을 정의할 수 있다!

 CREATE TABLE songs
(
  id INT NOT NULL AUTO_INCREMENT,
  title VARCHAR(100) NOT NULL,
  lyrics VARCHAR(2000),
  artist_id INT,
  PRIMARY KEY (id),
  FOREIGN KEY (artist_id) REFERENCES artists (id) # 외래키를 걸어줄 칼럼과 참조할 테이블과 칼럼을 순서대로 적어줍니다.
);

성공쓰.. 인생 두 번째 데이블까지 완성해버렸다..

세미콜론(;)으로 테이블을 닫기 때문에 엔터로 줄 구분이 가능하다!!

노래 테이블 가장 아래 artist_id를 보면 Key가 MUL이다. 다른 테이블의 기본 키를 참조하는 포린키는 MULTIPLE로 표현되는데 여러 행이 동일한 값을 가질 수 있음을 의미한다!!

여러 노래가 동일한 artist_id 를 가질 수 있습니다. 한 아티스트가 여러 노래를 가지고 있기 때문이다!

DML 이란?

DML은 Data Manipulation Language로 데이터를 조작하는 쿼리문을 뜻한다. INSERT, UPDATE, DELETE문이 대표적인 쿼리문이다.

INSERT INTO

INSERT INTO artists (name) VALUES ('Radio Head'); 
# INSERT INTO 뒤에는 테이블 명과 칼럼값을 소괄호로 감싸 줍니다.
# VALUES 뒤에는 실제로 넣을 값을 소괄호로 감싸주고 앞서 테이블의 칼럼을 지정한 순서대로 데이터를 넣으면 됩니다.
INSERT INTO artists (name) VALUES ('Pink Floid');
INSERT INTO artists (name) VALUES ('새소년');

이제 테이블 전체를 조회하자!

SELECT * FROM artists; # * 는 와일드카드로써 테이블의 모든 칼럼을 조회하겠다는 의미와 같습니다.

테이블이 아주 앙증맞게 잘 생성됐다.

출처 : 위코드 노션

profile
글과 코드와 사람에 관해 생각합니다.

0개의 댓글