개요MySQL 테이블의 일부 컬럼(필드)만 CSV 파일로 내보내고 싶다면, SELECT ... INTO OUTFILE 문에 원하는 컬럼 이름을 지정하면 됩니다. 전체 테이블을 내보내는 대신 필요한 컬럼만 선택적으로 추출할 수 있어 데이터 백업이나 분석 작업 시 매우 유용합니다.예제다음과 같은 데이터가 담긴 Student_info 테이블이 있다고 가정해 보겠습니다.mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name
CSV(Comma-Separated Values)는 스프레드시트나 데이터베이스처럼 표 형태의 데이터를 저장하기 위한 간단한 파일 형식입니다. MySQL 테이블의 데이터를 CSV 파일로 내보낼 때는 FIELDS TERMINATED BY 옵션을 활용할 수 있습니다. 이 옵션을 사용하면 각 필드의 값이 CSV 파일에서 서로 다른 셀에 구분되어 저장되도록 지정할 수 있습니다.예제로 살펴보기먼저 다음과 같은 데이터가 담긴 Student_info 테이블이 있다고 가정해 보겠습니다.mysql> Select * from Student_inf
NULL 조회에 비교 연산자(=)를 사용할 수 없는 이유MySQL에서 =(비교 연산자)를 사용해 NULL 값을 조회할 수 없는 이유는, NULL은 값(value)이 아니기 때문입니다. NULL은 값이 존재하지 않음 또는 알 수 없음을 의미하는 특수한 상태일 뿐, 실제 데이터 값이 아닙니다. 따라서 일반적인 값 비교 방식으로는 NULL과 비교할 수 없습니다.테이블에서 NULL이 포함된 행을 가져오려면 반드시 IS NULL 연산자를 사용해야 합니다. 아래 예제는 employee 테이블의 데이터를 통해 이를 보여줍니다.예제: IS NUL
MySQL 테이블의 데이터를 텍스트 파일로 내보낼 때 INTO OUTFILE 구문과 함께 다양한 서식 옵션을 사용할 수 있습니다. 대표적인 옵션으로는 필드를 구분하는 FIELDS TERMINATED BY, 값을 감싸는 문자를 지정하는 ENCLOSED BY, 행을 구분하는 LINES TERMINATED BY 등이 있으며, 이를 조합하면 내보내지는 텍스트 파일의 값들을 원하는 형태로 배치할 수 있습니다.예제다음과 같은 데이터가 담긴 Student_info 테이블이 있다고 가정해 보겠습니다.mysql> Select * from St
텍스트 파일의 여러 레코드를 한 줄에 작성하되, 각 레코드 사이에 특정 구분 기호(separator)를 사용하는 것이 가능합니다. 이런 형식의 텍스트 파일을 MySQL 테이블로 가져올 때는 반드시 LINES TERMINATED BY 옵션을 사용해야 합니다. 다음 예제를 통해 자세히 알아보겠습니다.구분자가 있는 텍스트 파일 예시아래와 같이 | 문자를 줄 종결자(LINE TERMINATOR)로 사용하여 여러 레코드를 한 줄에 저장한 텍스트 파일이 있다고 가정해 보겠습니다.id,Name,Country,Salary|105,Chum*,Mar
텍스트 파일에 라인 접두사(line prefix)가 포함되어 있는 경우, MySQL의 LINES STARTING BY 옵션을 사용하면 해당 접두사를 기준으로 필요한 라인만 골라서 테이블로 가져올 수 있습니다. 이 옵션을 지정하면 접두사가 없는 라인은 자동으로 무시되므로, 원하는 데이터만 정확하게 적재할 수 있습니다. 다음 예제를 통해 자세히 살펴보겠습니다.예제텍스트 파일에서 VALUE:를 라인 접두사로 사용한다고 가정해 보겠습니다. 파일 내용은 다음과 같습니다.id, Name, Country, Sala
텍스트 파일의 특정 열만 MySQL 테이블로 가져오기텍스트 파일에는 일부 특정 열의 값만 저장되어 있는데, 데이터를 가져올 MySQL 테이블에는 그보다 많은 열이 존재하는 경우가 있습니다. 이럴 때는 LOAD DATA 구문에 해당 열의 이름을 직접 명시함으로써, 텍스트 파일에 있는 값들을 원하는 열에만 삽입할 수 있습니다.예제 시나리오다음과 같이 텍스트 파일에 id, Name, Salary 세 개 열의 값만 저장되어 있다고 가정해 보겠습니다.105,Chum,11000 106,Danny,12000가져오기 쿼리 작성하기이 텍스트 파일을
MySQL INSTR()와 FIND_IN_SET() 함수란?MySQL에서 INSTR() 함수와 FIND_IN_SET() 함수는 모두 문자열을 검색하는 데 사용되는 함수입니다. 두 함수는 비슷한 목적으로 사용되지만, 동작 방식과 용도에 있어 중요한 차이점이 존재합니다.1. 인자 구조의 차이FIND_IN_SET() 함수는 쉼표(,)로 구분된 부분 문자열들을 포함하는 하나의 문자열 리스트를 인자로 받습니다. 반면 INSTR() 함수는 단일 문자열을 인자로 받아, 해당 문자열 안에서 부분 문자열이 처음 나타나는 위치를 반환합니다.2. 정수
MySQL에서는 문자열의 대소문자를 손쉽게 변환할 수 있는 네 가지 내장 함수를 제공합니다. 문자열을 소문자로 바꾸려면 LCASE() 또는 LOWER() 함수를 사용하고, 대문자로 바꾸려면 UCASE() 또는 UPPER() 함수를 사용하면 됩니다.각각의 짝이 되는 함수들은 기능상 완전히 동일하며, 같은 결과를 반환합니다. 상황에 맞게 편한 함수를 선택해 사용하시면 됩니다.1. 소문자 변환 함수: LCASE()와 LOWER()두 함수 모두 전달받은 문자열의 모든 영문자를 소문자로 변환합니다. 아래 예제를 통해 확인해 보겠습니다.LCA
MySQL에서는 LIKE 연산자와 와일드카드(WILDCARDS)를 함께 사용하면 하나의 문자열 안에서 원하는 패턴을 가진 문자열을 손쉽게 찾을 수 있습니다.기본 문법LIKE specific_pattern여기서 specific_pattern은 다른 문자열 내에서 찾고자 하는 문자열의 패턴을 의미합니다.주요 와일드카드% : 0개 이상의 임의의 문자열과 일치합니다._ : 정확히 한 개의 임의의 문자와 일치합니다.예제학생들의 이름이 저장된 student라는 테이블이 있다고 가정해 보겠습니다. 이름에 av라는 패턴이 포함된 모든 학생의 정보
MySQL에서는 LEFT() 함수와 RIGHT() 함수를 사용하여 문자열에서 지정된 개수의 문자를 추출해 반환할 수 있습니다.LEFT() 함수는 문자열의 왼쪽부터 지정한 개수만큼의 문자를 반환하고, RIGHT() 함수는 문자열의 오른쪽부터 지정한 개수만큼의 문자를 반환합니다.LEFT() 함수문법LEFT(str, length)str은 문자를 추출할 대상이 되는 원본 문자열이며, length는 반환할 문자의 개수를 지정하는 정수 값입니다.예제mysql> SELECT LEFT(My Name is Ram, 7); +----------
텍스트 파일의 두 줄 사이에 빈 줄이 존재하면, MySQL은 해당 텍스트 파일을 테이블로 가져오는 과정에서 이 빈 줄도 하나의 데이터 행으로 간주합니다. 즉, 빈 줄이 유효한 데이터가 아니더라도 MySQL은 이를 데이터 라인으로 평가하여 테이블에 삽입합니다.다음 예시를 통해 이를 쉽게 이해할 수 있습니다.예제텍스트 파일 A.txt의 두 줄 사이에 다음과 같이 빈 줄이 있다고 가정해 보겠습니다.105,Chum,USA,11000 106,Danny,AUS,12000이제 아래와 같은 쿼리를 작성하여 텍스트 파일의 데이터를 MySQL 테이
MySQL에서 LIKE 연산자는 와일드카드(WILDCARD) 문자와 함께 사용되어 특정 패턴을 포함하는 문자열을 검색합니다. 와일드카드란 복잡한 조건에 일치하는 데이터를 손쉽게 찾을 수 있도록 도와주는 특수 문자를 의미합니다. LIKE 연산자와 함께 사용할 수 있는 와일드카드는 크게 두 가지입니다.% – 퍼센트(Percentage) 와일드카드% 와일드카드는 0개, 1개 또는 그 이상의 임의의 문자에 해당하는 패턴을 지정할 때 사용됩니다. 기본적인 사용 문법은 다음과 같습니다.Select Statement…Where column_na
SQL에서 LIKE 연산자는 문자열 패턴 매칭에 널리 사용되지만, WHERE 절에서 비교 연산자(예: !=, <>, =)와 함께 사용하면 훨씬 더 정교한 조건 검색이 가능합니다. 이 두 연산자를 조합하면 특정 패턴에 일치하면서 동시에 특정 값을 제외해야 하는 경우에 유용하게 활용할 수 있습니다.LIKE 연산자와 비교 연산자의 조합예를 들어, 학생 테이블에서 이름이 v로 끝나는 학생들을 조회하고 싶지만, 그중에서 특정 이름인 Gaurav는 결과에서 제외하고 싶다고 가정해 보겠습니다. 이런 경우 LIKE 연산자만으로는 해결할 수 없으며
때때로 입력용 텍스트 파일의 필드 값이 큰따옴표( )로 묶여 있는 경우가 있습니다. 이런 형식의 파일에서 데이터를 가져오려면 LOAD DATA INFILE 문에 ENCLOSED BY 옵션을 함께 사용해야 합니다. 다음 예제를 통해 쉽게 이해해 보겠습니다.예제다음은 A.txt 파일에 저장된 쉼표(,)로 구분된 값입니다. 이름(Name)과 국가(Country) 필드가 큰따옴표로 묶여 있는 것을 확인할 수 있습니다.100,Ram,INDIA,25000 101,Mohan,INDIA,28000이 데이터를 아래와 같이 생성한 employee2_
때로는 입력용 텍스트 파일의 첫 번째 행에 열(컬럼) 이름이 함께 들어 있는 경우가 있습니다. 이처럼 헤더가 포함된 텍스트 파일에서 MySQL 테이블로 데이터를 가져오려면 IGNORE n ROWS 옵션을 사용해야 합니다. 이 옵션은 지정한 행 수만큼 건너뛰고 나머지 데이터만 테이블에 삽입하도록 MySQL에 지시합니다.예제다음은 A.txt 파일에 저장된 쉼표로 구분된 값(CSV)입니다. 첫 번째 행에는 각 열의 이름이 기록되어 있습니다.Id,Name,Country,Salary 100,Ram,INDIA,25000 101,Mohan,IN
MySQL의 LOCATE() 함수를 사용하면 문자열 안에서 특정 부분 문자열이 처음 나타나는 위치를 손쉽게 찾을 수 있습니다. 기본 문법은 다음과 같습니다.문법LOCATE(Substring, String)여기서 Substring은 위치를 찾고자 하는 부분 문자열이며, String은 해당 부분 문자열을 검색할 대상 문자열입니다.LOCATE() 함수를 호출할 때는 검색할 부분 문자열과 검색 대상이 되는 문자열, 이 두 가지 인수를 반드시 함께 전달해야 합니다.예제mysql> Select LOCATE(Good,RAM IS A GOO
MySQL에서 HEX() 함수는 10진수 숫자 또는 문자열 값을 16진수 값으로 변환하는 함수입니다. 변환이 완료되면 MySQL은 해당 16진수 값을 문자열 형태로 반환합니다.HEX() 함수 기본 문법HEX(Num 또는 Str)HEX() 함수는 숫자와 문자열 모두 변환할 수 있습니다. 위 문법에서 Num은 16진수로 변환할 숫자를 의미하며, Str은 각 문자가 두 자리 16진수 숫자로 변환될 문자열을 의미합니다.HEX() 함수 사용 예제1. 숫자를 16진수로 변환하기mysql> Select HEX(210); +---------
```html MySQL에서 LOCATE() 함수를 WHERE 절과 함께 사용하면 특정 문자열이 포함된 행만 손쉽게 필터링할 수 있습니다. 이때 첫 번째 인수로 찾고자 하는 부분 문자열을, 두 번째 인수로 테이블의 컬럼 이름을 지정하고, 비교 연산자를 사용해 조건을 작성합니다.LOCATE() 함수와 WHERE 절의 기본 구조기본적인 문법은 다음과 같습니다.SELECT 컬럼명, LOCATE(찾을문자열, 컬럼명) FROM 테이블명 WHERE LOCATE(찾을문자열, 컬럼명) 비교연산자 값;LOCATE() 함수는 부분 문자열이 발견된 위
MySQL BINARY 키워드의 역할MySQL은 기본적으로 문자열 비교를 수행할 때 대소문자를 구분하지 않습니다(case-insensitive). 하지만 BINARY 키워드를 사용하면 MySQL이 대소문자를 구분하는(case-sensitive) 문자열 비교를 수행하도록 만들 수 있습니다.그 이유는 BINARY 키워드가 MySQL에게 문자열의 각 문자를 글자 자체가 아닌 내부 ASCII 값(바이너리 값)을 기준으로 비교하도록 지시하기 때문입니다. 따라서 YashPal과 YASHPAL처럼 철자는 같지만 대소문자가 다른 문자열은 서로 다