본문 바로가기

프로젝트(진행중)/MySQL17

프로그래머스 SQL 공부 6 문제 설명 다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블과 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다. Column nameTypeNullable USER_ID INTEGER FALSE GENDER TINYINT(1) TRUE AGE INTEGER TRUE JOINED DATE FALSE GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USE.. 2023. 3. 3.
프로그래머스 SQL 공부 5 문제 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. 내 풀이 -- 코드를 입력하세요 SEL.. 2023. 3. 3.
속도를 고려한 SQL 1. SELECT * 자주 쓰지 않기 사용하지 않는 데이터를 호출하는 것만으로 속도 저하됨 TEXT 타입 데이터를 호출할 때 더 심해짐 2. COUNT(*) 사용하기 COUNT(컬럼) 으로 호출할 경우 해당 컬럼의 NULL값을 제외한 COUNT를 가져오게 되는데 이 때 NULL값을 일일이 체크하기 때문에 호출 속도가 저하됨. COUNT(*)는 NULL값의 경우도 모두 COUNT에 추가하기 때문에 더 빠름 3. WHERE 조건문의 왼쪽은 순수한 COLUMN만 쓰자 WHERE 00 = 00 을 쓸 때 왼쪽에 조건을 걸면 매 ROW 마다 조건을 변형하게 됨 4. LIKE쓸 때는 %를 가급적 뒤에만 붙이자 %를 앞에 붙이면 ~로 시작하는 문자열을 다 검색해야 해서 연산의 시간이 증가함 5. GROUP BY를 써.. 2023. 3. 3.
프로그래머스 SQL 공부 4 문제 설명 다음은 식당의 정보를 담은 REST_INFO테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column nameTypeNullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GENDER VARCHAR(1) TRUE DATE_OF_BIRTH DATE TRUE REST_REVIEW 테이블은 다음과 같으며 REVIEW_ID, REST_ID, MEMBER_ID, R.. 2023. 3. 3.