가독성을 위해 자동완성, syntax highlighting 기능을 지원하는 cli 툴 설치
MacOS
$ brew update && brew install mycli
Ubuntu
$ sudo apt-get install mycli
실행 명령어
$ mycli -u root
종류 : Create / Alter / Drop
종류 : Insert / Update / Delete
종류 : Select / Join / Like / Where 등의 조건
create문을 사용하여 테이블을 생성했다.
이어 테이블에 데이터를 insert 했고 아티스트 테이블에 들어간 가수 목록을 확인했다.
수정을 할 경우 update를 사용하는데, 가수 샘스미스의 이름이 틀렸으므로 이부분을 수정했다. 뿐만 아니라 수정에 이어 삭제도 시행했다.
songs 테이블에 각 아티스트에 맞는 노래 제목과 가사 데이터를 insert.
SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '노래1%';
# 위에서의 WHERE문은 = 연산자를 사용해서 정확한 값으로 비교를 했지만
# LIKE 문을 사용하면 이 처럼 노래1이 포함된 데이터를 쿼리할 수 있습니다.
SELECT songs.title, songs.lyrics FROM songs WHERE songs.title LIKE 'All%';
# songs.title의 값이 All 로 시작하면 쿼리문에 의해 데이터가 조회됩니다.
SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '%가져가도 돼요';
# songs.lyrics의 값이 가져가도 돼요로 끝나면 쿼리문에 의해 데이터가 조회됩니다.
따라서 결과는 songs 테이블에서 노래 1로 시작하는 모든 노래의 제목과 가사를 출력
join의 경우 각각 songs 테이블과 artist 테이블을 묶는것인데 이때는 외래키인 artist_id로 묶을 수 있다.
한 아티스트는 여러 노래를 가질 수 있으므로 1:다 관계가 성립한다.
SELECT artists.name, songs.title, songs.lyrics # 필요한 칼럼을 나열 합니다.
FROM artists # artists 테이블에
JOIN songs # songs 테이블을 결합시킵니다.
ON artists.id = songs.artist_id; # ON 뒤에는 교집합, 즉 연결성이 있는 부분(칼럼)을 적어줍니다.