본문 바로가기

Big Data/Database26

[SQL] LIKE SQL의 LIKE 문은 문자열 패턴을 검색하는 데 사용되는 연산자입니다. 주로 문자열 컬럼에서 특정 패턴이나 문자열을 포함하는 행을 검색할 때 사용됩니다. LIKE 연산자는 SQL에서 비교 연산자 중 하나이며, 주로 SELECT 문과 함께 사용됩니다. LIKE 연산자는 다음 두 개의 기본 와일드카드 문자와 함께 사용됩니다: % (퍼센트 기호): 이것은 임의의 문자열 시퀀스와 일치하는 와일드카드입니다. 예를 들어, 'a%' 패턴은 "a"로 시작하는 모든 문자열을 일치시킵니다. _ (언더스코어): 이것은 정확히 하나의 문자와 일치하는 와일드카드입니다. 예를 들어, 'a_' 패턴은 "a"로 시작하고 두 번째 문자가 무엇이든 상관없는 모든 두 문자의 문자열을 일치시킵니다. 아래는 간단한 LIKE 문의 예제입니다.. 2023. 9. 26.
MySQL UPDATE 쿼리를 이용한 특정 필드 값의 개행 문자와 캐리지 리턴 제거 소개 MySQL에서 데이터베이스 레코드를 업데이트하고 필드 값을 수정하는 작업은 매우 일반적입니다. 이 문서는 MySQL의 UPDATE 쿼리를 사용하여 특정 필드 값에서 개행 문자와 캐리지 리턴을 제거하는 방법을 설명합니다. 이를 위해 REPLACE 함수를 활용하여 필드 값을 변경하고 일관된 형식으로 데이터를 유지하는 방법을 안내합니다. 문제 특정 MySQL 데이터베이스 테이블의 특정 필드에는 개행 문자(\n)와 캐리지 리턴(\r)이 포함되어 있습니다. 이러한 문자들을 제거하여 필드 값을 정리하고자 합니다. 해결책 아래의 단계를 따라 필드 값에서 개행 문자와 캐리지 리턴을 제거하는 쿼리를 작성할 수 있습니다. 단계 1: UPDATE 쿼리 작성 아래의 UPDATE 쿼리를 사용하여 필드 값을 변경합니다. U.. 2023. 8. 19.
SELECT -> INSERT MySQL 데이터베이스에서 INSERT INTO ... ON DUPLICATE KEY UPDATE 문을 사용하는 방법에 대해 설명합니다. 이러한 문법은 새로운 데이터를 삽입하려고 할 때 이미 기존에 존재하는 행과 충돌이 발생할 경우 업데이트를 수행하는 데 유용합니다. 문법 및 기능 설명 아래는 주어진 source_table에서 데이터를 선택하여 target_table에 삽입하거나 업데이트하는 SQL 쿼리의 구문과 기능에 대한 설명입니다. INSERT INTO target_table (id, value1, value2, value3) SELECT id, value1, value2, value3 FROM source_table AS source ON DUPLICATE KEY UPDATE value1 = so.. 2023. 8. 15.
REGEXP MySQL에서 REGEXP 연산자는 정규 표현식을 사용하여 문자열 패턴을 검색하는 데 사용됩니다. 아래는 REGEXP 연산자의 사용 형식 및 예제입니다. 사용 형식 expression REGEXP pattern expression은 비교할 문자열이나 열을 나타내고, pattern은 정규 표현식 패턴을 나타냅니다. 예제 1 주어진 테이블에서 이메일 주소가 특정 도메인으로 끝나는 레코드를 검색해봅시다. SELECT email FROM users WHERE email REGEXP '@gmail\\.com$'; 이 예제에서 email 열의 값들 중에서 '@gmail.com'으로 끝나는 이메일 주소를 찾습니다. 예제 2 특정 단어가 문자열에 포함되어 있는지 검색해봅시다. SELECT product_name FRO.. 2023. 8. 4.
CASE WHEN 단순한 형식 CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ELSE 기본결과 END 이 경우, 각 조건문은 "WHEN" 키워드 뒤에 오며, 해당 조건이 참일 때 실행될 결과가 지정됩니다. 1. 단순한 형식 예제 이 예제에서는 학생의 성적을 기준으로 학점을 부여하는 경우를 가정해보겠습니다. 다음과 같은 데이터가 있다고 가정해봅시다. 학생 이름 성적 Alice 85 Bob 70 Carol 95 Dave 60 이 데이터를 기반으로 성적에 따라 학점을 부여하려면 다음과 같이 "CASE WHEN" 문을 사용할 수 있습니다. SELECT 학생 이름, 성적, CASE WHEN 성적 >= 90 THEN 'A' WHEN 성적 >= 80 THEN 'B' WHEN 성적 >= 70 THEN 'C' .. 2023. 8. 4.
MySQL에 csv 파일 데이터 적재 방법 1: LOAD DATA INFILE을 사용한 데이터 적재 이 방법은 MySQL의 LOAD DATA INFILE 명령을 사용하여 데이터를 파일에서 직접 데이터베이스 테이블로 로드하는 방법입니다. -- LOAD DATA INFILE을 사용하여 데이터 로드 SHOW VARIABLES LIKE 'FOREIGN_KEY_CHECKS'; SET foreign_key_checks = 0; LOAD DATA INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\tft_match_traits_20230802.csv' INTO TABLE tftdb.match_trait FIELDS TERMINATED BY ',' IGNORE 1 LINES; SET foreign_ke.. 2023. 8. 2.
MySQL에서 UnixTime MySQL에서 Unix Time과의 비교를 위한 쿼리 샘플을 보여드리겠습니다. MySQL에서는 UNIX_TIMESTAMP() 함수를 사용하여 날짜/시간을 Unix Time으로 변환하거나, FROM_UNIXTIME() 함수를 사용하여 Unix Time을 날짜/시간으로 변환할 수 있습니다. Unix Time으로 저장된 데이터와의 비교 예를 들어, my_table이라는 테이블에 unix_time_column이라는 컬럼에 Unix Time으로 저장된 데이터가 있다고 가정해봅시다. 이 컬럼과 현재 시간과 비교하는 쿼리를 작성해보겠습니다. 현재 시간과 비교하여 해당 시간보다 이후의 데이터 조회: SELECT * FROM my_table WHERE unix_time_column > UNIX_TIMESTAMP(); 특.. 2023. 7. 31.
LAG & LEAD 함수 분석함수인 LAG와 LEAD는 주로 데이터베이스나 SQL에서 사용되는 윈도우 함수(또는 분석 함수)입니다. 이들 함수는 특히 시계열 데이터와 같이 이전 또는 다음 행의 값을 조회하고 싶을 때 유용하게 사용됩니다. LAG 함수 LAG 함수는 현재 행 이전의 특정 열의 값을 가져옵니다. 함수의 구문은 다음과 같습니다. LAG(column, offset, default) OVER (PARTITION BY partition_column ORDER BY order_column) column: 이전 값을 가져올 대상 열을 지정합니다. offset: 가져올 이전 행의 거리를 나타냅니다. 기본값은 1이며, 1이면 바로 이전 행의 값을 가져옵니다. default: 만약 이전 값이 없을 경우 반환할 기본값을 지정합니다. .. 2023. 7. 27.
WINDOW 절의 사용 SQL 쿼리의 일반적인 구조는 다음과 같습니다. SELECT FROM ; 따라서 WINDOW 절은 GROUP BY 절과 ORDER BY 절 사이에 위치합니다. WINDOW 절은 윈도우 함수의 계산 범위를 정의하므로, GROUP BY 절 다음에 올 수 있습니다. 그리고 윈도우 함수는 SELECT 절의 열들을 기반으로 계산되기 때문에, SELECT 절의 마지막에 위치합니다. 예제 테이블: sales sale_id sale_date amount 1 2023-07-01 100 2 2023-07-02 150 3 2023-07-03 200 4 2023-07-04 120 5 2023-07-05 180 이제 아래의 SQL 쿼리를 사용하여 주문 테이블에서 일별 매출의 합계와 해당 일 기준으로 이전 하루와 다음 하루의 매.. 2023. 7. 27.