웹 프로젝트/SQL

MySQL로 배우는 데이터베이스 개론과 실습 (2판)

JaeHyunShin 2024. 7. 11. 10:15

오늘은 데이터베이스의 기초부터 SQL 활용까지, 교재 1장부터 4장까지의 핵심 내용을 정리해 보려 합니다.

🛠️1장: 데이터베이스 시스템

DB의 전체적인 구조와 왜 필요한지를 다룹니다.

🛠️2장: 관계데이터 모델

 우리가 흔히 보는 '표(Table)' 형태의 데이터 구조를 이해하는 단계

 

 

🛠️ 3장: SQL 기초 (DML의 시작)

3장에서는 데이터를 넣고 수정하는 기본적인 방법들을 배웁니다. 백엔드 개발자로서 꼭 알아야 하는 데이터 질의어는 다시한번 정리하는 게 좋다고 판단했습니다.

INSERT, UPDATE는 테이블의 구조를 정의하는 DDL이 아니라, 데이터를 조작하는 **DML(Data Manipulation Language)**에 해당한다는 점 다시 한번 익혔습니다.

]

🛠️4장: SQL 고급 ( 함수와 서브쿼리 )

  • 내장함수, NULL 데이터베이스 자체에서 제공하는 함수들과, 값이 비어있는 상태인 NULL을 처리하는 방법을 배웁니다.
  • 부속질의 (Subquery) : 쿼리 안에 또 다른 쿼리가 들어가는 형태죠. 복잡한 조건을 걸 때 아주 유용합니다.

 강사님이 알려준 팁 중 하나는 cust_addr를 실무에서는 , (cust_pc, 검색주소)와 같이 나눠서 표현하는 경우가 많다는 것이다. 

 

 insert, update 과 같은 DDL 명령어들은  3장에서 배운다.

 

190페이지의 insert문 설명 중에 유의할만한 내용은 다음과 같다. 

1. insert 뒤에 오는 테이블 속성 목록과 값의 순서는 대응이 되어야 한다.

 

2. 하지만, 테이블의 속성을 명시하기 귀찮은 경우가 많다. 그런 경우에는 필드 목록은 생략한다.

다만! 이 경우에는,

 

alter 명령어의 경우 modify 키워드와 함께 사용한다. 

 

update 뒤에는 수정하려는 테이블 명이 오고, set명령어와 함께 사용한다.

update customer set cust_name='kim', cust_mileage = 9000
where cust_id = 'apple'

 

MySQL 실무 주의사항: 세이프 업데이트(Safe Update)

MySQL을 사용할 때 정말 중요한 포인트 하나! 오라클과 달리 MySQL에는 **'세이프 업데이트 모드'**라는 게 존재합니다.

 MySQL은 safe update 모드를 잠궈놓지 않으면, 보통 UPDATE나 DELETE를 할 때 WHERE 절(조건)을 실수로 생략하면, 모든 데이터가 날아갈 수 있어 위험하니 주의해야 합니다.

 

 

select 통해서 where 절 만들어 놓고, update문에서 해당 조건을 그대로 사용하는 것을 습관화하면 좋을 것 같다고 강사님께서 알려주셨습니다.

 

MySQL 데이터베이스에서 위험한 트랜잭션의 실행을   

 

MySQL safe 모드 관련 이미지

sql_safe_updates값을 1로 해놓고 이상한 sql update문의 실행을 막는다. 

 

SQLD 시험을 공부하면서도 공부했고 코딩테스트 SQL문제를 풀 때도 자주 나오는 명령어도 다시 한번 정리합니다.

 

테이블 구조를 바꿔야 할 때는 ALTER 명령어를 사용하며, 속성을 변경할 때는 MODIFY 키워드와 함께 조합해 사용합니다.