Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL

  1. MySQL에서 DATEDIFF() 함수로 DateTime 비교하고 열 간 날짜 차이 구하는 방법

    MySQL에서 두 개의 DateTime 값을 비교하거나 서로 다른 열에 저장된 날짜 간의 차이를 구하려면 DATEDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 사이의 일수(day) 차이를 반환하며, 이를 응용하면 특정 조건(예: 23세 이상)에 맞는 레코드만 손쉽게 필터링할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 만들어 보겠습니다. 생년월일(DOB)과 현재 날짜(CurrentDate), 두 개의 datetime 컬럼으로 구성됩니다.mysql> create table DemoTable(DOB da

  2. MySQL float 필드가 모든 소수를 허용하지 않는 이유와 해결 방법

    MySQL에서 float 데이터 타입의 문제점MySQL에서 FLOAT 타입은 부동소수점 방식으로 숫자를 저장하기 때문에 정밀도(precision) 문제가 발생할 수 있습니다. 즉, 모든 소수 값을 정확하게 저장하지 못하고 일부 값이 반올림되거나 거부되는 현상이 나타날 수 있습니다.이 문제를 해결하려면 고정 소수점 방식으로 숫자를 저장하는 DECIMAL() 데이터 타입을 사용하는 것이 좋습니다. DECIMAL은 지정한 자릿수만큼 값을 정확하게 저장하므로 금액처럼 정확성이 중요한 데이터에 적합합니다.DECIMAL을 사용한 테이블 생성먼

  3. MySQL INSERT ... ON DUPLICATE KEY UPDATE 완벽 정리: 중복 키 처리 방법

    INSERT ... ON DUPLICATE KEY UPDATE란?MySQL의 INSERT ... ON DUPLICATE KEY UPDATE 구문은 새로운 행을 삽입하려 할 때 UNIQUE 키 또는 PRIMARY KEY에서 중복이 발생하면, 오류를 반환하는 대신 기존 행을 자동으로 업데이트(UPDATE)하는 방식으로 동작합니다. 즉, 실제 업데이트는 중복 값이 존재하는 경우에만 수행됩니다.이 구문은 데이터를 조건에 따라 삽입하거나 갱신하는 작업(UPSERT)을 하나의 쿼리로 처리할 수 있어 매우 유용합니다.1. 예제 테이블 생성먼저

  4. MySQL에서 여러 행을 하나로 병합하는 방법 – GROUP_CONCAT() 완벽 가이드

    MySQL에서 동일한 기준에 해당하는 여러 행(row)의 데이터를 하나의 문자열로 합쳐야 할 때가 있습니다. 이럴 때 유용하게 사용할 수 있는 것이 바로 GROUP_CONCAT() 함수입니다. 이 글에서는 실제 예제를 통해 GROUP_CONCAT()를 활용해 행을 병합하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 연습용 테이블을 생성합니다.mysql> create table DemoTable734 ( Id int, Name varchar(100) ); Query OK, 0 rows affect

  5. MySQL 테이블에서 무작위(랜덤) 행 하나를 선택하는 방법

    MySQL에서 테이블에 저장된 데이터 중 무작위(random)로 값을 선택하고 싶다면 rand() 함수를 활용하면 됩니다. 이번 글에서는 무작위 값 중 단 하나의 행만 가져오는 방법을 살펴보겠습니다. 하나만 선택하기 때문에 쿼리 마지막에 LIMIT 1을 함께 사용합니다.기본 문법select *from yourTableName order by rand() limit 1;동작 원리는 간단합니다. order by rand()가 모든 행에 난수를 부여한 뒤 이를 기준으로 정렬하고, limit 1이 정렬된 결과 중 첫 번째 행 한 개만 반환

  6. MySQL REGEXP로 특정 값 뒤에 오는 선택적 문자열까지 일치하는 레코드 조회하기

    MySQL에서 REGEXP 연산자를 사용하면 정규 표현식 기반으로 원하는 패턴과 일치하는 레코드를 손쉽게 조회할 수 있습니다. 이번 글에서는 EMPLOYEE:100처럼 특정 코드 뒤에 추가 숫자가 붙어 있거나 줄이 끝나는 경우 모두 일치시키는 방법을 알아보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable(EmployeeCode varchar(100)); Query OK, 0 rows affected (0.56 sec)2. 샘플 데이터 삽입INSERT 명령을 사

  7. MySQL에서 특정 값 하나만 제외하고 전체 행을 업데이트하는 방법 (IF() 함수 활용)

    MySQL에서 특정 열의 값을 일괄 수정할 때, 단 하나의 값이나 특정 행만 그대로 유지해야 하는 경우가 종종 있습니다. 이럴 때 IF() 함수를 사용하면 조건 평가 결과에 따라 서로 다른 값을 할당해, 원하는 행만 업데이트 대상에서 손쉽게 제외할 수 있습니다. 1. 예제 테이블 생성 먼저 실습에 사용할 테이블을 만들어 보겠습니다. mysql> create table DemoTable736 ( CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, CustomerName va

  8. MySQL에서 DEFAULT CURRENT_TIMESTAMP와 ON UPDATE CURRENT_TIMESTAMP 설정하는 방법

    MySQL에서 DEFAULT CURRENT_TIMESTAMP와 ON UPDATE CURRENT_TIMESTAMP 옵션을 사용하면, 해당 컬럼은 기본값으로 현재 타임스탬프를 가지며, 레코드가 수정될 때마다 자동으로 현재 시간으로 갱신됩니다.이 두 옵션은 게시글의 작성일·수정일 관리, 로그 기록 등 데이터 변경 이력을 추적해야 하는 상황에서 매우 유용하게 활용됩니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable737 ( StudentId int NO

  9. MySQL에서 빈 뷰(View)를 생성하는 방법 완벽 가이드

    MySQL에서 빈 뷰(View)란 열 구조는 존재하지만 실제 데이터는 하나도 담고 있지 않은 뷰를 의미합니다. 이러한 빈 뷰를 생성하려면 CREATE OR REPLACE VIEW 구문에 항상 거짓(False)이 되는 WHERE 조건을 결합하면 됩니다.MySQL 빈 뷰 생성 기본 문법MySQL에서 빈 뷰를 만들 때 사용하는 기본 문법은 다음과 같습니다.create or replace view yourViewName as select yourValue AS yourColumnName, yourValue AS yourColumnName2

  10. MySQL 정규식(REGEXP)으로 알파벳 대소문자와 숫자를 모두 포함하는 문자열 찾기

    개요MySQL에서 소문자(a-z), 대문자(A-Z), 숫자(0-9)를 모두 포함하는 문자열을 검색하려면 REGEXP에 BINARY 키워드를 함께 사용하고, 각 조건을 AND 연산자로 연결하면 됩니다.BINARY를 사용하는 이유는 기본적으로 MySQL의 문자열 비교가 대소문자를 구분하지 않기 때문입니다. BINARY를 붙이면 대소문자를 엄격하게 구분하여 정확한 패턴 매칭이 가능합니다.예제 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create table DemoTable738 (UserId varchar(10

  11. MySQL에서 최대 추천(Upvote) 값을 가진 레코드를 검색하는 방법

    이미지 경로와 추천 수(Upvote)를 함께 관리하는 테이블을 예로 들어 보겠습니다. 이때 첫 번째 컬럼은 아래와 같이 자동 증가(AUTO_INCREMENT)되는 Id로 설정합니다.1. 테이블 생성하기먼저 이미지 경로(ImagePath)와 추천 수(UpvoteValue)를 저장할 테이블을 생성합니다.mysql> create table DemoTable(    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    ImagePat

  12. MySQL에서 동일한 열의 여러 행 정수 합계 구하기 – SUM() 함수 활용법

    MySQL에서 같은 열의 여러 행 값 합계 구하기데이터베이스 작업을 하다 보면 하나의 열(column)에 저장된 여러 행(row)의 숫자 값을 모두 더한 합계가 필요한 경우가 자주 있습니다. MySQL에서는 SUM() 집계 함수를 사용하면 이를 아주 간단하게 처리할 수 있습니다. 이번 글에서는 테이블 생성부터 합계 조회까지 전체 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다. Price라는 이름의 int 타입 열 하나로 구성된 간단한 테이블입니다.mysql> create table D

  13. MySQL에서 숫자의 거듭제곱 계산하기 – POWER() 함수 활용법

    MySQL에서 숫자의 거듭제곱 계산하기MySQL에서 숫자의 거듭제곱을 계산하려면 POWER() 함수를 사용하면 됩니다. 이 함수는 두 개의 인수를 받으며, 첫 번째 인수는 밑(base), 두 번째 인수는 지수(exponent)입니다. 예를 들어 POWER(2, 3)은 2의 3제곱인 8을 반환합니다.먼저 실습용 테이블을 생성해 보겠습니다.mysql> create table DemoTable    (      Amount int &n

  14. MySQL에서 VARCHAR 숫자 열을 ASC 또는 DESC로 정렬하는 방법

    MySQL에서 VARCHAR 타입으로 저장된 숫자 데이터를 단순히 ORDER BY로 정렬하면 문자열 기준(사전순)으로 정렬되기 때문에 의도한 숫자 크기순 결과를 얻을 수 없습니다. 이 문제를 해결하려면 CAST() 함수를 사용해 값을 숫자형으로 변환한 뒤 정렬해야 합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable726 (Value varchar(100)); Query OK, 0 rows affected (0.60 sec)2. 레코드 삽입하기INSERT 명령어

  15. MySQL 단일 쿼리로 다른 열 기준 사용자 지정 순서의 값 선택하기

    IN() 연산자를 활용한 사용자 지정 순서 조회MySQL에서 테이블의 한 열을 기준으로 조건을 걸고, 다른 열의 값을 원하는 순서대로 가져오려면 IN() 연산자를 사용하면 됩니다. IN()은 WHERE 절과 함께 사용되어 지정한 값 목록에 해당하는 행만 필터링해 줍니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable727 (    Name varchar(100),    Score int);Query OK,

  16. 영국(UK) 날짜 형식을 MySQL 날짜로 변환하는 방법

    영국식 날짜 형식은 일-월-년(day-month-year) 순서를 사용합니다. 이러한 형식의 문자열을 MySQL 날짜 타입으로 변환하려면 STR_TO_DATE() 함수를 활용하면 됩니다.STR_TO_DATE() 기본 구문select str_to_date(yourColumnName,%d/%m/%Y) from yourTableName;여기서 %d는 일, %m은 월, %Y는 4자리 연도를 의미합니다.예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable728 (DueDat

  17. MySQL에서 UNION ALL로 과목별 학생 점수를 한 개의 열에 표시하는 방법

    여러 과목의 점수가 각각 다른 열에 저장되어 있을 때, 이를 과목명과 점수 형태로 하나의 열에 나열해야 하는 경우가 자주 있습니다. 예를 들어 보고서를 만들거나 데이터를 정규화할 때 유용한 작업인데요. 이럴 때 UNION ALL을 활용하면 간단하게 해결할 수 있습니다.1. 샘플 테이블 생성하기먼저 학생 정보와 과목별 점수를 저장할 테이블을 생성합니다.mysql> create table DemoTable729 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Studen

  18. MySQL에서 준비된 명령문(PREPARE)의 SQL 결과를 변수에 할당하는 방법

    MySQL에서 준비된 명령문(Prepared Statement)의 실행 결과를 변수에 저장해야 하는 경우가 종종 있습니다. 이럴 때 가장 효과적인 방법은 저장 프로시저(Stored Procedure)를 활용하는 것입니다. 이 글에서는 실제 예제를 통해 단계별로 그 과정을 살펴보겠습니다. 1. 예제 테이블 생성 먼저 실습에 사용할 테이블을 생성합니다. mysql> create table DemoTable(Id int, Name varchar(100)); Query OK, 0 rows affected (1.51 sec) 2.

  19. MySQL에서 시작일과 종료일 사이의 일수 계산하기 – DATEDIFF() 함수 완벽 가이드

    MySQL DATEDIFF() 함수로 날짜 범위의 일수 구하기MySQL에서 두 날짜 사이의 일수를 계산하려면 DATEDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 간의 차이를 일 단위로 반환하며, 결과가 음수가 나올 수 있으므로 ABS() 함수와 함께 사용하면 항상 양수 값을 얻을 수 있습니다.1. 테이블 생성하기먼저 시작일(StartDate)과 종료일(EndDate)을 저장할 테이블을 생성합니다.mysql> create table DemoTable730 ( StartDate date, EndDate da

  20. MySQL에서 문자열(VARCHAR)을 DOUBLE로 변환하는 방법

    MySQL에서 문자열(VARCHAR)을 DOUBLE로 변환하기MySQL에서는 VARCHAR 타입으로 저장된 숫자 형태의 문자열을 간단한 산술 연산만으로 double(실수) 타입으로 변환할 수 있습니다. 이 글에서는 실제 예제를 통해 변환 과정을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable731 (Value varchar(100));Query OK, 0 rows affected (0.50 sec)2. 데이터 삽입INSERT 명령어를 사용하여

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:84/229  20-컴퓨터/Page Goto:1 78 79 80 81 82 83 84 85 86 87 88 89 90