DB
-
#1. 영화점 직원의 연락처 조회 당신은 DVD 대여점 체인의 데이터베이스 관리자입니다. 본사에서는 첫 번째 영화점(store_id=1)에서 근무하는 모든 직원의 이름(이름과 성을 공백으로 구분하여)과 연락처를 요청하였습니다. 이 정보는 향후 직원들과의 긴급 연락을 위해 필요합니다. 데이터베이스 조회를 통해 이 정보를 제공해야 합니다. 테이블명 staff: first_name, last_name, address_id, store_id 테이블명 address: address_id, phone 결과 예시: #2. 특정 국가의 고객 연락처 및 위치 정보 조회 당신은 국제 영화 대여 회사의 데이터베이스 관리자입니다. 회사는 마케팅 캠페인을 위해 'South Korea'에 거주하는 모든 고객의 이름(이름과 성을 ..
[sakila] join & subquery 연습#1. 영화점 직원의 연락처 조회 당신은 DVD 대여점 체인의 데이터베이스 관리자입니다. 본사에서는 첫 번째 영화점(store_id=1)에서 근무하는 모든 직원의 이름(이름과 성을 공백으로 구분하여)과 연락처를 요청하였습니다. 이 정보는 향후 직원들과의 긴급 연락을 위해 필요합니다. 데이터베이스 조회를 통해 이 정보를 제공해야 합니다. 테이블명 staff: first_name, last_name, address_id, store_id 테이블명 address: address_id, phone 결과 예시: #2. 특정 국가의 고객 연락처 및 위치 정보 조회 당신은 국제 영화 대여 회사의 데이터베이스 관리자입니다. 회사는 마케팅 캠페인을 위해 'South Korea'에 거주하는 모든 고객의 이름(이름과 성을 ..
2024.04.09 -
mysql sakila 데이터베이스를 활용하여 단일항 함수를 연습해보자. #1 staff의 first_name과 글자수를 출력하고 마지막에 홍길동의 글자수를 춫력하시오. #2 staff 테이블에서 홍길동: 비밀번호 형태로 출력하시오. 단 아직 비밀번호가 없는 경우 등록후 사용이라고 출력하시오. #3 city에서 도시명의 3번째 글자가 모음인 경우를 조회하시오. (city_id 오름차순 정렬) #4 city의 도시명을 아래와 같이 출력하시오.(city의 길이로 정렬한다.) [ A Corua(La Corua)] (도시명의 총 글자 수는 [] 를 포함 22자이다.) #5 address의 phone을 1234XXXXX1234의 형태로 출력하시오.(단 phone은 길이가 0이상이어야 한다.) #6 customer..
[sakila] 단일행 함수 활용 연습mysql sakila 데이터베이스를 활용하여 단일항 함수를 연습해보자. #1 staff의 first_name과 글자수를 출력하고 마지막에 홍길동의 글자수를 춫력하시오. #2 staff 테이블에서 홍길동: 비밀번호 형태로 출력하시오. 단 아직 비밀번호가 없는 경우 등록후 사용이라고 출력하시오. #3 city에서 도시명의 3번째 글자가 모음인 경우를 조회하시오. (city_id 오름차순 정렬) #4 city의 도시명을 아래와 같이 출력하시오.(city의 길이로 정렬한다.) [ A Corua(La Corua)] (도시명의 총 글자 수는 [] 를 포함 22자이다.) #5 address의 phone을 1234XXXXX1234의 형태로 출력하시오.(단 phone은 길이가 0이상이어야 한다.) #6 customer..
2024.03.13 -
mysql sakila database를 이용해서 기본 쿼리를 연습해보자. #1 address에서 "Way"가 포함된 고객을 대상으로 이벤트를 진행하려고 한다. 대상 고객의 전화번호를 출력해보자. 단 대소문자를 구별함에 주의하자. #2 고객의 충성도를 높이기 위해 새로운 적립금 시스템을 도입하기로 결정했습니다. 이 시스템의 핵심은 고객이 각 결제 때마다 결제 금액의 10%를 적립금으로 받는 것입니다. 이 새로운 시스템을 지원하기 위해, 모든 결제 내역에서 결제 금액, 적립될 금액(결제 금액의 10%), 고객 번호, 결제 금액, 담당자 아이디를 출력하시오. #3 영화의 등급에 따라 상세한 설명을 제공하는 조회를 필요로 합니다. 각 영화의 ID와 등급을 표시하되, 'G'는 'General Audiences'..
[sakila] 기본 쿼리 연습mysql sakila database를 이용해서 기본 쿼리를 연습해보자. #1 address에서 "Way"가 포함된 고객을 대상으로 이벤트를 진행하려고 한다. 대상 고객의 전화번호를 출력해보자. 단 대소문자를 구별함에 주의하자. #2 고객의 충성도를 높이기 위해 새로운 적립금 시스템을 도입하기로 결정했습니다. 이 시스템의 핵심은 고객이 각 결제 때마다 결제 금액의 10%를 적립금으로 받는 것입니다. 이 새로운 시스템을 지원하기 위해, 모든 결제 내역에서 결제 금액, 적립될 금액(결제 금액의 10%), 고객 번호, 결제 금액, 담당자 아이디를 출력하시오. #3 영화의 등급에 따라 상세한 설명을 제공하는 조회를 필요로 합니다. 각 영화의 ID와 등급을 표시하되, 'G'는 'General Audiences'..
2024.03.13 -
이번 포스트에서는 Spring Boot에서 단위테스트를 위한 H2 설정법에 대해 살펴보자. H2 Database 설정 h2의 모드 h2는 크게 3가지 모드로 사용할 수 있다. https://www.h2database.com/html/cheatSheet.html H2 Database Engine Using H2 Documentation Reference: SQL grammar, functions, data types, tools, API Features: fulltext search, encryption, read-only (zip/jar), CSV, auto-reconnect, triggers, user functions Embedded jdbc:h2:~/test 'test' in the user hom..
[H2] Spring Boot에서의 테스트를 위한 DB 설정이번 포스트에서는 Spring Boot에서 단위테스트를 위한 H2 설정법에 대해 살펴보자. H2 Database 설정 h2의 모드 h2는 크게 3가지 모드로 사용할 수 있다. https://www.h2database.com/html/cheatSheet.html H2 Database Engine Using H2 Documentation Reference: SQL grammar, functions, data types, tools, API Features: fulltext search, encryption, read-only (zip/jar), CSV, auto-reconnect, triggers, user functions Embedded jdbc:h2:~/test 'test' in the user hom..
2023.10.23 -
이번 포스트에서는 index를 적용하지 않았을 때, cluster index를 사용했을 때, 보조 index를 사용했을 때 성능 비교를 통해 효율적인 인덱스의 사용에 대해 고민해보자. 샘플 데이터베이스 설치 employees 스키마 설치 먼저 효율적인 테스트를 위해 많은 데이터를 포함한 데이터베이스 스키마를 설치해보자. https://dev.mysql.com/doc/employee/en/employees-installation.html MySQL :: Employees Sample Database :: 3 Installation The Employees database is available from Employees DB on GitHub. You can download a prepackaged arc..
[index] index 성능 확인이번 포스트에서는 index를 적용하지 않았을 때, cluster index를 사용했을 때, 보조 index를 사용했을 때 성능 비교를 통해 효율적인 인덱스의 사용에 대해 고민해보자. 샘플 데이터베이스 설치 employees 스키마 설치 먼저 효율적인 테스트를 위해 많은 데이터를 포함한 데이터베이스 스키마를 설치해보자. https://dev.mysql.com/doc/employee/en/employees-installation.html MySQL :: Employees Sample Database :: 3 Installation The Employees database is available from Employees DB on GitHub. You can download a prepackaged arc..
2023.10.12 -
이번 포스트에서는 Transaction Isolation level에 대해 살펴보자. 독립성과 Isolation Level Isolation Level 데이터베이스에서는 lock의 경직성에서 동시성을 확보하기 위해 트랜젝션에 isolation level을 줘서 독립성과 동시성을 적절한 레벨에서 선택해서 사용할 수 있게 한다. isolation level은 동시에 여러 트랜젝션이 처리될 때 특정 T.X가 다른 T.X에서 변경중이거나 조회중인 데이터를 불 수 있게 허용할 것인가를 결정하는 수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serialize 4가지가 존재한다. Read Uncommitted: 각 T.X의 commit, rollback 여부와 상..
[Transaction] 02. Transaction Isolation Level이번 포스트에서는 Transaction Isolation level에 대해 살펴보자. 독립성과 Isolation Level Isolation Level 데이터베이스에서는 lock의 경직성에서 동시성을 확보하기 위해 트랜젝션에 isolation level을 줘서 독립성과 동시성을 적절한 레벨에서 선택해서 사용할 수 있게 한다. isolation level은 동시에 여러 트랜젝션이 처리될 때 특정 T.X가 다른 T.X에서 변경중이거나 조회중인 데이터를 불 수 있게 허용할 것인가를 결정하는 수준으로 Read Uncommitted, Read Committed, Repeatable Read, Serialize 4가지가 존재한다. Read Uncommitted: 각 T.X의 commit, rollback 여부와 상..
2023.10.11 -
이번 포스트에서는 Transaction과 동작 방식에 대해서 살펴보자. 일반적인 쿼리의 기준은 mysql로 한다. 다 아는 Transaction이야기 Transaction의 정의 Transaction이란 데이터 처리의 한 단위로 개별 쿼리 단위가 아닌 사용자의 액션(업무)단위의 큰 틀로 묶어서 제어하게 된다. 트랜젝션의 목적은 데이터베이스 내의 데이터를 완전하게 유지하기 위해서 사용된다. 예를 들어 A 계좌에서 B 계좌로 100원을 이체해야하는 경우를 생각해보자. 이 과정에서는 2개의 update 문장이 필요하다. 즉 A 계좌에서 출금 update가 일어나고 B 계좌에서 입금 update가 일어나야 한다. 이 두 개의 sql을 하나로 묶은 것이 이체라는 업무이다. 만약 A 계좌에서 성공적으로 인출한 후 ..
[Transaction] 01. Transaction이번 포스트에서는 Transaction과 동작 방식에 대해서 살펴보자. 일반적인 쿼리의 기준은 mysql로 한다. 다 아는 Transaction이야기 Transaction의 정의 Transaction이란 데이터 처리의 한 단위로 개별 쿼리 단위가 아닌 사용자의 액션(업무)단위의 큰 틀로 묶어서 제어하게 된다. 트랜젝션의 목적은 데이터베이스 내의 데이터를 완전하게 유지하기 위해서 사용된다. 예를 들어 A 계좌에서 B 계좌로 100원을 이체해야하는 경우를 생각해보자. 이 과정에서는 2개의 update 문장이 필요하다. 즉 A 계좌에서 출금 update가 일어나고 B 계좌에서 입금 update가 일어나야 한다. 이 두 개의 sql을 하나로 묶은 것이 이체라는 업무이다. 만약 A 계좌에서 성공적으로 인출한 후 ..
2023.10.10 -
이번 포스트에서는 order by 절에 사용되는 subquery의 용법에 대해 살펴보자. subquery 조회 문장을 사용할 때 subquery는 select, from, where, having, order by 절에 사용될 수 있다. 일반적인 상황에서의 sub query들은 다 써봤는데 order by 절에서 사용되는 sub query라는게 딱히 잘 사용해보지 않았던 항목이라 정리하고자 한다. order by 절에서의 subquery order by 절에는 정렬하기 위한 컬럼이 오는 것이 일반적이다. 그런데 subquery는 값을 반환한다. 뭔가 아귀가 안맞는것 같은데 subquery로 나온 값들을 기준으로 정렬 한다고 생각하면 되겠다. 이때 주의할 점은 order by 절에서 사용하는 subquer..
[subquery] order by 절에서의 sub query이번 포스트에서는 order by 절에 사용되는 subquery의 용법에 대해 살펴보자. subquery 조회 문장을 사용할 때 subquery는 select, from, where, having, order by 절에 사용될 수 있다. 일반적인 상황에서의 sub query들은 다 써봤는데 order by 절에서 사용되는 sub query라는게 딱히 잘 사용해보지 않았던 항목이라 정리하고자 한다. order by 절에서의 subquery order by 절에는 정렬하기 위한 컬럼이 오는 것이 일반적이다. 그런데 subquery는 값을 반환한다. 뭔가 아귀가 안맞는것 같은데 subquery로 나온 값들을 기준으로 정렬 한다고 생각하면 되겠다. 이때 주의할 점은 order by 절에서 사용하는 subquer..
2023.04.13