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

MySQL

  1. MySQL에서 초 단위 값을 TIMESTAMP로 변환하는 방법 – FROM_UNIXTIME() 함수 활용하기

    FROM_UNIXTIME() 함수란?MySQL에서 초(second) 단위의 숫자 값을 TIMESTAMP(날짜·시간) 형식으로 변환하려면 FROM_UNIXTIME() 함수를 사용하면 됩니다. 이 함수는 UNIX_TIMESTAMP()와 정확히 반대되는 역할을 수행합니다. 즉, UNIX_TIMESTAMP()가 날짜·시간을 초 단위 정수로 변환한다면, FROM_UNIXTIME()은 그 초 값을 다시 사람이 읽기 쉬운 날짜·시간 형식으로 되돌려 줍니다.기본 사용 예시예를 들어, 11576070초는 TIMESTAMP 값인 1970-05-15

  2. MySQL FROM_UNIXTIME() 함수로 TIMESTAMP 데이터 타입의 시작 범위 확인하기

    FROM_UNIXTIME() 함수란?MySQL의 FROM_UNIXTIME() 함수는 유닉스 타임스탬프, 즉 초 단위의 숫자를 TIMESTAMP 값으로 변환하는 함수입니다. 이 함수의 특성을 활용하면 TIMESTAMP 데이터 타입이 표현할 수 있는 시작 범위를 아주 간단하게 확인할 수 있습니다.시작 범위 확인 방법FROM_UNIXTIME() 함수에 인수로 0초를 전달하면, 유닉스 에포크(Unix Epoch) 기준 시점에 해당하는 TIMESTAMP 데이터 타입의 시작 값을 반환받을 수 있습니다.mysql> Select FROM_U

  3. MySQL에서 TIME·DATETIME 값을 숫자 형식으로 변환하는 방법

    MySQL에서 TIME(N) 또는 DATETIME(N) 값을 숫자 형식으로 변환하려면 해당 값에 0을 더하면 됩니다. 여기서 N은 초 단위의 소수점 이하 자릿수(소수 초 정밀도)를 의미하며, N 값에 따라 변환 결과가 달라집니다.변환 시 적용되는 기본 규칙은 다음과 같습니다.N = 0 → 정수(INTEGER) 형태로 변환 0 → 소수(DECIMAL) 형태로 변환정수(INTEGER)로 변환N이 0일 경우, TIME(N)과 DATETIME(N) 값은 정수 형태로 변환됩니다. 예를 들어 CURTIME()과 NOW()의 반환값에 +0을 적

  4. MySQL에서 유효하지 않은 날짜 저장을 허용하는 방법

    ALLOW_INVALID_DATES 모드란?MySQL은 기본적으로 존재하지 않는 날짜(예: 11월 31일)를 DATE 컬럼에 저장하려고 하면 오류를 발생시킵니다. 하지만 SQL 모드를 ALLOW_INVALID_DATES로 설정하면 MySQL이 실제로 존재하지 않는 날짜 값도 테이블에 저장할 수 있게 됩니다.SQL 모드 활성화 방법다음과 같이 세션 단위로 SQL 모드를 변경할 수 있습니다.mysql> SET sql_mode = ALLOW_INVALID_DATES;유효하지 않은 날짜 삽입 예제모드를 활성화한 후에는 11월에 존재하

  5. MySQL에서 생년월일로 나이 계산하는 방법 완벽 정리

    데이터베이스 작업을 하다 보면 생년월일 정보를 바탕으로 현재 나이를 계산해야 하는 경우가 자주 발생합니다. MySQL에서는 여러 날짜 함수를 조합하여 간단하게 나이를 구할 수 있습니다. 이 글에서는 그 방법을 단계별로 살펴보겠습니다.1단계: 생년월일을 사용자 변수에 저장하기먼저 SET 문을 사용하여 생년월일 값을 사용자 변수에 저장합니다.mysql> SET @dob = 1984-01-17; Query OK, 0 rows affected (0.00 sec)위 쿼리는 1984-01-17이라는 생년월일 값을 @dob 변수에 할당합니

  6. MySQL에서 뷰(VIEW)를 활용해 CHECK 제약 조건을 에뮬레이트하는 방법

    MySQL은 참조 무결성을 위한 외래 키(Foreign Key)는 지원하지만, CHECK 제약 조건은 공식적으로 지원하지 않습니다. 하지만 WITH CHECK OPTION이 설정된 뷰(View)를 활용하면 CHECK 제약 조건과 유사한 효과를 얻을 수 있습니다. 아래 예제를 통해 그 방법을 살펴보겠습니다.예제: 문제 상황영문자 2개 – 숫자 3개 – 영문자 2개라는 고정된 형식의 차량 등록 번호를 저장하는 테이블 car1이 있다고 가정해 보겠습니다.mysql> CREATE TABLE car1 (number CHAR(9));Qu

  7. MySQL에서 연도, 주 번호, 요일만으로 날짜를 계산하는 방법

    MySQL에서는 연도(year), 주 번호(week), 요일(day) 세 가지 값만 있으면 해당하는 실제 날짜를 간단하게 계산할 수 있습니다. 사용자 변수와 STR_TO_DATE() 함수를 조합하면 되는데, 그 방법을 단계별로 살펴보겠습니다.1단계: 변수에 값 설정하기먼저 계산에 사용할 연도, 주 번호, 요일 값을 사용자 변수에 저장합니다.mysql> SET @year=2017, @week=15, @day=4;Query OK, 0 rows affected (0.00 sec)위 쿼리는 변수 @year에 2017, @week에 1

  8. MySQL GENERATED COLUMN으로 CHECK 제약 조건(CHECK CONSTRAINT) 에뮬레이트하는 방법

    MySQL GENERATED COLUMN으로 CHECK 제약 조건 에뮬레이트하기MySQL은 참조 무결성(referential integrity)을 보장하기 위한 외래 키(Foreign Key)는 지원하지만, 데이터 유효성 검사용 CHECK 제약 조건은 지원하지 않습니다. 하지만 트리거(Trigger) 또는 생성된 컬럼(GENERATED COLUMN)을 활용하면 CHECK 제약 조건과 동일한 효과를 우회적으로 구현할 수 있습니다. 아래 예시를 통해 구체적인 방법을 살펴보겠습니다.예시: 차량 등록번호 테이블차량 등록번호를 저장하는 ca

  9. MySQL DATEDIFF 함수로 두 날짜 사이의 영업일 수 계산하는 방법

    MySQL에서 DATEDIFF(expr1, expr2) 함수를 사용하면 지정된 두 날짜 사이의 일수를 손쉽게 계산할 수 있습니다. 이 함수는 첫 번째 날짜 표현식에서 두 번째 날짜 표현식을 뺀 값, 즉 두 날짜 간의 일수 차이를 정수 형태로 반환합니다.DATEDIFF 함수 기본 문법DATEDIFF(date1, date2)여기서 date1과 date2는 DATE 또는 DATETIME 형식의 값이며, 함수는 date1 − date2의 일수를 결과로 돌려줍니다.실제 사용 예시예를 들어, 2017-05-27과 2017-05-23 두 날짜

  10. MySQL에서 두 날짜 사이의 완전한 24시간 일수를 계산하는 방법

    완전한 24시간 기준으로 날짜 차이 계산하기MySQL에서 DATEDIFF() 함수는 두 값의 날짜(date) 부분만을 사용하여 차이를 계산합니다. 즉, 시간 정보는 무시되기 때문에 정확히 24시간이 지났는지 여부와 관계없이 단순히 날짜만 비교하게 됩니다.따라서 시간까지 고려하여 완전한 24시간 하루(full 24-hour days)가 몇 번 지났는지 계산하려면 TIMESTAMPDIFF() 함수를 사용해야 합니다.TIMESTAMPDIFF() 함수의 동작 원리TIMESTAMPDIFF(단위, 시작일시, 종료일시) 형태로 사용하며, 첫 번

  11. MySQL에서 월 또는 일이 0인 날짜를 저장하는 방법 – allow_invalid_dates 모드 활용하기

    월이나 일이 0인 날짜, 왜 저장이 필요할까?실무에서는 연도만 알고 정확한 월이나 일을 모르는 경우가 종종 있습니다. 예를 들어 2017년 어느 시점처럼 불완전한 날짜 정보를 데이터베이스에 그대로 보관하고 싶다면, 월(month)이나 일(day) 자리에 0을 넣어 저장할 수 있어야 합니다.다만 MySQL의 기본 설정에서는 이러한 날짜를 유효하지 않은 값으로 판단하여 저장을 거부합니다. 따라서 SQL 모드를 allow_invalid_dates로 변경해 주어야 합니다.1. allow_invalid_dates 모드 설정mysql>

  12. MySQL에서 YEAR(2)와 YEAR(4)의 차이점 완벽 정리

    MySQL의 YEAR 타입은 연도를 저장하기 위한 전용 데이터 타입으로, 표시 자릿수에 따라 YEAR(2)와 YEAR(4)로 나뉩니다. 두 타입은 저장 형식과 표현 가능한 연도 범위에서 중요한 차이를 보입니다.YEAR(2): 두 자리 연도 형식YEAR(2)는 연도를 두 자리 숫자로 저장합니다. 예를 들어 1969년을 저장하려면 69라고 입력하면 됩니다. YEAR(2)에서 표현할 수 있는 연도 범위는 1970년부터 2069년까지이며, 입력 시에는 70부터 69 사이의 값을 사용합니다.YEAR(4): 네 자리 연도 형식YEAR(4)는

  13. 데이터베이스란 무엇일까? MySQL 데이터베이스를 사용해야 하는 핵심 이유

    데이터베이스란 무엇인가?데이터베이스(Database)는 데이터의 집합을 저장하는 독립적인 애플리케이션입니다. 각 데이터베이스는 자신이 보유한 데이터를 생성·접근·관리·검색·복제할 수 있도록 하나 이상의 고유한 API를 제공합니다.물론 파일 시스템의 파일이나 메모리 상의 대형 해시 테이블처럼 다른 방식으로도 데이터를 저장할 수 있습니다. 하지만 이러한 방식은 데이터를 빠르고 효율적으로 읽고 쓰기 어렵다는 한계가 있습니다.관계형 데이터베이스 관리 시스템(RDBMS)이란?오늘날 우리는 방대한 양의 데이터를 저장하고 관리하기 위해 관계형

  14. MySQL에서 다른 데이터베이스에 저장된 테이블의 제약 조건 확인 방법

    MySQL에서 SHOW CREATE TABLE 문을 사용하면 현재 작업 중인 데이터베이스가 아닌 다른 데이터베이스에 저장된 특정 테이블에 적용된 제약 조건(constraint)은 물론, 해당 테이블에 관한 다양한 세부 정보까지 한 번에 확인할 수 있습니다.기본 문법SHOW CREATE TABLE db_name.table_name;table_name: 제약 조건을 확인하고자 하는 테이블의 이름입니다.db_name: 해당 테이블이 저장되어 있는 데이터베이스의 이름입니다.사용 예시다음 예시는 mysql 데이터베이스에 저장된 arena라는

  15. MySQL이 지원하는 날짜 데이터 타입 5가지 완벽 정리

    MySQL 날짜 데이터 타입 개요MySQL은 다양한 개발 환경과 요구 사항에 맞출 수 있도록 총 5가지의 날짜 관련 데이터 타입을 지원합니다. 각 타입마다 저장할 수 있는 값의 범위와 기본 표시 형식이 다르므로, 프로젝트에 적합한 타입을 선택하는 것이 중요합니다.1. DATE날짜만 저장하는 타입으로, 저장 가능한 범위는 1000-01-01부터 9999-12-31까지입니다. 기본 형식은 YYYY-MM-DD이며, 예를 들어 1984년 1월 17일은 1984-01-17로 저장됩니다.2. DATETIME날짜와 시간을 함께 저장하는 타입입니

  16. MySQL DEFAULT 제약 조건이란? 테이블 생성 시 열에 기본값을 설정하는 방법

    DEFAULT 제약 조건은 MySQL 테이블의 특정 열에 기본값(default value)을 설정할 때 사용됩니다. 이 제약 조건이 적용된 열에 데이터를 삽입할 때 값을 지정하지 않으면, 미리 정의해 둔 기본값이 자동으로 저장됩니다.문법DEFAULT default_value여기서 default_value는 해당 열에 설정할 기본값을 의미합니다.예제아래 쿼리는 workers라는 테이블을 생성하면서 id 열에 기본값 1000을 할당하는 예시입니다.mysql> Create table workers(Name Varchar(25), I

  17. MySQL DATE 데이터 타입에 시간 값을 저장할 수 없는 이유는 무엇일까?

    MySQL의 DATE 데이터 타입은 기본적으로 YYYY-MM-DD 형식을 사용합니다. 이 형식에는 시간(시, 분, 초)을 저장할 공간이 없기 때문에, DATE 타입에는 시간 값을 함께 사용할 수 없습니다.DATE 함수의 동작 예시아래 예제를 보면, 날짜와 함께 시간 정보를 전달하더라도 MySQL은 오직 날짜 값만 반환하는 것을 확인할 수 있습니다.mysql> select DATE(2017-09-25 09:34:21); +-----------------------------------+ | DATE(2017-09-25 09:34

  18. MySQL 테이블에서 날짜별로 레코드를 검색하는 방법

    MySQL 테이블에서 날짜별 레코드 검색하기먼저 예제로 사용할 테이블을 살펴보겠습니다. 아래의 Order123 테이블은 상품명(ProductName), 수량(Quantity), 주문일(OrderDate) 세 개의 컬럼으로 구성되어 있습니다.mysql> Select * from Order123;+-------------+----------+------------+| ProductName | Quantity | OrderDate  |+-------------+----------+------------+| A  

  19. MySQL AUTO_INCREMENT 완벽 가이드: 컬럼에 자동 증가 값 설정하는 방법

    AUTO_INCREMENT란 무엇인가?AUTO_INCREMENT는 컬럼에 값을 자동으로 부여하도록 설정하는 MySQL의 옵션입니다. 이 옵션이 적용된 컬럼에는 데이터를 삽입할 때 별도로 값을 지정하지 않아도, 1부터 시작하여 순차적으로 자동 증가된 숫자가 입력됩니다. 주로 기본 키(Primary Key)로 사용되는 고유 식별자 컬럼에 활용됩니다.AUTO_INCREMENT가 적용된 테이블 생성 예시실제 동작을 확인하기 위해 employees라는 테이블을 아래와 같이 생성했습니다. mysql> Show Create Table em

  20. MySQL DATETIME과 TIMESTAMP 타입의 차이점 완벽 정리

    MySQL의 DATETIME과 TIMESTAMP 타입은 모두 날짜와 시간을 함께 저장하며, “YYYY-MM-DD HH:MM:SS” 형식으로 값을 표현한다는 공통점이 있습니다. 하지만 겉보기에 비슷해 보이는 이 두 타입 사이에는 실무에서 반드시 알아야 할 중요한 차이점들이 존재합니다.DATETIME과 TIMESTAMP의 주요 차이점1. 저장 가능 범위(Range)DATETIME은 1000-01-01 00:00:00부터 9999-12-31 23:59:59까지 매우 넓은 범위의 날짜와 시간을 지원합니다. 반면 TIMESTAMP는 1970

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:226/229  20-컴퓨터/Page Goto:1 220 221 222 223 224 225 226 227 228 229