개요MySQL에서 TIME 또는 VARCHAR 데이터 유형으로 저장된 시간 값을 합산하려면 TIME_TO_SEC() 함수와 SEC_TO_TIME() 함수를 함께 사용하면 됩니다. 먼저 TIME_TO_SEC()로 각 시간 값을 초 단위로 변환한 뒤 SUM()으로 합산하고, 마지막에 SEC_TO_TIME()으로 다시 HH:MM:SS 형식의 시간 값으로 되돌리는 방식입니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성하겠습니다.mysql> create table DemoTable1442 -> ( -> D
MySQL에서 특정 열(컬럼)의 값을 기준으로 정수 데이터를 그룹별로 합산하려면 GROUP BY 절을 사용해야 합니다. GROUP BY는 동일한 값을 가진 행들을 하나의 그룹으로 묶어 주며, SUM()과 같은 집계 함수와 함께 사용하면 그룹별 합계를 손쉽게 구할 수 있습니다.1. 샘플 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1443 -> ( -> StudentId int
MySQL에서 특정 두 날짜 사이에 해당하는 레코드의 합계를 구하려면 BETWEEN 키워드를 사용하면 됩니다. BETWEEN 연산자는 지정한 시작 날짜와 종료 날짜 범위 내에 있는 값만 필터링해 주기 때문에, 기간별 집계 쿼리를 작성할 때 매우 유용합니다.실제 예제를 통해 단계별로 살펴보겠습니다. 먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable1444 -> ( -> Value int, -> PurchaseDate datetime -> );
MySQL에서 첫 번째 문자로 열 값 필터링하는 방법MySQL에서는 LEFT() 함수를 사용하여 문자열의 첫 번째 문자를 기준으로 열 값을 손쉽게 필터링할 수 있습니다. 이 함수는 지정한 개수만큼 왼쪽부터 문자를 추출해 반환하므로, 특정 알파벳으로 시작하는 레코드만 조회할 때 매우 유용합니다.실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1428 -> ( -> EmployeeId int NOT NULL
MySQL에서 쉼표로 구분된 값 열의 쉼표 개수 계산하기데이터베이스 작업을 하다 보면 하나의 열에 쉼표로 구분된 여러 값이 저장되어 있는 경우가 있습니다. 이럴 때 각 레코드에 쉼표가 몇 개 포함되어 있는지 확인해야 하는데, MySQL에서는 LENGTH() 함수와 REPLACE() 함수를 조합하면 아주 간단하게 해결할 수 있습니다.핵심 원리는 전체 문자열의 길이에서 쉼표를 모두 제거한 문자열의 길이를 빼면 그 차이가 곧 쉼표의 개수가 된다는 점입니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> creat
MySQL에서 현재 날짜와 월(Month)과 일(Day)이 같은 레코드를 조회하려면 MONTH() 함수와 DAY() 함수를 함께 사용하면 됩니다. 이 방법은 기념일처럼 연도와 관계없이 특정 월·일에 해당하는 데이터를 찾을 때 특히 유용합니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1429-> (-> AnniversaryDate date-> );2. 샘플 데이터 삽입하기INSERT 문을 이용해 몇 개의 기념일 날짜를 입력합니다.mysql>
MySQL에서 같은 ID를 공유하는 여러 레코드가 있을 때, 특정 컬럼의 값(예: 예, 아니요)별로 개수를 집계해야 하는 경우가 자주 있습니다. 이럴 때는 SUM() 함수와 CASE 문 또는 조건식을 함께 활용하면 간단하게 해결할 수 있습니다.MySQL에서는 조건식이 참일 때 1, 거짓일 때 0을 반환하기 때문에, sum(isMarried=Yes)처럼 조건식을 SUM() 안에 넣으면 해당 조건을 만족하는 행의 개수를 손쉽게 구할 수 있습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> cre
MySQL에서는 RPAD() 함수를 사용하면 열 값 뒤에 특정 특수 문자를 손쉽게 덧붙일 수 있습니다. 이번 글에서는 테이블 생성부터 데이터 삽입, 그리고 조건에 따라 이름 값에 별표(*)를 채워 넣는 방법까지 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. 여기서는 이름을 저장할 Name 컬럼 하나만 가진 간단한 테이블을 만들어 보겠습니다. mysql> create table DemoTable1626 -> ( &n
실무에서는 하나의 열에 동일한 값이 여러 번 저장되는 경우가 흔합니다. 예를 들어 직원 테이블에 Chris Brown이라는 이름을 가진 직원이 두 명 이상 있을 수 있습니다. 이럴 때 WHERE 절에 여러 조건을 AND로 결합하면 원하는 특정 행만 정확하게 조회할 수 있습니다.이 글에서는 중복된 이름 값이 존재하는 MySQL 테이블에서 특정 행을 가져오는 방법을 예제와 함께 단계별로 살펴보겠습니다.1단계: 데모 테이블 생성먼저 직원 정보를 저장할 테이블을 생성합니다. EmployeeId는 자동 증가되는 기본 키로 설정합니다.mysq
MySQL VIEW와 WHERE 절 함께 사용하기MySQL에서 생성한 뷰(VIEW)는 일반 테이블과 거의 동일하게 취급할 수 있습니다. 따라서 뷰를 조회할 때도 SELECT 문에 WHERE 절을 붙여 원하는 조건의 데이터만 필터링해서 가져올 수 있습니다.기본 문법뷰에 WHERE 절을 적용하는 기본 문법은 다음과 같습니다.SELECT * FROM 뷰이름 WHERE 컬럼명 = 값;실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 학생 정보를 저장할 테이블을 만들어 보겠습니다.mysql> create table De
MySQL에서 여러 문자열을 변수에 저장한 뒤 이를 연결하여 하나의 열에 표시하려면 CONCAT_WS() 함수를 사용하면 됩니다. CONCAT_WS()는 Concatenate With Separator의 약자로, 지정한 구분자를 기준으로 여러 문자열을 하나로 합쳐주는 매우 유용한 함수입니다.1단계: 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 클라이언트의 고유 ID, 이름(First Name), 성(Last Name)을 저장하는 구조입니다.mysql> create table DemoTable1433 &nbs
개요날짜·시간 연산이 필요할 때 MySQL에서는 DATE_SUB() 함수를 사용하면 간단하게 처리할 수 있습니다. 이 글에서는 이미 테이블에 저장된 DATETIME 값을 현재 시간에서 1시간을 뺀 값으로 일괄 업데이트하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1434 -> ( -> ArrivalDatetime datetime 
MySQL에서 01 August 2019와 같은 형식으로 저장된 날짜는 문자열이기 때문에 일반적인 ORDER BY만으로는 시간순 정렬이 되지 않습니다. 이럴 때 STR_TO_DATE() 함수를 함께 사용하면 문자열을 실제 날짜 값으로 변환해 올바르게 정렬할 수 있습니다.예제 테이블 생성하기먼저 데모에 사용할 테이블을 생성합니다.mysql> create table DemoTable1435 -> ( -> DueDate varchar(60)
MySQL에서 여러 행을 개별적으로 업데이트하려면 각 행마다 UPDATE 문을 실행해야 한다고 생각하기 쉽습니다. 하지만 IN() 연산자를 사용하면 단일 WHERE 절만으로 여러 행을 한 번에 효율적으로 수정할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1420 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KE
MySQL WHERE 절로 여러 값을 조회할 수 있을까?결론부터 말하면 가능합니다. WHERE 절에서 여러 조건을 결합할 때는 OR 연산자를 사용하면 됩니다. 조건 중 하나라도 만족하는 행이 모두 결과에 포함됩니다. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.1. 샘플 테이블 생성하기먼저 예제에 사용할 직원 정보 테이블을 생성합니다.mysql> create table DemoTable1421 -> ( -> Employe
MySQL에서 조건에 따라 레코드 값 변경하기MySQL에서 특정 조건에 맞는 레코드의 값을 일괄적으로 변경하려면 CASE 문을 활용하면 됩니다. UPDATE 문과 함께 CASE 문을 사용하면 각 행의 현재 값에 따라 서로 다른 값으로 유연하게 수정할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1481 -> ( -> P
MySQL에서 두 날짜 범위 사이의 데이터 조회 방법MySQL에서 특정 두 날짜 사이에 속한 모든 데이터를 조회하려면 BETWEEN 연산자를 사용하면 됩니다. 기본 문법은 다음과 같습니다.select * from yourTableName where yourColumnName between yourDateValue1 and yourDateValue2;BETWEEN 연산자는 시작 날짜와 종료 날짜를 모두 포함하여 범위 내의 레코드를 반환합니다. 실제 예제를 통해 살펴보겠습니다.1. 테이블 생성하기먼저 직원 정보를 저장할 테이블을 생성합
MySQL에서 쉼표로 구분된 값의 레코드 조회하기컬럼에 AUS,UK처럼 쉼표로 구분된 여러 값이 하나의 문자열로 저장되어 있을 때는 MySQL의 IN() 대신 FIND_IN_SET() 함수를 사용해야 합니다. IN()은 개별 값들의 목록과 비교하는 용도이므로, 하나의 문자열 내부에 포함된 특정 값을 찾는 데는 적합하지 않습니다. 반면 FIND_IN_SET()은 쉼표로 구분된 문자열 안에서 원하는 값의 위치를 찾아주기 때문에 이런 경우에 정확한 결과를 얻을 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql>
MySQL에서 문자열 중 점(.) 앞부분만 다른 값으로 대체하고 싶다면 CONCAT() 함수와 SUBSTRING_INDEX() 함수를 함께 사용하면 됩니다. 이 두 함수를 조합하면 점 뒤의 소수점 이하 값은 그대로 유지한 채, 점 앞의 정수 부분만 원하는 값으로 손쉽게 변경할 수 있습니다.1. 테이블 생성하기먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable1424 -> ( -> Value va
네, 가능합니다. MySQL에서는 집계 함수 COUNT(*)와 GROUP BY 절을 함께 사용하면 특정 열에 각 고유 값이 몇 번 나타나는지 손쉽게 확인할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1425 -> ( -> JoiningYear int -> );Query