Oracle Select vs OR vs IN 비교 약 2만 건 정도의 데이터를 조회하는 API를 개발해야 하는데, 하나씩 조회, OR 연산자 사용, IN 연산자 사용 중 어떤 방법이 성능상 유리할지 궁금했다. 당연히 모두가 아는 결과를 테스트하는 것일 수도 있지만.. 내 눈으로 직접 확인해 보아야 믿을 수 있을 것 같다.. . 실제 서비스 환경과 동일하게 SpringBoot, MyBatis, Oracle 환경으로 테스트하였고, 오라클에서 IN 절에 허용되는 최대 식은 1,000개인 이유로 1,000건 단위로 분할조회 하도록 하였다. 1,000건이 초과하면 ORA-01795 maximum number of expressions in a list is 1000 예외를 던진다고 한다. (그런데 테스트 당시에..
Python MS-SQL 연동 (pymssql) Documentation pymssql 설치 pip install pymssql MS SQL 연동 Auto commit 을 사용할 경우 conn.autocommit(True) 을 설정해주면 된다. conn = pymssql.connect(server, username, password, database) # MSSQL 접속 cursor = conn.cursor() # 쿼리 생성과 결과 조회를 위해 사용 SELECT 한글 깨짐을 해결하기 위해 .encode('ISO-8859-1').decode('euc-kr') 방법을 많은 분들이 사용하는 듯 하다. cursor.execute('SELECT * FROM POST;')..
SQL 구문 순서 SQL 구문의 순서는 먼저 다음과 같습니다. SELECT 컬럼명 --------------------- (5) FROM 테이블명 ------------------- (1) WHERE 테이블 조건 --------------- (2) GROUP BY 컬럼명 -------------------- (3) HAVING 그룹 조건 ----------------- (4) ORDER BY 컬럼명 -------------------- (6) SQL 의 여정을 시작해볼까요?! 1. FROM : SQL은 구문이 들어오면 테이블을 가장 먼저 확인합니다. 테이블이 없는데 다른 것들을 먼저 조회하면 헛수고니까요! 2. WHERE : 테이블명을 확인했으니, 테이블에서 주어진 조건에 맞는 데이터들을 추출해줍니다. ..
안녕하세요! 오늘은 SQL에 대해 정리해보았어요. 가장 메인인 Select, From 에 대해서 말이죠! 항상 배웠어도 시간이 지나면 머릿속에서 지워지는 친구들.. 보기 쉽게 정리해서 잊어버리지 않도록 해보아요! 시작하기 전에 어디서 많이 봤을법한 가장 기본적인 slq문이죠? select * from student; => student 테이블에 있는 모든 데이터를 모여줘! 라는 의미입니다. 그 다음은 특정 테이블의 구조를 조회하는 DESC desc student; => student 테이블의 구조를 보여줘! Column은 해당 테이블의 컬럼명, Nullable은 Null의 여부 확인, not null은 null이 허용되지 않는 구조입니다. 그런데 잠깐! 데이터베이스에서 NULL은 비어있다. 이런 의미가 ..