mysql로 진행되었습니다
Database Define Language의 약자
Schema를 정의 하는 역할을 합니다
CREATE
ALTER
DROP
세가지가 대표적이며, 데이터베이스를 만들고, 없애고, 수정할 수 있습니다
메타데이터를 다루는 쿼리문입니다
CREATE DATABASE # Database_name;
SHOW DATABASES;
USE # Database_name;
만들고 난뒤에 들어가게 되면
Database changed 라는 문구를 볼 수 있습니다
아직 테이블을 생성하지 않아 비어있습니다
CREATE TABLE # table_name;
( # datatype );
우선 가수와 음악 테이블을 만들어 줬습니다
테이블 명을 수정하거나, 컬럼을 추가 삭제, 수정 등을 할 때 사용합니다
ALTER TABLE # table_name
ADD # column_name datatype ;
column의 속성을 변경할 때 사용합니다
ALTER TABLE # table_name
MODIFY COLUMN # 바꿀 column_name datatype;
속성만 바꾸는게 아닌 column의 이름도 바꿔줄 때 사용 합니다
ALTER TABLE # table_name
CHANGE COLUMN # 바꿀 column_name 바꾸려는 column_name datatype;
컬럼을 삭제할 때 사용합니다
ALTER TABLE # table_name
DROP COLUMN # column_name;
테이블의 이름을 변경할 때 사용합니다
ALTER TABLE # table_name
RANAME # 바꿔줄 table_name
지금까지는 예시를 들기 위한 데이터를 넣는 방법이었고,
이제부터 제대로 진행해 보겠습니다
그전에 이미 넣어 놓은 데이터가 있어 삭제를 할건데
아예 초기화를 해서 사용하겠습니다
이떄 사용하는게 TRUNCATE이며 DELETE와 작동하는 방식이 다릅니다
지금의 경우는 artists 와 songs가 ForeignKey로 연결이 되어있기 때문에
foreignkey 설정을 해준뒤 삭제 해주겠습니다
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE table_name;
SET FOREIGN_KEY_CHECKS = 1;
데이터를 삭제
Data Manipulation Language
데이터를 조작하는 쿼리문 입니다
INSERT
UPDATE
DELETE
위 세가지가 대표적으로 사용하는 명령어 입니다
가수에 관한 데이터를 넣어 주겠습니다
데이터를 넣어줄 때 사용합니다
INSERT INTO # table_name (column_name)
VALUES (data);
총 3가지의 가수이름에 대한 데이터를 넣고
데이터의 정보를 수정할 때 사용합니다
Pink Floid의 이름을 Pink Floyd로 변경할건데
이때 이름을 바꿔주는 것이 UPDATE 입니다
UPDATE # table_name
SET # 바꿔줄 내용
WHERE # 어느 부분을 바꿔줄지
데이터를 삭제해 줄때 사용합니다
DELETE FROM # table_name
WHERE # 삭제할 데이터
Data Query Language의 약자로
데이터베이스 서버에서 데이터를 달라고 요청을 해주는 쿼리문 입니다
프론트와 백엔드간의 소통을 위한 API를 구현할 때, DB에 저장된 쿼리에서
가지고온 데이터를 응답으로 보내주는 경우가 많다
데이터는 만들었고, 내가 만든 데이터를 가지고 오겠습니다
SELECT # column_name
FROM # table_name;
"*" 을 사용해주게 되면 모든 걸 가지고 오겠다는 뜻입니다
column 이름을 설정해주어 가지고 오면 됩니다
내가 원하는 데이터를 가지오 올때 사용 하는 WHERE 입니다
WHERE 에서 찾은 데이터 중에서 내가 원하는 걸 가지고 올때 사용
LIKE를 통해서 무언가 찾고 싶을때 사용하는 명령어 관련해서는
아래 w3c에서 확인 가능 합니다
이런식으로 단어로 찾는 것도 가능합니다
둘의 공통 부분이 있을때, 두 개의 테이블을 결합할 수 있습니다
지금 만든 DB의 경우를 보면, artist_id로 연결이 되어있습니다
이 부분을 이용해서 가지고 오겠습니다
SELECT # column_name
FROM # table1_name
JOIN # table2_name
ON # 조건, 연결성이 있는 부분 column
반대로 해주어도 같은 결과를 가지고 올 수 있습니다
이렇게 연결이 되어있는 부분에서
내가 원하는 특정 가수만의 데이터를 가지고 오고 싶을때는
WHERE 문을 사용해서 가지고 오면 됩니다
더 자세한 데이터 가지고 오기
LIKE를 붙여 내가 원하는 데이터를 가지고 오게되면 됩니다
DDL ( Data Definition Language)
DML ( Data Manipulation Language )
DDL은 데이터를 정의하는 언어
DB, Table을 생성, 변경, 삭제 할때 사용하는 SQL문
DML은 데이터를 조작하는 언어
객체를 가공하는 역할 즉, row에 관련된 SQL문
TRUNCATE는 DELETE에 비해 붙일 수 있는 조건이 적습니다
TRUNCATE - 삭제시 id 초기화되서 다시 생성시 1부터 시작
DELETE - 삭제시 id값을 그대로 진행
SQL문을 사용해서 해주는 일을 Django에서 매니저를 통해 해결이 가능하지만
그래도 어떻게 사용하는지는 알아야 하지 않을까... 싶네여 😁