MySQL에서 단일 쿼리로 부울 필드 값 반전하기 네, 가능합니다. MySQL에서 제공하는 IF() 함수를 사용하면 하나의 UPDATE 쿼리만으로 부울(Boolean) 필드의 값을 손쉽게 반전(뒤집기)할 수 있습니다. 기본 문법은 다음과 같습니다. UPDATE yourTableName SET yourBooleanColumnName = IF(yourBooleanColumnName, 0, 1); IF() 함수는 첫 번째 인자가 참(TRUE, 1)이면 두 번째 인자를 반환하고, 거짓(FALSE, 0)이면 세 번째 인자를 반환합니다. 따라
MySQL에서 하나의 행(row)에 있는 여러 컬럼 값을 더해 합계를 구하고 싶다면 아래의 방법을 사용할 수 있습니다. 컬럼에 NULL 값이 있는지 없는지에 따라 사용해야 하는 문법이 달라집니다.Case 1 – NULL 값이 없는 경우컬럼에 NULL 값이 전혀 없다면 다음과 같이 각 컬럼을 단순히 더하면 됩니다.SELECT yourColumnName1+yourColumnName2+yourColumnName3+.......+N AS anyVariableName FROM yourTableName;Case 2 – NULL 값이 있는 경우
MySQL에서 특정 문자열에 숫자가 포함되어 있는지 확인하고 싶다면 REGEXP, 즉 정규 표현식(Regular Expression)을 활용하면 됩니다. 정규 표현식을 사용하면 복잡한 조건 처리 없이 간단한 쿼리 한 줄로 숫자 포함 여부를 판별할 수 있습니다.기본 문법문자열에 숫자가 포함되어 있는지 검사하는 기본 문법은 다음과 같습니다.SELECT * FROM yourTableName WHERE yourColumnName REGEXP [0-9];여기서 [0-9]는 0부터 9까지의 임의의 숫자 하나를 의미합니다. 따라서 해당 컬럼의
MySQL에서 컬럼 이름을 알파벳 순서로 가져오기MySQL에서 테이블의 컬럼 이름을 알파벳 순서로 조회하려면 ORDER BY 절을 사용해야 합니다. 기본 문법은 다음과 같습니다.SELECT anyReferenceName.COLUMN_NAMEFROM INFORMATION_SCHEMA.COLUMNS anyReferenceNameWHERE anyReferenceName.TABLE_NAME = yourTableNameORDER BY anyReferenceName.COLUMN_NAME;먼저 INFORMATION_SCHEMA.COLUMNS를
MySQL 쿼리 결과에 일련번호(행 번호) 생성하기MySQL에서 조회된 결과에 일련번호, 즉 행 번호를 부여하려면 사용자 변수(user variable)를 활용하면 됩니다. 기본 문법은 다음과 같습니다.SELECT @변수명 := @변수명 + 1 AS 별칭, 컬럼명1, 컬럼명2, 컬럼명3, ...NFROM 테이블명, (SELECT @변수명 := 0) AS 변수초기화;이 문법의 핵심은 크로스 조인(cross join)을 통해 변수를
MySQL에서 소수점 이하 후행 0을 제거하는 방법MySQL에서 DECIMAL 타입으로 저장된 값은 컬럼에 정의된 소수점 자릿수만큼 후행 0(trailing zero)이 함께 표시됩니다. 예를 들어 decimal(5,2)로 정의된 컬럼에 405.5를 저장하면 405.50으로 출력되죠. 이런 후행 0을 제거하고 싶다면 TRIM() 함수를 활용하면 간단하게 해결할 수 있습니다.기본 문법후행 0을 제거하는 기본 문법은 다음과 같습니다.SELECT TRIM(yourColumnName)+0 FROM yourTableName;여기서 TRIM(
MySQL에서 두 개의 LIKE 문을 OR로 결합하기MySQL에서는 OR 연산자를 사용하여 두 개 이상의 LIKE 조건을 하나의 쿼리에서 결합할 수 있습니다. 기본 문법은 다음과 같습니다.SELECT * FROM yourTableNameWHERE (yourColumnName LIKE %yourValue1% OR yourColumnName LIKE %yourValue2%)AND yourColumnName = yourValue;위 문법에서 핵심은 여러 개의 LIKE 조건을 괄호로 묶고, 각 조건 사이에 OR 연산자를 넣는 것입니다. 그
MySQL에서 테이블의 스토리지 엔진을 변경하려면 먼저 현재 사용 중인 엔진이 무엇인지 확인해야 합니다. 대표적인 엔진으로는 트랜잭션을 지원하는 InnoDB와 속도가 빠르지만 트랜잭션을 지원하지 않는 MyISAM이 있습니다. 1단계: 현재 테이블의 엔진 확인하기 현재 테이블이 어떤 엔진을 사용하고 있는지 확인하려면 information_schema.tables의 ENGINE 컬럼을 조회하면 됩니다. 기본 문법은 다음과 같습니다. SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_S
MySQL에서 데이터를 조회할 때 NULL 값, 빈 문자열(), 공백만 있는 값을 모두 제외하고 실제로 의미 있는 데이터만 선택해야 하는 경우가 자주 발생합니다. 이 글에서는 IS NOT NULL 조건과 TRIM() 함수를 조합하여 이러한 문제를 해결하는 방법을 단계별로 알아보겠습니다.기본 문법비어 있지 않은 열 값을 선택하려면 아래와 같은 쿼리 구문을 사용합니다.SELECT * FROM yourTableName WHERE yourColumnName IS NOT NULL AND TRIM(yourColumnName) <>
MySQL에서 특정 테이블에 설정된 고유(UNIQUE) 제약 조건을 확인하려면 information_schema.TABLE_CONSTRAINTS 뷰를 활용하면 됩니다. 이 뷰는 데이터베이스 내 모든 테이블의 제약 조건 정보를 담고 있어, 별도의 도구 없이 SQL 쿼리만으로 손쉽게 조회할 수 있습니다.UNIQUE 제약 조건 조회 기본 문법기본적인 조회 문법은 다음과 같습니다.SELECT DISTINCT CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE TABLE_NAME =
MySQL에서 뷰 조회(SELECT) 권한만 부여하기MySQL에서 특정 사용자에게 뷰(View)를 조회할 수 있는 권한만 부여하려면 GRANT SELECT 구문을 사용합니다. 기본 문법은 다음과 같습니다.GRANT SELECT ON 데이터베이스명.뷰이름 TO 사용자명@호스트;권한을 부여하기 전에 먼저 대상 뷰의 이름과 사용자 계정 정보를 확인해야 합니다. 아래 단계별로 살펴보겠습니다.1단계: 데이터베이스의 모든 뷰 목록 확인먼저 해당 데이터베이스에 존재하는 모든 뷰의 이름을 조회합니다. 다음 문법을 사용하세요.SHOW FULL TA
MySQL에서 TYPE = InnoDB는 더 이상 작동하지 않습니다MySQL에서 TYPE = InnoDB 구문을 사용하면 구문 오류(예외)가 발생합니다. 그 이유는 TYPE 키워드가 MySQL 5.1 버전부터 더 이상 권장되지 않는(deprecated) 구문으로 분류되었고, 이후 버전에서는 완전히 제거되었기 때문입니다. 따라서 최신 MySQL 환경에서는 반드시 ENGINE = InnoDB를 사용해야 합니다.사용 중인 MySQL 버전 확인하기이 글의 예제에서는 MySQL 8.0.12 버전을 기준으로 설명합니다. 먼저 다음 쿼리로 현재
MySQL에서 Employee(직원) 테이블의 최대 급여와 두 번째로 높은 급여를 조회하려면 LIMIT 절과 OFFSET 절을 함께 사용하면 됩니다. 이 방법은 급여 기준으로 내림차순 정렬한 후 상위 2개의 행만 가져오는 방식으로, 가장 간단하고 널리 사용되는 방법입니다.기본 문법SELECT yourColumnName1, yourColumnName2, ....N FROM yourTableName ORDER BY yourColumnName DESC LIMIT 2 OFFSET 0;ORDER BY ... DESC: 지정한 열(급여)을 내
MySQL 쿼리 결과를 CSV 형식으로 화면에 출력하기MySQL에서 쿼리 결과를 파일로 내보내지 않고 화면에 곧바로 CSV(Comma Separated Value) 형식으로 표시하고 싶다면 concat() 함수를 사용하면 됩니다. 각 컬럼 값을 쉼표(,)로 연결해 하나의 문자열로 만드는 방식입니다.기본 구문mysql> select concat(StudentId,,,StudentName,,,StudentAge) as CSVFormat from CSVFormatOutputs;구문이 어떻게 동작하는지 이해하기 위해 실제 예제 테이블
서브쿼리(하위 쿼리)를 활용하면 Employee 테이블에서 최대 급여와 두 번째 최대 급여를 간단하게 조회할 수 있습니다. 이 글에서는 실제 예제를 통해 단계별로 방법을 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 아래 쿼리를 실행해 EmployeeMaxAndSecondMaxSalary 테이블을 만들어 보세요.mysql> create table EmployeeMaxAndSecondMaxSalary -> ( -> EmployeeId int, -> Employee
MySQL에서 특정 패턴과 일치하는 행을 우선적으로 정렬하고 싶을 때가 있습니다. 예를 들어, 이름에 Taylor가 포함된 행을 가장 먼저, Miller가 포함된 행을 그다음으로 출력하고 싶은 경우입니다. 이럴 때는 CASE 문과 LIKE 연산자를 함께 사용하면 됩니다.기본 문법ORDER BY 절 안에 CASE 문을 작성하여, LIKE 패턴에 따라 정렬 순위를 지정하는 방식입니다. 기본 문법은 다음과 같습니다.SELECT * FROM yourTableName ORDER BY CASE WHEN yourColumnName
테이블에서 특정 값이 몇 번 등장하는지 확인하려면 COUNT() 집계 함수를 GROUP BY 절과 함께 사용하면 됩니다. 이 조합은 각 그룹(값)별로 행의 개수를 손쉽게 집계해 주기 때문에 데이터 분석에서 가장 널리 쓰이는 패턴 중 하나입니다.기본 문법SELECT yourColumnName, COUNT(*) AS anyVariableName FROM yourTableName GROUP BY yourColumnName;예제 테이블 생성문법을 실제로 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 아래 쿼리는 자동차 정보를 저장할
MySQL에서 쿼리 결과를 CSV(쉼표로 구분된 값) 형식으로 출력하려면 CONCAT_WS() 함수를 사용하면 됩니다. CONCAT_WS는 Concatenate With Separator의 약자로, 여러 문자열을 지정한 구분자로 연결해주는 유용한 함수입니다.CONCAT_WS() 기본 문법SELECT CONCAT_WS(,, 컬럼명1, 컬럼명2, 컬럼명3, ....N) AS 별칭 FROM 테이블명;첫 번째 인자에는 구분자(여기서는 쉼표 ,)를 지정하고, 이후 연결하고 싶은 컬럼들을 나열합니다. 문법을 더 쉽게 이해하기 위해 실제 예제
MySQL에서 데이터를 정렬할 때 일반적으로는 오름차순(ASC)이나 내림차순(DESC)을 사용하지만, 때로는 개발자가 직접 지정한 특정 문자열 순서대로 결과를 정렬해야 하는 경우가 있습니다. 이럴 때 유용하게 쓸 수 있는 것이 바로 FIELD() 함수입니다.FIELD() 함수 기본 문법FIELD() 함수를 활용한 ORDER BY 절의 기본 문법은 다음과 같습니다.SELECT * FROM yourTableName ORDER BY FIELD(yourColumnName, yourValue1, yourValue2, yourValue3, .
MySQL에서 날짜 데이터의 연도(year) 부분만 변경하려면 DATE_FORMAT() 함수를 UPDATE 명령과 함께 사용하면 됩니다. 이 방법을 사용하면 월과 일은 그대로 유지한 채 연도 값만 손쉽게 바꿀 수 있습니다.기본 문법UPDATE 테이블이름 SET 날짜컬럼이름 = DATE_FORMAT(날짜컬럼이름, 변경할연도-%m-%d);예제 테이블 생성문법을 실제로 이해하기 위해 예제 테이블을 먼저 만들어 보겠습니다. 아래 쿼리로 테이블을 생성합니다.mysql> create table ChangeYear -> (