MySQL에서 문자열의 첫 번째 문자만 제거하고 싶다면 substr() 함수와 UPDATE 명령어를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.UPDATE yourTableName set yourColumnName=substr(yourColumnName,2);여기서 substr(컬럼명, 2)은 두 번째 위치부터 끝까지의 문자를 반환하기 때문에, 결과적으로 첫 번째 문자가 잘려나가게 됩니다.예제 테이블 생성하기문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다.mysql> create table CutStrin
MySQL의 COALESCE 함수는 인자로 전달된 여러 값 중에서 첫 번째 NULL이 아닌(NOT NULL) 값을 반환하는 데 사용됩니다. 만약 전달된 모든 컬럼이나 표현식이 NULL이라면 최종적으로 NULL을 반환하며, 하나라도 NULL이 아닌 값이 존재하면 그중 가장 먼저 나오는 값을 돌려줍니다.COALESCE 기본 문법SELECT COALESCE(yourColumnName1, yourColumnName2, yourColumnName3, .......N) AS anyVariableName FROM yourTableName;COA
데이터베이스를 관리하다 보면 특정 데이터베이스에 존재하는 테이블 중 실제로 데이터가 들어 있는(비어 있지 않은) 테이블만 확인하고 싶은 경우가 있습니다. 이럴 때 information_schema를 활용하면 간단하게 해결할 수 있습니다.기본 문법특정 MySQL 데이터베이스에서 비어 있지 않은 테이블 목록을 가져오려면 아래와 같은 쿼리를 사용합니다.SELECT table_type, table_name, table_schema FROM information_schema.tables WHERE table_rows >= 1 AND t
MySQL에서 두 값 사이의 난수 생성하기MySQL에서 두 값 사이의 임의의 값(난수)을 얻으려면 RAND() 함수와 FLOOR() 함수를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.select FLOOR( RAND() * (최댓값 - 최솟값) + 최솟값) as 별칭;동작 원리RAND()는 0 이상 1 미만의 실수를 반환하며, 여기에 원하는 범위의 크기를 곱하고 최솟값을 더한 뒤 FLOOR()로 소수점을 버리면 지정된 범위 내의 정수 난수가 생성됩니다.예제: 100부터 200 사이의 난수 구하기최댓값을 200, 최솟값을 1
MySQL에서 생년월일(D.O.B)로 나이 계산하기MySQL에서 생년월일(D.O.B) 필드를 기준으로 나이를 계산하려면 현재 날짜의 연도에서 생년월일의 연도를 뺀 값을 구하는 방식을 사용할 수 있습니다. 기본적인 문법은 다음과 같습니다.select yourColumnName1, yourColumnName2, ........N,year(curdate()) - year(yourDOBColumnName) as anyVariableNamefrom yourTableName;예제 테이블 생성위 문법을 이해하기 위해 먼저 테이블을 생성해 보겠습
MySQL에서 각 테이블의 행 수 확인하기MySQL 데이터베이스에 있는 모든 테이블의 행(레코드) 수를 하나씩 COUNT(*) 쿼리로 확인하는 것은 번거로운 작업입니다. 이럴 때 INFORMATION_SCHEMA.TABLES를 활용하면 단 하나의 쿼리로 데이터베이스 전체 테이블 목록과 각 테이블의 행 수를 한 번에 조회할 수 있습니다.기본 문법행 수를 조회하려면 information_schema.tables를 사용해야 합니다. 기본 문법은 다음과 같습니다.SELECT table_name, table_rowsFROM INFORMATI
MySQL Data too long for column 오류란? MySQL에서 Data too long for column 오류는 컬럼에 저장할 수 있는 최대 크기보다 더 많은 데이터를 삽입하려고 할 때 발생합니다. 예를 들어, 데이터 타입이 varchar(6)이라면 해당 컬럼에는 최대 6자까지만 저장할 수 있습니다. 따라서 6자를 초과하는 값을 입력하면 이 오류가 발생하게 됩니다. 오류 재현을 위한 테이블 생성 오류를 이해하기 위해 실제로 테이블을 하나 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다. mysql>
MySQL에서 특정 테이블에 설정된 모든 제약 조건(Constraint)을 확인해야 하는 경우가 종종 있습니다. 기본 키(PRIMARY KEY), 고유 키(UNIQUE KEY), 외래 키(FOREIGN KEY) 등이 어떻게 정의되어 있는지 파악하고 싶다면 아래의 두 가지 방법 중 하나를 활용하면 됩니다.방법 1 – SHOW 명령어 사용가장 간단한 방법은 SHOW CREATE TABLE 명령어를 사용하는 것입니다. 이 명령어는 해당 테이블을 생성할 때 사용된 전체 DDL 문을 그대로 출력해 주기 때문에, 테이블에 설정된 모든 제약 조
MySQL 사용자 생성 스크립트란?MySQL에서 새로운 사용자를 추가하려면 CREATE USER 명령어를 사용하여 사용자 계정과 비밀번호를 먼저 생성해야 합니다. 기본 문법은 다음과 같습니다.CREATE USER yourUserName@localhost IDENTIFIED BY yourPassword;이어서 특정 데이터베이스에 대한 모든 권한을 해당 사용자에게 부여하려면 GRANT 명령어를 사용합니다. 문법은 아래와 같습니다.GRANT ALL PRIVILEGES ON yourDatabaseName . * TO yourUserName
MySQL에서 테이블 내 ID가 가장 큰 행을 조회하려면 ORDER BY 절과 LIMIT, OFFSET을 함께 사용하면 됩니다. 이 방법은 특정 컬럼을 기준으로 내림차순 정렬한 뒤, 첫 번째 행만 가져오는 원리로 동작합니다.기본 문법select *from yourTableName order by yourColumnName desc limit 1 offset 0;order by ... desc: 지정한 컬럼을 기준으로 내림차순(큰 값부터) 정렬합니다.limit 1: 결과 중 첫 번째 행 하나만 반환합니다.offset 0: 첫 번째 행
MySQL에서는 UPDATE 명령문을 사용하여 특정 열의 값을 간단하게 감소시킬 수 있습니다. 여기에 WHERE 절에 조건을 추가하면 값이 0 아래로 떨어지지 않도록 제한할 수도 있습니다.기본 문법값을 감소시키면서 0 미만으로 내려가는 것을 방지하는 기본 문법은 다음과 같습니다.UPDATE yourTableNameSET yourColumnName = yourColumnName - 1WHERE yourColumnName > 0;핵심은 yourColumnName > 0 조건입니다. 이 조건 덕분에 현재 값이 0보다 큰 행만
MySQL에서 문자열이 포함된 행 조회하기MySQL에서 특정 문자열을 포함하는 행을 조회하려면 LIKE 연산자와 와일드카드(%)를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.SELECT * FROM yourTableName WHERE yourColumnName LIKE %yourPattern%;여기서 %yourPattern%의 퍼센트(%) 기호는 임의의 문자열을 의미하는 와일드카드입니다. 패턴 앞뒤에 %를 붙이면 해당 문자열이 컬럼 값의 어느 위치에 있든 검색됩니다.1. 예제 테이블 생성문법을 이해하기 위해 먼저 테이블을
MySQL 저장 프로시저에서 발생하는 SQL 구문 오류와 그 해결책 MySQL에서 저장 프로시저(Stored Procedure), 트리거(Trigger), 함수(Function)를 생성할 때 SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서를 확인하여 올바른 구문을 확인하세요.라는 오류 메시지가 나타나는 경우가 많습니다. 이 오류의 주요 원인은 세미콜론(;)입니다. MySQL 클라이언트는 기본적으로 세미콜론을 하나의 SQL 문장 끝으로 인식하기 때문에, BEGIN...END 블록 안에 여러 문장이 포함된 프로시
MySQL 테이블을 크기순으로 나열하기 MySQL에서 특정 데이터베이스에 속한 테이블들을 용량 크기 순서대로 확인하고 싶다면 information_schema.TABLES 뷰를 활용하면 간단하게 해결할 수 있습니다. 이 방법을 사용하면 각 테이블의 이름뿐만 아니라 행 수, 데이터 크기, 인덱스 크기까지 한 번에 조회할 수 있어 데이터베이스 용량 관리에 매우 유용합니다. 기본 쿼리 문법 SELECT TABLE_NAME, table_rows, data_length, index_length, round(((data_length + in
MySQL에서는 LIKE 연산자를 OR 연산자와 함께 사용할 수 있으며, 이 조합은 IN 연산자와 동일한 방식으로 작동합니다.두 가지 방식의 기본 문법을 먼저 살펴보겠습니다.방법 1 – LIKE와 OR 연산자 함께 사용select * from yourTableNamewhere yourColumnName like Value1 or yourColumnName like Value2 or yourColumnName like Value3 ... or yourColumnName like ValueN;방법 2 &ndas
MySQL에서 기존 레코드를 덮어쓰지 않고 특정 열의 값 끝에 새로운 내용을 이어 붙이고 싶다면 UPDATE 문과 CONCAT(), IFNULL() 함수를 함께 사용하면 됩니다. 기본 문법 열에 데이터를 추가할 때 사용하는 기본 문법은 다음과 같습니다. UPDATE yourTableName SET yourColumnName = concat(ifnull(yourColumnName,), anyValue1,anyValue2,anyValue); 여기서 IFNULL() 함수가 중요한 역할을 합니다. 해당 열의 값이 NULL인 경우 빈 문자열
MySQL에서는 IN 연산자를 활용하면 하나의 값이 여러 열(컬럼) 중 어디에 존재하는지 한 번의 쿼리로 확인할 수 있습니다. 이 방법은 여러 개의 OR 조건을 나열하는 것보다 코드가 간결하고 가독성이 뛰어나다는 장점이 있습니다.기본 문법SELECT * FROM yourTableName WHERE value IN(yourColumnName1, yourColumnName2, ......N);위 문법의 핵심은 일반적으로 열이 IN 뒤에 오고 값이 왼쪽에 위치한다는 점입니다. 즉, 특정 값이 지정한 여러 열 중 하나라도 일치하면 해당 행
MySQL 테이블에 동일한 데이터가 중복해서 저장되지 않도록 하려면 해당 컬럼에 UNIQUE(고유) 키 제약 조건을 추가해야 합니다. UNIQUE 키가 설정된 컬럼에는 같은 값이 두 번 이상 들어갈 수 없으며, 중복 값을 삽입하려고 하면 MySQL이 오류를 발생시키며 입력을 거부합니다.UNIQUE 키 추가 문법기본적인 문법은 다음과 같습니다.ALTER TABLE 테이블명 ADD CONSTRAINT UNIQUE KEY(컬럼명);참고로 과거에 사용되던 ALTER IGNORE TABLE ... ADD UNIQUE KEY(...) 형태는
MySQL에서 데이터베이스에 존재하는 테이블 목록을 확인할 때 SHOW TABLES 명령어를 사용합니다. 그런데 테이블이 많은 경우, 원하는 이름 패턴에 해당하는 테이블만 골라서 보고 싶을 때가 있습니다. 이럴 때 LIKE 연산자를 함께 사용하면 됩니다.기본 문법LIKE 연산자는 테이블 이름의 검색 패턴을 지정하는 역할을 하며, 기본 문법은 다음과 같습니다.SHOW TABLES LIKE yourPattern;패턴에는 와일드카드 문자를 활용할 수 있습니다.% : 0개 이상의 임의의 문자열과 일치_ : 정확히 한 글자와 일치실전 예제예
MySQL에서 SUM()은 대표적인 집계 함수(Aggregate Function) 중 하나입니다. 이 함수는 IF 조건문과 함께 사용하면 특정 조건에 맞는 데이터만 선택적으로 합산할 수 있어 매우 유용합니다. 이번 글에서는 저장 프로시저(Stored Procedure)와 결합하여 IF 조건 기반의 SUM 쿼리를 실습해 보겠습니다.1. 테스트 테이블 생성먼저 실습에 사용할 테이블을 생성합니다. 결제 방식(ModeOfPayment)과 금액(Amount) 두 개의 컬럼으로 구성된 간단한 테이블입니다.mysql> create tabl