SW개발/SQL 4

[SQL] 구글 바드(Bard)에게 물어본 쿼리 튜닝

쿼리 튜닝 어떻게 하는거야? 구글에서 만든 생성형 AI 바드(Bard)에게 물어 보았습니다. 바드야, SQL 쿼리 튜닝하는 가장 쉬운 방법 SQL 쿼리 튜닝은 데이터베이스의 성능을 향상시키는 데 중요한 작업입니다. SQL 쿼리를 튜닝하는 가장 쉬운 방법은 다음과 같습니다. 필요한 데이터만 쿼리합니다. 쿼리에서 필요한 데이터만 선택하면 불필요한 데이터를 검색하는 데 필요한 시간을 줄일 수 있습니다. 인덱스를 사용합니다. 인덱스는 데이터베이스에서 특정 데이터를 빠르게 찾을 수 있도록 도와줍니다. 쿼리에서 인덱스를 사용하면 쿼리 실행 속도를 높일 수 있습니다. 조인 방법을 최적화합니다. 조인은 두 테이블의 데이터를 결합하는 데 사용됩니다. 조인 방법을 최적화하면 쿼리 실행 속도를 높일 수 있습니다. 서브쿼리를..

SW개발/SQL 2023.08.18

[SQL] 중복된 갯수 N개 이상 데이터 찾기

중복된 갯수가 N개 이상이 조건으로 데이터를 찾아 보겠습니다. 만약 NAME 컬럼 중에서 두번 이상 중복된 NAME 과 그 갯수를 카운트 하려면 어떻게 해야 할까요? 저는 GROUP BY 와 HAVING 문을 사용해 보았습니다. 우선 NAME 기준으로 GROUP BY 를 해보면 아래와 같죠. SELECT NAME FROM MyTable GROUP BY NAME 여기서 중복된 갯수 카운트를 위해 COUNT 문과 2개 이상 조건으로 HAVING 문을 추가 해 보겠습니다. SELECT NAME, COUNT(NAME) AS CNT FROM MyTable GROUP BY NAME HAVING CNT > 1 두명의 중복된 사람이 있었고 각각 2번씩 데이터가 들어 있었네요. 추가적으로 NAME 정렬을 반대로 하고 싶..

SW개발/SQL 2021.04.14

[SQL] SELECT 날짜 DATETIME 범위 검색

모든 컬럼(column)에 대한 SELECT 쿼리는 아래와 같이 사용할 수 있습니다. SELECT * FROM TableName 하지만 컬럼별 데이터 조회시 날짜 기간 조건으로 검색하려면 어떻게 해야할까요? 예를들어 로그인일자("LogIn" 컬럼) 2021년 3월부터 2021년 4월 말까지 데이터만 추출하고 싶다면? SQL 쿼리 문법 중 BETWEEN A AND B 를 사용하면 됩니다. 조건이 따라 붙기 때문에 반드시 WHERE 로 시작해야겠죠? SELECT * FROM MyTable WHERE LogIn BETWEEN '2021-02-01' AND '2021-04-30' 결과본 이상 끝.

SW개발/SQL 2021.03.27

[SQL] SELECT 여러 조건으로 정렬하기(다중정렬)

모든 컬럼(column)에 대한 SELECT 쿼리는 아래와 같이 사용할 수 있다. SELECT * FROM TableName 하지만 컬럼별 데이터 조회시 여러 조건을 주려면 어떻게 해야할까? 예를들어 같은 이름("NAME" 컬럼) 중에서는 로그인일자("LogIn" 컬럼)가 최신일자 순으로 정렬이 되어야 한다면? SELECT * FROM MyTable ORDER by Name, LogIn DESC 결과본 이상 끝.

SW개발/SQL 2021.03.27