개발 공부 기록/SQL

[SQL] 홍팍으로 배우는 데이터 CRUD

podori 2022. 5. 10. 21:54

이전 글에서 DB의 특징, 장단점에 대해서 다뤘었다.

CRUD란 Create(생성), Read(조회), Update(수정), Delete(삭제)를 간다히 줄여 부르는 말이다. DB에서 데이터의 저장단위로 테이블을 생성하고, 행과 열로 구성된다. 행은 하나의 record, 열은 attribute를 의미한다.

DB는 SQL 명령에 따라 움직인다. SQL로 작성된 명령을 쿼리(query)라고 한다. 쿼리를 통해 테이블을 만들고, 데이터를 CRUD할 수 있다.

 

데뷔년도 잘 모른다..

내가 만약 아이돌 테이블을 만들고 싶다고 가정하자. 여기서 '열'로 살펴보면, id | name | member_nums | debut_year 각각 속성들이다. 행 단위로 보면 {1, SHINee, 5, 2008} 이게 하나의 record가 된다.

위의 테이블은 내가 DB에서 만들 테이블을 엑셀로 나타낸 것이다.

 

'idols'테이블을 쿼리로 생성하려면 아래와 같은 쿼리문을 넣고 실행해주면 된다.

id와 member_nums, debut_year은 숫자값이므로 INTEGER(INT)로 선언해주고, name은 문자이므로 VARCHAR(제한하는 글자수)로 선언했다. 그러면 테이블이 성공적으로 생성이 된다.

 

먼저 CRUD에서 Read(조회)를 실행해본다.

'--'는 postgres에서 주석처리를 해주는 표시이다. 위와 같이 SELECT * FROM [table name]; 은 아래와 같이 전체 레코드를 조회해준다.

 

또 다른 아이돌을 추가해주고 싶어서 레코드를 추가할 것이다. 즉, CREATE 작업을 할 것이다.

레코드를 추가해주고, 전체 조회를 한 결과 성공적으로 추가된 것을 확인할 수 있다. 레코드를 추가해주기 위해서는 

' INSERT INTO [table name(field1 name, field2 name, ...)] VALUES [record]; ' 이렇게 쿼리를 적어주면 된다. 

 

id=4와 id=2 레코드들의 debut_year가 잘못된 것을 확인하여서, 레코드 수정(Update) 작업을 할 것이다.

UPDATE [table name] SET [수정하려는 field] WHERE [레코드의 고유성을 나타내는 값];

Aespa와 NCT의 데뷔년도를 잘못 작성해서 각자 2020년과 2017년으로 바꿔줬다. 만약 2017년에 데뷔한 NCT도 있고, 2019년에 데뷔한 NCT도 있다고 가정하자.

2017년에 데뷔한 NCT의 member_nums를 바꿔주고 싶은데 쿼리문 WHERE 다음에 name = 'NCT'라고 적어버리면

이름이 NCT인 레코드가 모두 바껴진다. 이런 불상사를 예방하기 위해서 WHERE 다음에는 레코드의 고유성을 나타낼 수 있는 값으로 적어주는 것이 좋다.

 

마지막으로 레코드를 삭제하는 작업, DELETE를 할 것이다.

member_nums가 5인 그룹을 삭제해야 한다. 이럴 때는 쿼리문을 어떻게 작성해줘야 할까?

' DELETE FROM [table name] WHERE [conditions]; ' 쿼리문을 입력해주면 된다. conditions, 즉, 삭제하려는 조건을 입력해주면 된다. 여러 개의 조건이 들어갈 수 있는데 이는 다음 번에 다루도록 하겠다.

 

  • 출처

https://www.youtube.com/watch?v=b9jTs2-X4F0&list=PLyebPLlVYXChdBToTPrmyePWczWe3l59m 

유튜버 홍팍 강의