SQL 45

[코딩테스트] Level3

이제 중급자 코스...> FROM A(NULL값이있는테이블) RIGHT JOIN B(NULL값이 없는 테이블) LEFT JOIN => FROM A(NULL값이 없는 테이블) LEFT JOIN B(NULL값이 있는 테이블) 문제2. 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. ..

SQL 2023.09.07

[코딩테스트] Level2

※ 도전을 두려워하지 말고 부딪혀보자! 틀려도 너무 연연해하지 않기. LEVEL1 복습 1. IF(조건, 참,거짓) 2. DATEDIFF(마지막날짜, 시작날짜) = 마지막날짜 - 시작날짜 일 수 구해줌 3. CASE WHEN 조건문 THEN 참일경우 결과값 ELSE 거짓일경우결과값 END AS 결과를 저장할 변수명 4. date_format(날짜변수, '%Y-%m-%d') 시간빼고 날짜 출력해줌. 5. WHERE date_format(날짜변수, '%Y-%m')='xxxx-xx'; 문제1. 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. ⭐⭐⭐⭐⭐문제2. 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를..

SQL 2023.09.06

[코딩테스트] Level1

원래 3번은 연습해야하지만...일단 두번만 동영상 강의 듣고 본격적으로 들어가볼려고 한다. 어려울 것 같지만 연습한다는 생각으로! 문제는 총 76 문제1. 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. 문제2. 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. 문제3. 동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요. 문제4. 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요. 문제5. 동물 ..

SQL 2023.09.01

[파이썬으로 SQL] pymysql기반 MySQL다루기

파이썬으로 Mysql을 다루려면 라이브러리가 필요로 하다. 그 중에서 가장 다루기 쉬운게 'pymysql' 🐩 pymysql라이브러리 설치 pymysql을 가지고 mysql을 어떻게 핸들링하는지는 여러 라인이 필요로 한데, 아래는 기본 코드 패턴을 정리한 것이다. 1. pymysql 모듈 import (모듈 == 라이브러리) 2. pymysql.connect() 메소드를 사용하여 mysql에 연결 * 호스트명,포트, 로그인, 암호, 접속할 DB 등 파라미터로 지정한다. 3. MYSQL 접속이 성공하면 Connection 객체로부터 cursor()메서드를 호출하여 cursor객체를 가져온다. 4. cursor객체의 execute()메서드를 사용하여 sql 문장을 DB에 전송 5. SQL 쿼리의 경우 Cur..

SQL 2023.08.30

[참고] MySQL INDEX

🐕‍🦺 인덱스 데이터베이스의 동작 속도를 높혀준다. 일부 스타트업은 백앤드 개발자가 DB를 관리하는 경우가 있다. 🐕‍🦺 인덱스 종류 클러스터형 인덱스 테이블에 기본키를 지정할 때 기본키 값에 따라서 해당 테이블을 잘 검색할 수 있도록 클러스터형 인덱스가 자동으로 구성된다. 이때 PRIMARY KEY값에 맞춰서 데이터 저장 순서를 재구성한다. 예를 들어서 영어사전을 보면 알파벳 순서대로 정렬하듯이, 이렇게 하면 데이터를 찾는 속도가 빨라진다. 즉 클러스터형 인덱스는 기본키에 따라서 최대 하나가 테이블당 만들어진다. ☞ 추가/ 삭제 불가능 보조인덱스 직접 테이블마다 우리가 추가/ 삭제할 수 있다. 이 보조 인덱스는 물리적인 데이터의 저장 위치를 바꾸는 것은 아니다. 일반 책의 목차 같은 것이고, 이를 통해..

SQL 2023.08.30

[문제풀이] 파이널 테스트

🐶 파이널테스트 문제1. 메인 카테고리, 서브 카테고리에 대해, 평균할인가격과 평균할인율을 출력해보기(이중그룹핑) 문제2. 판매자별, 베스트상품 갯수, 평균할인가격, 평균할인율을 베스트상품 갯수가 높은 순으로 출력해보기 ⭐ 문제3. 각 메인 카테고리에서 베스트 상품 갯수가 20개 이상인 판매자의 판매자별 평균할인가격, 평균할 인율, 베스트 상품 갯수 출력해보기 → 오답 ⭐ 문제4. 'items' 테이블에서 'dis_price'가 50000 이상인 상품들 중, 각 'main_category'별 평균 'dis_price'와 'discount_percent' 출력해보기

SQL 2023.08.29

SUBQUERY

🐶 서브쿼리 SQL구문 안에 별도로 SQL구문이 포함되어 있는 쿼리 보통 SQL구문 안에서 ()안에 또 다른 SQL구문을 추가하는 경우를 서브쿼리라고 한다. 많이 사용되진 않지만, 대용량 데이터에서는 쿼리문을 여러 번 돌리는 경우가 되기 때문에 성능 상의 이슈로 그렇게 많이 사용되지는 않는다. 다만, SQL문을 전문적으로 쓰는 사람들은 가끔 쓴다. 자주 사용하지 않아도 이게 서브쿼리인지는 알 필요가 있다. 사용하는 이유??? 테이블과 테이블 간 검색시 검색 범위 (테이블 중 필요한 부분만 먼저 가져오도록)를 좁히는 기능에 주로 사용되거나 또는 어떤 테이블 내에서 검색을 하기보다는 테이블 중에 필요한 부분만 먼저 추출하고 그 안에서 내가 원하는 데이터를 추출할 때, 이럴 때 쓰이는 것 기본적으로 테이블과 ..

SQL 2023.08.28

INNER JOIN, OUTER JOIN

🐕JOIN JOIN은 여러 테이블에서 필요로 하는 정보를 조합해서 추출할때 쓰는 문법 현업에서 다양한 테이블이 있는 경우가 많고, 데이터의 중복을 최소화하고 데이터의 무결성을 강화하기 위해서 여러 개의 테이블로 데이터를 분산해놓는 경우가 많다. 거기서 내가 원하는 데이터를 꺼내다보면 여러 테이블을 연결시켜야 하고 이때 쓰는 연산이 SQL JOIN 두 가지 측면으로 볼 수 있다. 1. 데이터 분석/ 데이터 추출 및 과학적 측면 분야에서는 JOIN을 많이 사용 2. 개발자 측면에서는 SQL JOIN 구문을 가급적 지양하는 편 프론트앤드: 화면에 보이는 부분으로 사용자의 요청을 받고 출력해줌. 백앤드: 어떤 아이콘을 클릭하였을 때, 이에 맞는 데이터가 들어가서 보여지는 경우가 많은데 백앤드에서 요청을 처리한다..

SQL 2023.08.28

HAVING

환경 구축 bestproducts 데이터베이스 생성 후, bestproducts_items.sql bestproducts_ranking.sql 으로 테이블 만들기 🐕 HAVING 환경설정 해당 데이터는 G마켓에 대한 각각의 카테고리 또 서브 카테고리 별로 상품들이 들어가 있는데, 가격, 순위 이런 정보들을 크롤링해서 자동으로 이를 MYSQL DB로 만든 것이다. HAVING절은 GROUP BY 안에서만 쓸 수 있다. 간단하게는 GROUP BY 를 쓴 SQL구문에서 그 안에 집계함수를 기반으로 한 조건 비교를 할 때 에는 GROUP BY뒤에 HAVING 절을 써서 조건 비교를 할 수 있음. SELECT provider FROM items GROUP BY provider HAVING COUNT(*) >=10..

SQL 2023.08.28