MySQL에서 특정 열 이름으로 테이블 검색하기MySQL에서 열 이름을 기준으로 테이블을 찾으려면 information_schema.columns 뷰를 활용하면 됩니다. 이 시스템 뷰에는 데이터베이스 내 모든 테이블의 열 정보가 저장되어 있어, LIKE 연산자와 함께 사용하면 원하는 열 이름을 가진 테이블을 손쉽게 조회할 수 있습니다.기본 문법select distinct table_namefrom information_schema.columnswhere column_name like %yourSearchValue%and table_
MySQL REGEXP로 세미콜론이 여러 개 포함된 문자열 찾기MySQL에서는 REGEXP 연산자를 활용하면 특정 패턴이 포함된 데이터를 손쉽게 검색할 수 있습니다. 이번 글에서는 세미콜론(;)이 3개 포함된 문자열을 찾는 방법을 실제 예제와 함께 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 테스트에 사용할 테이블을 생성합니다.mysql> create table DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY , &
MySQL에서 TIME 타입의 열에 저장된 시간에 새로운 지연 시간(delay time)을 추가하려면 INTERVAL 키워드와 DATE_ADD() 함수를 사용하면 됩니다. 실제 데이터를 변경하려면 UPDATE 명령문과 SET 절을 함께 활용할 수 있습니다. 아래에서 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable ( DelayTime time ); Query OK, 0 rows affected (1.21 sec)2. 레코드 삽입INSER
SQL에서 대체 행(홀수 행)을 내림차순으로 조회하는 방법SQL에서 테이블의 모든 대체 행, 즉 홀수 번째 행만 가져오고 싶다면 WHERE 절에서 MOD() 함수를 사용하면 됩니다. 여기에 ORDER BY ... DESC를 함께 사용하면 결과를 내림차순으로 정렬할 수 있습니다.기본적인 쿼리 형태는 다음과 같습니다.SELECT * FROM yourTableNameWHERE MOD(yourColumnName, 2) = 1ORDER BY yourColumnName DESC;MOD(columnName, 2) = 1 조건은 해당 열의 값이
MySQL에서 특정 열에 중복된 값이 몇 번씩 나타나는지 확인하려면 GROUP BY 절을 사용해야 합니다. 여기에 레코드 개수를 세는 COUNT(*) 함수와 결과를 정렬하는 ORDER BY 절을 함께 사용하면 됩니다.기본 문법select count(*) as 별칭이름 from 테이블명 group by 열이름 order By 별칭이름 DESC;예제 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable ( Number int ); Query OK, 0 rows affecte
날짜 데이터가 해당 월의 몇 번째 주에 속하는지 구해야 하는 경우가 있습니다. 즉, 1일부터 7일까지는 1주차, 8일부터 14일까지는 2주차, 15일부터 21일까지는 3주차로 계산하는 방식입니다. 이때 MySQL의 DAY() 함수를 사용해 일(day) 값을 추출하고, CASE 문으로 조건을 설정하여 주차(숫자)를 구할 수 있습니다.예제 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( AdmissionDate date ); Query OK, 0 rows a
MySQL에서 datetime 값의 시간은 그대로 유지하면서 날짜만 변경하고 싶다면 INTERVAL과 함께 YEAR, MONTH, DAY 등의 단위를 활용하면 됩니다. 레코드를 수정해야 하므로 UPDATE 문과 함께 INTERVAL을 사용해 새로운 값을 설정합니다.예제 테이블 생성하기먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable ( DueDate datetime ); Query OK, 0 rows affected (0.56 sec)샘플 데이터 삽입하기INSERT 명령
MySQL 오류 1075(42000)란?MySQL에서 AUTO_INCREMENT 속성을 가진 컬럼을 생성할 때 해당 컬럼에 PRIMARY KEY(기본 키)를 지정하지 않으면 다음과 같은 오류가 발생합니다.ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key(잘못된 테이블 정의입니다. 자동 증가 컬럼은 하나만 존재할 수 있으며, 반드시 키로 정의되어야 합니다.)이 오류를 해결하려면 AU
MySQL에서 match 테이블 이름 오류의 원인테이블 이름으로 match를 사용할 때는 작은따옴표()가 아니라 반드시 백틱(`)으로 감싸야 합니다. 그 이유는 match가 MySQL의 예약어(reserved word)이기 때문입니다. 백틱 없이 사용하면 다음과 같은 구문 오류가 발생합니다.mysql> select *from match;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL se
MySQL에서 NULL 레코드를 조회하려면 IS NULL을 사용하고, 특정 값을 제외하려면 != 연산자를 사용하면 됩니다. !=는 <> 연산자의 별칭(alias)으로, 두 연산자는 완전히 동일하게 동작합니다.테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, PlayerName varchar(40) ); Query OK, 0 rows affected (0.50
개요MySQL에서 특정 열을 기준으로 데이터를 그룹화하고, 같은 그룹에 속한 다른 열의 여러 레코드를 하나의 필드에 구분 기호와 함께 표시하려면 GROUP_CONCAT() 함수와 GROUP BY 절을 함께 사용하면 됩니다.GROUP_CONCAT()는 여러 행(row)에 흩어져 있는 데이터를 하나의 문자열로 연결해 주는 집계 함수입니다. 기본 구분 기호는 콤마(,)이지만, SEPARATOR 옵션을 사용하면 슬래시(/) 등 원하는 구분 기호를 자유롭게 지정할 수 있습니다.1. 샘플 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.my
자동 완성(autocomplete) 기능을 구현하려면 MySQL에서 LIKE 절을 사용하면 됩니다. 이 글에서는 학교 이름에 포함된 단어들을 기준으로 원하는 레코드를 검색하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable ( SchoolName varchar(100) ); Query OK, 0 rows affected (0.56 sec)2. 샘플 데이터 삽입하기insert 명령을 사용해 몇 개의 학교 이름 레코드를 추가합니다.mys
MySQL에서 특정 열의 값을 기준으로 데이터를 그룹화하고, 각 그룹별 개수를 함께 확인하고 싶다면 GROUP BY 절과 COUNT() 함수를 함께 사용하면 됩니다. 이름(NAME) 열을 기준으로 데이터를 묶고, 각 이름이 몇 번 등장했는지 새로운 열에 표시하는 방법을 단계별로 알아보겠습니다.1. 테이블 생성하기먼저 실습에 사용할 테이블을 만들어 보겠습니다.mysql> create table DemoTable ( Name varchar(30) ); Query OK, 0 rows affected (0.63 sec)2. 샘
MySQL에서 그룹화된 필드를 ORDER BY로 정렬하기MySQL에서 특정 값들을 원하는 순서대로 정렬하려면 ORDER BY 절과 함께 CASE 표현식 및 IN() 함수를 활용할 수 있습니다. CASE는 여러 조건을 평가하여 각 조건에 맞는 값을 반환하고, ORDER BY는 이 값을 기준으로 오름차순 또는 내림차순 정렬을 수행합니다. IN()은 지정한 목록 안에 일치하는 값이 있는지 확인하는 데 사용됩니다.이제 실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 테이블을 생성합니다.mysql> create table
개요MySQL에서 중복을 제외한 고유한 항목의 개수를 구하려면 COUNT() 함수와 DISTINCT 키워드를 함께 사용하면 됩니다. DISTINCT는 지정된 컬럼에서 중복된 값을 제거하고 유일한 값만 반환하는 역할을 합니다.이번 글에서는 실제 예제를 통해 단일 쿼리로 서로 다른 항목의 개수를 계산하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다. 고객 ID, 고객 이름, 제품 이름을 저장하는 간단한 테이블입니다.mysql> create table DemoTable ( Cus
MySQL에서 여러 개의 타임스탬프(Timestamp) 값을 일괄적으로 증가시켜야 할 때, 사용자 정의 변수(User-defined Variable)에 증가시킬 값을 미리 저장해 두고 UPDATE 문과 함께 활용하면 매우 편리합니다. 이 방법을 사용하면 쿼리 내에서 값을 직접 하드코딩하지 않고도 유연하게 시간 간격을 조절할 수 있습니다.기본 문법먼저 SET 구문으로 사용자 정의 변수에 증가시킬 값을 할당합니다. 여기서 yourValue는 증가시킬 값(초 단위)입니다. 그다음 MySQL의 UPDATE 문을 사용하여 해당 컬럼의 타임스
Java를 사용해 MySQL의 DATE 타입 열에 날짜 삽입하기MySQL 테이블의 DATE 타입 열에 Java로 날짜 값을 삽입하려면 PreparedStatement를 활용하는 것이 가장 안전하고 효율적인 방법입니다. PreparedStatement는 SQL 인젝션을 방지하고 날짜 데이터를 올바르게 처리해 줍니다.1단계: 테이블 생성먼저 DATE 타입의 ArrivalDate 열을 포함하는 테이블을 생성합니다.mysql> create table DemoTable( PassengerId i
MySQL에서 여러 행의 존재 여부 확인하기데이터베이스 작업 중 특정 조건에 해당하는 여러 행(row)이 실제로 존재하는지 확인해야 하는 경우가 종종 있습니다. 이 글에서는 COUNT(DISTINCT ...) 함수를 활용하여 테이블 내에 원하는 행들이 모두 존재하는지 간단하게 검증하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1219 ( Id int, Name varchar(40) ); Query OK, 0 rows
MySQL 날짜 형식을 d/m/y로 변경하기MySQL에서 저장된 날짜 데이터를 일/월/년(d/m/y) 형식으로 표시하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 값을 원하는 형식의 문자열로 손쉽게 변환해 줍니다.기본 문법SELECT DATE_FORMAT(컬럼명, %d/%m/%Y) AS 별칭 FROM 테이블명;여기서 사용된 형식 지정자의 의미는 다음과 같습니다.%d : 일(day)을 두 자리 숫자로 표시 (01~31)%m : 월(month)을 두 자리 숫자로 표시 (01~12)%Y : 연도(year)를
열의 현재 값이 얼마인지 알지 못하더라도 UPDATE 명령과 SET 절을 함께 사용하면 간단히 해결할 수 있습니다. 핵심은 SET 열이름 = 열이름 + 더할값처럼 기존 열 값을 그대로 참조하는 것입니다. 아래에서 예제와 함께 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 만들어 보겠습니다. mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, &nbs