MySQL에서 날짜 형식의 데이터로부터 연도만 추출하고 싶다면, 내장 함수인 YEAR() 함수를 사용하면 됩니다. 이 함수는 DATE 타입뿐만 아니라 다양한 방식으로 응용할 수 있어 매우 유용합니다.1. 기본 사용법: YEAR() 함수가장 간단한 방법은 YEAR() 함수에 현재 날짜를 반환하는 CURDATE() 함수를 전달하는 것입니다.mysql> SELECT YEAR(curdate()) as OnlyYearFromCurrentDate;실행 결과는 다음과 같습니다.+-------------------------+ | OnlyY
MySQL에서는 INSERT INTO SELECT 문을 활용하면 한 테이블의 행을 다른 테이블로 손쉽게 이동할 수 있습니다. 이 방법은 원본 테이블에서 데이터를 조회하여 대상 테이블에 그대로 삽입하는 방식으로 동작합니다.기본 문법행을 이동하는 기본적인 문법은 다음과 같습니다.INSERT INTO 대상테이블명 SELECT * FROM 원본테이블명 WHERE 조건;WHERE 절에 조건을 지정하면 특정 행만 선택적으로 이동할 수 있고, 조건을 생략하면 모든 행이 복사됩니다.예제 테이블 생성먼저 실습을 위해 두 개의 테이블을 만들어 보겠습
MySQL에서 DateTime 값을 문자열로 변환하려면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜·시간 데이터를 원하는 형식의 문자열로 자유롭게 변환해 주기 때문에, 화면 출력이나 리포트 생성 등 다양한 상황에서 매우 유용하게 활용됩니다. DATE_FORMAT() 함수의 기본 문법 기본적인 사용 문법은 다음과 같습니다. SELECT DATE_FORMAT(컬럼명, %d %m %y) AS 별칭 FROM 테이블명; 여기서 형식 지정자 %d, %m, %y는 각각 일(day), 월(month), 두 자리 연도(year
MySQL에서 문자열 형태로 저장된 날짜 데이터를 실제 DATE 타입으로 변환해야 하는 경우가 자주 있습니다. 예를 들어 CSV 파일에서 가져온 데이터나 외부 시스템에서 전달받은 값이 26,11,2018처럼 문자열로 되어 있을 때, 이를 올바른 날짜 형식으로 바꿔야 정확한 비교, 정렬, 집계 작업이 가능합니다.이럴 때 사용하는 것이 바로 STR_TO_DATE() 함수입니다. 이 함수는 지정된 형식 문자열(format string)에 따라 문자열을 해석하여 DATE 값으로 반환합니다.STR_TO_DATE() 기본 문법SELECT ST
MySQL 테이블 생성 날짜 조회하기MySQL에서 테이블의 생성 날짜(생성 시간)를 확인하려면 information_schema를 활용하면 됩니다. information_schema는 데이터베이스의 메타데이터(테이블 정보, 컬럼 정보 등)를 저장하는 시스템 스키마로, 이곳의 TABLES 테이블을 조회하면 원하는 테이블이 언제 생성되었는지 알 수 있습니다.기본 문법테이블 생성 시간을 조회하는 기본 쿼리 문법은 다음과 같습니다.SELECT create_time FROM INFORMATION_SCHEMA.TABLESWHERE table_
MySQL에서 하나의 쿼리로 테이블별 행 수 세기 데이터베이스에 속한 모든 테이블의 행(row) 수를 한 번의 쿼리로 확인하고 싶다면 INFORMATION_SCHEMA.TABLES 뷰의 TABLE_ROWS 컬럼을 활용하면 됩니다. 각 테이블을 일일이 열어서 COUNT(*)를 실행하는 것보다 훨씬 빠르고 간편하게 전체 현황을 파악할 수 있습니다. 기본 문법 아래와 같이 INFORMATION_SCHEMA.TABLES에서 테이블 이름과 TABLE_ROWS를 함께 조회하면 됩니다. SELECT table_name, TABLE_ROWS
MySQL에서 DECIMAL 타입의 값을 INT(정수)로 변환하려면 FLOOR() 함수를 사용하는 것이 가장 간단하고 확실한 방법입니다. FLOOR() 함수는 소수점 이하를 잘라내고 해당 값 이하의 가장 큰 정수를 반환합니다.SELECT FLOOR(yourColumnName) FROM yourTableName WHERE condition;그럼 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 DECIMAL 타입 컬럼을 가진 테이블을 생성합니다.mysql> create table DecimalToIntDemo
MySQL 데이터베이스 파일 저장 위치 확인하기MySQL이 데이터베이스 파일을 어디에 저장하는지 알고 싶다면 시스템 변수인 @@datadir를 사용하면 됩니다. 이 변수에는 MySQL 서버가 실제로 데이터 파일을 저장하는 디렉터리 경로가 담겨 있습니다.확인 쿼리는 다음과 같습니다.mysql> select @@datadir;위 쿼리를 실행하면 아래와 같이 데이터가 저장된 경로가 출력됩니다.+---------------------------------------------+ | @@datadir
MySQL 데이터베이스에 데이터를 삽입하려면 INSERT 명령어를 사용합니다. 기본 문법은 다음과 같습니다.INSERT INTO 테이블명(컬럼명1, ..., 컬럼명N) VALUES(값1, 값2, ..., 값N);이 글에서는 Java 프로그래밍 언어를 이용해 MySQL 데이터베이스에 레코드를 삽입하는 전체 과정을 단계별로 살펴보겠습니다.1단계: MySQL 테이블 생성하기먼저 데이터를 저장할 테이블을 만들어야 합니다. 아래 쿼리로 InsertDemo 테이블을 생성합니다.mysql> create table InsertDemo
MySQL DATE_ADD() 함수로 날짜 더하기MySQL에서 DATETIME 또는 DATE 타입의 컬럼에 하루(또는 원하는 일수)를 더하려면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 지정한 날짜 값에 특정 시간 간격을 더한 결과를 반환합니다.기본 문법SELECT DATE_ADD(yourColumnName, INTERVAL yourIntegerValue DAY) AS anyVariableName FROM yourTableName;예제 테이블 생성먼저 실습용 테이블을 만들어 보겠습니다.mysql> create ta
MySQL 테이블 컬럼의 데이터 타입 확인하기MySQL에서 테이블 각 컬럼(열)의 데이터 타입을 확인하고 싶다면 information_schema.columns 뷰를 활용하면 됩니다. 이 시스템 뷰에는 데이터베이스 내 모든 테이블의 컬럼 정보가 저장되어 있어, 별도의 도구 없이 SQL 쿼리만으로 손쉽게 스키마 구조를 파악할 수 있습니다.기본 문법SELECT DATA_TYPEFROM INFORMATION_SCHEMA.COLUMNSWHERE table_schema = 데이터베이스명 AND table_name = 테이블명;table_s
MySQL에서 특정 값 앞에 선행 0(leading zero)을 추가하려면 LPAD() 함수를 사용하면 됩니다. LPAD는 문자열의 왼쪽을 지정한 길이만큼 특정 문자로 채워주는 함수로, 사원번호·주문번호·상품코드처럼 자릿수를 고정해야 하는 데이터를 다룰 때 매우 유용합니다.LPAD() 함수 기본 문법기본 문법은 다음과 같습니다.select lpad(yourColumnName, lengthofColumnValue+1, 0) from yourTableName;첫 번째 인수는 대상 컬럼 또는 문자열, 두 번째 인수는 결과 문자열의 전체
MySQL 데이터베이스 엔진(스토리지 엔진)이란?스토리지 엔진(storage engine)은 데이터베이스 관리 시스템(DBMS)이 데이터베이스에 저장된 데이터를 생성(Create), 읽기(Read), 갱신(Update)할 때 실제로 사용하는 핵심 소프트웨어 모듈입니다. 같은 MySQL 서버라도 어떤 스토리지 엔진을 선택하느냐에 따라 트랜잭션 처리 방식, 잠금(locking) 단위, 인덱스 구조 등 데이터 처리 방식이 크게 달라집니다.현재 MySQL 최신 버전의 기본(default) 스토리지 엔진은 InnoDB입니다. InnoDB는
삼항 조건부 연산자란?C, C++, Java 등의 프로그래밍 언어에서 삼항 조건부 연산자는 ?: 형태로 표현되며, 조건의 참·거짓 여부에 따라 서로 다른 값을 반환하는 연산자입니다. 기본 문법은 다음과 같습니다.(조건식) ? 표현식1 : 표현식2;위 문법에서 조건식이 참(true)으로 평가되면 표현식1이 실행되고, 거짓(false)으로 평가되면 표현식2가 실행됩니다.MySQL에서는 삼항 연산자를 지원하지 않습니다그러나 MySQL에는 삼항 조건부 연산자(?:)가 존재하지 않기 때문에 위 문법을 그대로 사용할 수 없습니다. 대신 MyS
MySQL에서 생년월일로 나이 계산하기MySQL에서는 DATE_FORMAT() 함수를 활용하면 생년월일을 기준으로 나이를 간단하게 계산할 수 있습니다. 핵심 원리는 now() 함수로 현재 날짜와 시간을 구한 뒤, 생년월일과의 차이를 일(day) 단위로 계산하고, 이를 다시 연도 형식으로 변환하는 것입니다.사용되는 주요 함수 살펴보기나이 계산에 사용되는 각 함수의 역할은 다음과 같습니다.now(): 현재 날짜와 시간을 반환합니다.DATEDIFF(): 두 날짜 사이의 일수 차이를 계산합니다.FROM_DAYS(): 일수를 날짜 값으로 변
MySQL에서 저장 프로시저(Stored Procedure)나 함수(Function)의 정의를 확인하려면 SHOW 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.SHOW CREATE PROCEDURE yourProcedureName;저장 프로시저 생성 예제문법을 제대로 이해하기 위해 실제로 프로시저를 하나 생성한 뒤 그 정의를 직접 확인해 보겠습니다. 먼저 student 테이블의 모든 레코드를 조회하는 간단한 저장 프로시저를 만들어 보겠습니다.mysql> delimiter //mysql> create proced
MySQL에서 현재 날짜를 기준으로 최근 며칠 전의 날짜를 구하고 싶을 때가 자주 있습니다. 예를 들어 오늘로부터 6일 전의 날짜가 필요하다면 DATE_ADD() 함수나 DATE_SUB() 함수를 사용하면 간단하게 해결할 수 있습니다.기본 문법1. DATE_ADD() 함수 사용SELECT DATE_ADD(CURDATE(), INTERVAL -원하는일수 DAY);2. DATE_SUB() 함수 사용SELECT DATE_SUB(CURDATE(), INTERVAL 원하는일수 DAY);3. 마이너스(-) 연산자 사용SELECT CURDATE
MySQL에는 다른 데이터베이스처럼 SELECT INTO 문이 직접 제공되지 않습니다. 대신 CREATE TABLE ... SELECT 명령을 사용하면 동일한 기능을 손쉽게 구현할 수 있습니다. 기본 문법은 다음과 같습니다.CREATE TABLE yourTableName SELECT * FROM yourOriginalTableName;예제 테이블 생성하기먼저 실습에 사용할 테이블을 만들어 보겠습니다.mysql> create table SelectIntoDemo-> (-> Id int,-> Name varchar
시스템에 MySQL을 설치하면 기본적으로 3306번이 MySQL 서버의 기본 포트 번호로 설정됩니다. 이는 MySQL이 클라이언트와 통신할 때 사용하는 표준 포트로, 별도의 설정 변경이 없다면 항상 3306을 사용하게 됩니다.MySQL 서버 포트 번호 확인하기현재 사용 중인 MySQL 서버의 포트 번호를 확인하려면 SHOW VARIABLES 명령어를 사용하면 됩니다. 아래 쿼리를 실행해 보세요.mysql> SHOW VARIABLES WHERE Variable_Name = port;쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
MySQL 테이블의 기본 문자 집합 변경하기MySQL에서 테이블의 기본 문자 집합(default charset)을 변경해야 하는 경우가 종종 있습니다. 예를 들어 다국어 데이터를 저장하거나 기존 인코딩 문제를 해결할 때가 그렇습니다. 이때 ALTER TABLE ... CONVERT TO 구문을 사용하면 간단하게 처리할 수 있습니다.기본 문법테이블의 기본 문자 집합을 변경하는 기본 문법은 다음과 같습니다.ALTER TABLE yourTableName CONVERT TO CHARACTER SET yourCharsetName;이 구문은