[Django] DAY8. SQL 학습하기

이하얀·2024년 2월 8일
0

2024년 2월 8일 목요일

📙 강의 내용 요약

  1. Database와 SQL의 차이

  2. Table

    • 표 전체 = 테이블
    • No = 필드(PK)
    • 내용 = 필드
    • 1행 = 레코드

  1. 대분류 테이블과 아이템 테이블

    • 아이템 테이블의 “대분류_id” = 필드(FK)

    • 아이템 테이블의 대분류_id가 → 대분류 테이블의 id를 참조


  1. DDL(Data Definition Language)

    • 데이터 정의어를 말한다.

    • 테이블을 만들거나, 삭제하거나, 수정하는 명령어

-- 대분류 테이블 만들기
CREATE TABLE "대분류"(
    id integer primary key,
    이름 char(30),
);

-- 대분류 테이블 삭제하기
DROP TABLE "대분류";

  1. DML(Data Manipulation Language)

    • 데이터 조작어를 말한다.

    • 데이터를 조회/삽입/삭제/수정 하는데에 사용한다.

-- 대분류 테이블의 데이터 모두 조회
SELECT * FROM "대분류";

-- 대분류 테이블의 데이터 중 id가 3번인것만 조회
SELECT * FROM "대분류" WHERE id=3;

-- 대분류 테이블에 6번 아이디로 프로그래밍언어 삽입
INSERT INTO "대분류"(
	id, 이름
) VALUES (
	6, 프로그래밍언어
)

-- 대분류 테이블의 데이터 중 id가 3번인것을 삭제
DELETE FROM "대분류" WHERE id=3;

-- 대분류 테이브르이 데이터 중 id가 3번인것의 이름을 마이크로 변경
UPDATE "대분류" SET 이름="마이크" WHERE id=3;

  1. DCL(Data Control Language)

    • 데이터베이스의 권한 설정 명렁어를 말한다.

    • 옵션 : GRANT(권한제공), REVOKE(권한해제)


  1. TCL(Transaction Control Language)

    • 하나의 트랜잭션을 반영하기 위한 명령어를 말한다.

    • 옵션 : COMMIT(작업결과 반영), ROLLBACK(마지막 커밋 전으로 복원)

-- 대분류 테이블에 6번 아이디로 프로그래밍 언어 삽입
INSERT INTO "대분류"(
	id, 이름
) VALUES (
	6, 프로그래밍언어
);

COMMIT; -- 적용


♻️ 느낀점&인사이트

SQL의 기본 개념들은 조금씩 알고 있었지만, 생각보다 명령어를 정말 많이 잊어버린 게 실감됐던 강의였다.

학부때 데이터베이스라는 강의를 수강하면서 프로젝트도 진행했었는데..3개월간 정말 열심히 했었던 기억은 있는데 지식에 대한 기억을 깔끔히 증발된 것 같은 기분이다.

백엔드 개발을 할 때에도 JPA를 쓰거나 QueryDSL을 쓰다보니 쿼리를 안쓰게 되기도 하고 이 모든 것들을 쓰지 않는다고 해도 MySQL Workbench를 주로 사용하다보니 자동완성에 너무 익숙해져 버렸다.

이대로 두면 정말 잊어버릴 것 같으니..

책장에 고이 모셔둔 책을 다시 가져와서 개념부터 잘 채우고, 자꾸 쓰면서 다시 익혀야 할 것 같다!!

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글