DB11 데이터베이스의 좋은 성능을 위한 시행착오 데이터베이스에 관심을 가지고 프로젝트마다 ERD 설계를 자진해서 담당하다 보니데이터베이스의 성능을 향상 시키기 위한 개념을 계속해서 공부하게 된다. 처음 데이터베이스를 담당한 시기는 학부생 2학년 시기에 진행한 웹 프로젝트였고일반적인 로그인, 게시글 등록 기능 외에도 댓글 기능을 구현하기 위해 고민했던 경험이 있다. 이 때, 게시글 마다 댓글 테이블을 따로 관리하는 형식으로 설계를 진행했다.지금 생각해보면 정말 터무니 없던 방식이었는데이렇게 게시글마다 댓글 테이블을 설계하면 어떤 문제가 생길까?게시글마다 댓글 테이블 생성✅ 장점특정 게시글에 대한 댓글을 조회할 때 해당 테이블만 참조하면 되므로 조회 성능이 빠를 수 있음.게시글이 많아질수록 테이블이 분산되므로 특정 테이블의 데이터가 너무 많아지는 문제.. 2025. 2. 19. [SQL 기초 연습] 10. 이젠 테이블이 2개입니다 다음과 같은 직원(employees) 테이블과 부서(departments) 테이블이 있습니다.employees 테이블iddepartment_idname1101르탄이2102배캠이3103구구이4101이션이departments 테이블idname101인사팀102마케팅팀103기술팀38.현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요! > SELECT COUNT(*) FROM departments;39.모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요! > SELECT e.name, d.name FROM employees AS e JOIN departments AS d ON e.department_id = d.id; 40.'기술팀' .. 2025. 1. 16. [SQL 기초 연습] 9. 아프면 안됩니다! 항상 건강 챙기세요! 의사가 있으면 당연히 의사에게 진료받는 환자가 있겠죠? 아래와 같은 patients(환자) 테이블이 있습니다.idnamebirth_dategenderlast_visit_date1르탄이1985-04-12남자2023-03-152배캠이1990-08-05여자2023-03-203구구이1982-12-02여자2023-02-184이션이1999-03-02남자2023-03-1734.patients 테이블에서 각 성별(gender)에 따른 환자 수를 계산하는 쿼리를 작성해주세요! > SELECT gender,COUNT(*) FROM patients GROUP BY gender;35.patients 테이블에서 현재 나이가 40세 이상인 환자들의 수를 계산하는 쿼리를 작성해주세요! > SELECT COUNT(*) F.. 2025. 1. 16. [SQL 기초 연습] 8. LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. -- 연도와 개월을 같이 빼는 쿼리SELECT DATE_SUB(CURDATE(), INTERVAL 2 YEAR + INTERVAL 3 MONTH);-- 두 날짜의 차이 계산에도 사용 가능SELECT DATEDIFF(NOW(), DATE_SUB(CURDATE(), INTERVAL 5 YEAR));이제, 아래와 같은 doctors(의사) 테이블이 있습니다.idnamemajorhire_date1르탄이피부과2018-05-102배캠이성형외과2019-06-153구구이안과2020-07-2030.doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요! > SELECT name FROM doctors WHERE major = '성형외과';31.doctors 테이블에서 각.. 2025. 1. 16. [SQL 기초 연습] 7. 랭크게임 하다가 싸워서 피드백 남겼어요 아래와 같은 lol_feedbacks (LOL 피드백 테이블)이 있습니다.iduser_namesatisfaction_scorefeedback_date1르탄이52023-03-012배캠이42023-03-023구구이32023-03-014이션이52023-03-035구구이42023-03-0425.lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요! > SELECT * FROM lol_feedbacks ORDER BY satisfaction_score DESC;26.lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요! > SELECT * FROM lol_feedbacks ORDER.. 2025. 1. 16. [SQL 기초 연습] 6. 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! - LOL 유저 테이블 SELECT employee_id, hire_date, salary, RANK() OVER (ORDER BY salary DESC) AS rankFROM employeesWHERE hire_date BETWEEN '2025-01-01' AND '2025-01-15';-- WHERE 절과 함께 사용하여 특정 기간 내의 순위도 반영 가능 아래와 같은 lol_users(LOL 유저 테이블)이 있습니다.idnameregionratingjoin_date1르탄이한국13002019-06-152배캠이미국15002020-09-013구구이한국14002021-01-074이션이미국13502019-11-1521.lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주.. 2025. 1. 15. 이전 1 2 다음