삼일오일사
close
프로필 사진

삼일오일사

github: @zjacom

  • 분류 전체보기 (115)
    • Book (66)
      • Learning SQL (9)
      • SQL 레벨업 (8)
      • 견고한 데이터 엔지니어링 (5)
      • 운영체제 (2)
      • 스파크 완벽 가이드 (9)
      • 파이썬 코딩의 기술 (29)
      • 분산 컴퓨팅 (4)
    • 개발 (31)
    • 기타 (10)
      • 출퇴근 공부 간단 정리 (7)
    • ELK (6)
  • 홈
  • 태그
  • 방명록

쿼리가 무한 루프에 빠지는 문제

상황 및 문제나는 다음과 같은 파이썬 코드로 MySQL 테이블을 생성했다.import mysql.connector# MySQL 연결 설정mydb = mysql.connector.connect( host=*****, user=*****, password=*****, database=*****)# 커서 생성mycursor = mydb.cursor()# 테이블 생성mycursor.execute("""CREATE TABLE IF NOT EXISTS table ( ...)""") 하지만 특정 필드의 이름에 오타가 있다는 사실을 알게 되어 MySQL 서버에 접속하여 DROP TABLE 쿼리문을 실행했지만 무한 루프에 빠지게 되었다. 원인MySQL 커넥터는 트랜잭션 기반으로 동작한다. 만약..

  • format_list_bulleted 개발
  • · 2024. 9. 19.
6장 - 집합 연산자

6장 - 집합 연산자

집합 연산자 UNION, INTERSECT, EXCEPT를 사용하려면 두 테이블은 다음과 같은 조건을 가져야 한다.두 테이블은 같은 수의 열을 가져야 한다.각 열의 자료형은 서로 동일하거나, 서버가 서로 변환할 수 있어야 한다.UNION 연산자의 경우 중복을 포함하기 위해서는 UNION ALL을 사용한다.MySQL 버전 8.0은 INTERSECT와 EXCEPT 연산자를 지원하지 않는다.집합 연산자 사용 후에 ORDER BY를 통해 데이터를 정렬할 수 있다.

  • format_list_bulleted Book/Learning SQL
  • · 2024. 9. 12.
4장 - 필터링

4장 - 필터링

not 연산자를 포함하는 where 절은 읽기 어려울 수 있으므로, 두 번째 코드처럼 변경하면 좋다.where not (first_name = 'STEVEN' or last_name = 'YOUNG') and create_date > '2006-01-01'where first_name 'STEVEN' and last_name 'YOUNG' and create_date > '2006-01-01'select customer_id, rental_datefrom rentalwhere rental_date = '2005-06-14';위와 같이 부등호를 사용하지 않고 between을 사용할 수 있다.select customer_id, rental_datefrom rentalwhere rental_date b..

  • format_list_bulleted Book/Learning SQL
  • · 2024. 9. 11.
5장 - 다중 테이블 쿼리

5장 - 다중 테이블 쿼리

한 테이블에 존재하는 값이 다른 테이블에도 있는지 확인하려고 외래키 제약조건을 선택적으로 생성할 수 있다. 다만, 두 테이블을 조인하기 위해 외래키 제약조건을 반드시 생성할 필요는 없다.내부 조인을 사용한다고 해도 조인 유형을 명시하는 것이 좋다.조인을 수행할 때 테이블의 순서는 중요하지 않다.SQL은 비절차적 언어이고, DBMS의 옵티마이저가 실행 계획을 세울 때, 어떤 테이블을 시작점으로 할 지 선택하고 조인의 순서를 결정한다.그러나 쿼리의 테이블이 항상 특정 순서로 조인되어야 하는 경우, DBMS 마다 다른 부가적인 설정을 통해 순서를 유지할 수 있다.책에서는 단순히 조인을 하는 것보다 하나 이상의 서브쿼리를 사용하는 편이 성능 및 가독성 측면에서 유리하다고 하는데, 개인적으로 나는 조인이 더 유리..

  • format_list_bulleted Book/Learning SQL
  • · 2024. 9. 11.

SQL 사전

SQL을 사용하면서 몰랐던 부분에 대해 정리하는 글(계속 수정)NULL 관련IFNULL(컬럼명, 대체값)GROUP BY 관련HAVING 절에 집계 함수를 사용할 수 있다.UNION 관련UNION을 사용하여 테이블을 합친 뒤 ORDER BY를 사용할 수 있다.윈도우 함수 관련PERCENT_RANK() OVER (ORDER BY 컬럼명)사칙연산 관련N DIV M : N을 M으로 나눈 몫을 구할 수 있다.ORDER BY 관련SELECT CONCAT(컬럼명, '추가')FROM TABLEORDER BY 1;만약 위와 같은 쿼리가 있을 때, 컬럼명이 숫자 자료형이라면 의도한 대로 정렬되지 않을 수 있다.그 이유는 숫자 자료형이 문자 자료형으로 바뀌기 때문이다.만약 숫자에 문자를 추가한 다음 숫자를 기준으로 정렬하고..

  • format_list_bulleted 개발
  • · 2024. 9. 10.
3장 - 쿼리 입문

3장 - 쿼리 입문

처음 MySQL 서버에 로그인하면 다음과 같이 연결 ID(11)를 알 수 있다.연결 ID는 쿼리가 잘못되어 오류가 발생할 경우 유용하게 사용할 수 있다.Your MySQL connection id is 11쿼리가 DBMS로 전송될 때마다 다음 과정을 거친다.이 구문을 실행할 권한이 있는가?원하는 데이터에 엑세스할 수 있는 권한이 있는가?구문의 문법이 정확한가?위 과정을 모두 거치면 쿼리 옵티마이저로 전달되고, 실행 계획을 선택한다.SELECT 절에 다음과 같은 항목을 추가할 수 있다.select language_id,'COMMON' language_usage, -- 숫자 또는 문자열과 같은 리터럴(literal)language_id * 3.1415927 lang_pi_value, -- 표현식upper(n..

  • format_list_bulleted Book/Learning SQL
  • · 2024. 9. 10.
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
  • 31514의 이전 블로그는 여기로!
전체 카테고리
  • 분류 전체보기 (115)
    • Book (66)
      • Learning SQL (9)
      • SQL 레벨업 (8)
      • 견고한 데이터 엔지니어링 (5)
      • 운영체제 (2)
      • 스파크 완벽 가이드 (9)
      • 파이썬 코딩의 기술 (29)
      • 분산 컴퓨팅 (4)
    • 개발 (31)
    • 기타 (10)
      • 출퇴근 공부 간단 정리 (7)
    • ELK (6)
인기 글
전체 방문자
오늘
어제
Copyright © 31514 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바