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

MySQL

  1. MySQL에서 연도만 있는 날짜(월·일 0)를 저장하는 방법

    MySQL에서는 NO_ZERO_IN_DATE 모드를 비활성화하면 월과 일이 0인, 즉 연도 값만 가진 날짜를 테이블에 저장할 수 있습니다. 반대로 이 모드가 활성화되어 있으면 MySQL은 해당 날짜를 유효하지 않은 날짜로 판단하여 모든 값을 0(0000-00-00)으로 저장합니다.NO_ZERO_IN_DATE 모드에 따른 저장 결과 비교아래 예제는 같은 날짜 값 2017-00-00을 삽입했을 때, NO_ZERO_IN_DATE 모드의 설정 여부에 따라 결과가 어떻게 달라지는지 보여줍니다.mysql> Insert into year_

  2. MySQL 테이블 열에 현재 날짜 자동으로 삽입하는 방법

    MySQL에서는 CURDATE() 함수와 NOW() 함수를 활용하면 테이블의 특정 열에 현재 날짜를 손쉽게 자동 삽입할 수 있습니다.CURDATE()와 NOW()의 차이두 함수 모두 현재 날짜를 반환하지만 반환 형식에 차이가 있습니다.CURDATE() : 날짜만 반환합니다. (예: 2017-10-28)NOW() : 날짜와 시간을 함께 반환합니다. (예: 2017-10-28 12:34:56)따라서 대상 열의 데이터 타입이 DATE라면 NOW()로 값을 삽입할 때 시간 부분은 잘려나가고 날짜만 저장되며, 이 경우 경고(warning)가

  3. MySQL에서 사용되는 SQL 명령어 종류 완벽 정리: DML, DDL, DCL, TCL

    SQL 언어는 크게 DML, DDL, DCL, TCL이라는 네 가지 기본 문장 유형으로 나뉩니다. 이러한 문장들을 활용하면 데이터베이스 객체를 생성하고 수정하여 데이터베이스의 구조를 정의할 수 있으며, 업데이트나 삭제 작업을 통해 테이블 내 데이터를 조작할 수 있습니다. 또한 특정 사용자가 데이터를 읽거나 쓸 수 있는 권한을 제어하고, 여러 작업을 하나의 단위로 묶어 트랜잭션을 관리하는 것도 가능합니다.SQL 문장의 네 가지 주요 범주를 하나씩 자세히 살펴보겠습니다.1. DML (Data Manipulation Language, 데

  4. MySQL 테스트(test) 데이터베이스 사용의 단점과 개인 데이터베이스 권한 설정 방법

    테스트 데이터베이스란?MySQL에 접속한 후 SHOW DATABASES 명령어를 실행하면 데이터베이스 목록 중에 test라는 이름의 데이터베이스가 기본적으로 포함되어 있는 것을 확인할 수 있습니다.이 테스트 데이터베이스는 별도의 권한 설정 없이 누구나 자유롭게 사용할 수 있다는 장점이 있지만, 동시에 치명적인 단점도 가지고 있습니다.테스트 데이터베이스 사용의 주요 단점가장 큰 문제는 보안성 부족입니다. 이 데이터베이스에는 접근 권한이 있는 모든 사용자가 다른 사람이 생성한 테이블이나 객체를 마음대로 수정하거나 삭제할 수 있습니다.즉

  5. MySQL에서 날짜 값에 비교 연산자가 작동하는 방식

    MySQL 날짜 비교 연산자의 기본 원리MySQL에서 날짜 값 사이의 비교 연산자는 논리적인 방식으로 작동합니다. 두 개의 날짜를 비교할 때 MySQL은 단순히 두 개의 숫자 또는 문자열을 비교하는 것과 동일한 방식으로 처리합니다.비교 연산자 사용 예제다음 예제에서는 두 날짜를 비교 연산자로 비교한 결과를 확인할 수 있습니다.mysql> select 20171027 < 20150825; +---------------------------+ | 20171027 < 20150825 | +------------

  6. MySQL에서 문자열로 표현된 날짜에 산술 연산자(덧셈, 뺄셈, 곱셈, 나눗셈)를 사용하면 어떻게 될까?

    날짜 값을 문자열 형태로 표현한 상태에서 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 같은 산술 연산자를 적용하면 결과를 예측하기 매우 어렵습니다.그 이유는 MySQL이 문자열로 된 날짜에 숫자 연산을 수행할 때, 전체 날짜를 계산하는 것이 아니라 문자열 앞부분에 나타나는 숫자만 추출하여 사용하기 때문입니다. 예를 들어 2017-10-17이라는 문자열은 숫자로 변환될 때 2017만 인식되며, 뒤의 -10-17 부분은 무시됩니다.예제로 확인하기다음 예제들을 통해 실제 동작 방식을 살펴보겠습니다.1. 덧셈(+) 연산mysql>

  7. MySQL에서 기본 데이터베이스를 다른 데이터베이스로 변경하는 방법

    현재 tutorial 데이터베이스를 사용하고 있다고 가정해 보겠습니다. 이 상태에서는 이후에 실행되는 모든 쿼리가 이 데이터베이스를 기본 MySQL 데이터베이스로 인식하게 됩니다.만약 작업 대상 데이터베이스를 다른 곳으로 옮기고 싶다면 USE db_name 문을 사용하면 됩니다. 이 문장 하나만으로 기본 데이터베이스를 원하는 데이터베이스로 즉시 전환할 수 있습니다.USE 문으로 데이터베이스 전환하기mysql> USE Sample Database changed명령 실행 후 Database changed라는 메시지가 출력되면, 기

  8. MySQL에서 현재 사용 중인 데이터베이스 확인하는 방법

    MySQL 현재 데이터베이스 확인하기MySQL에서 작업을 하다 보면 지금 어떤 데이터베이스에 연결되어 있는지 확인해야 할 때가 있습니다. 여러 데이터베이스를 오가며 작업할 때는 특히 더 그렇습니다.이때 SELECT DATABASE() 명령어를 사용하면 현재 사용 중인 데이터베이스의 이름을 간단하게 확인할 수 있습니다.사용 예시mysql> select database(); +------------+ | database() | +------------+ | tutorial | +------------+ 1 row in set

  9. MySQL에서 특정 데이터베이스의 생성 명령문(DDL)을 확인하는 방법

    SHOW CREATE DATABASE 명령어란?MySQL에서 특정 데이터베이스가 생성될 때 사용된 CREATE DATABASE 문장을 그대로 확인하고 싶다면 SHOW CREATE DATABASE 명령어를 사용하면 됩니다. 이 명령어는 해당 데이터베이스를 다시 생성할 수 있는 완전한 DDL(Data Definition Language) 문장을 출력해 줍니다.사용 예제mysql> SHOW CREATE DATABASE Sample; +----------+--------------------------------------------

  10. MySQL 테이블의 날짜 값에 더하기, 빼기, 곱하기, 나누기 연산자를 사용하면 어떻게 될까?

    MySQL 테이블에 저장된 날짜(DATE) 값에 더하기(+), 빼기(−), 곱하기(*), 나누기(/)와 같은 산술 연산자를 적용하면, MySQL은 해당 날짜 값을 날짜로 인식하지 않고 단순한 숫자로 취급하여 산술 연산을 수행합니다. 즉, 2017-05-25라는 날짜는 내부적으로 20170525라는 정수로 변환된 뒤 계산됩니다.예제 테이블 준비example이라는 테이블의 orderdate 컬럼에 날짜 값이 하나 저장되어 있다고 가정해 보겠습니다.mysql> select * from example; +------------+ |

  11. MySQL에서 덧셈·뺄셈 연산자로 날짜 연산을 수행하는 방법

    MySQL은 덧셈(+)과 뺄셈(-) 연산자에 INTERVAL 키워드와 시간 단위를 조합하여 date 또는 datetime 값에 대한 날짜 연산을 간단하게 수행할 수 있습니다.기본 문법SELECT 날짜 + INTERVAL n unit; SELECT 날짜 - INTERVAL n unit;여기서 unit에는 day, month, year, hour, minute, second 등 다양한 시간 단위를 지정할 수 있습니다.예제 1: 특정 날짜에 2일 더하기mysql> Select 2017-05-20 + INTERVAL 2 day; +-

  12. MySQL 기본 데이터베이스의 테이블 목록을 확인하는 방법

    SHOW TABLES 명령어로 테이블 목록 조회하기 MySQL에서 기본(default) 데이터베이스란 현재 사용 중인 데이터베이스를 의미하며, 이후 실행되는 모든 쿼리는 이 데이터베이스를 대상으로 수행됩니다. 현재 선택된 데이터베이스에 어떤 테이블들이 있는지 확인하려면 SHOW TABLES 문을 사용하면 됩니다. mysql> SHOW TABLES; +------------------+ | Tables_in_sample | +------------------+ | employee | | new_student

  13. 특정 열 이름으로 MySQL 데이터베이스에서 테이블을 찾는 방법

    MySQL 작업 중 특정 열(컬럼)이 포함된 테이블이 어떤 것들이 있는지 확인해야 할 때가 있습니다. 이럴 때 INFORMATION_SCHEMA.COLUMNS 뷰를 활용하면 간단하게 조회할 수 있습니다.기본 조회 쿼리다음 예시는 SAMPLE 데이터베이스에서 email이라는 열을 가진 테이블 목록을 조회하는 쿼리입니다.mysql> SELECT DISTINCT TABLE_NAME    -> FROM INFORMATION_SCHEMA.COLUMNS    -

  14. MySQL에서 '0000-00-00' 날짜 값을 저장하는 방법

    MySQL에서 0000-00-00 날짜 값 저장하기MySQL 테이블의 DATE 타입 컬럼에 0000-00-00처럼 실제로 존재하지 않는 날짜를 저장하려면, 먼저 SQL 모드를 allow_invalid_dates로 설정해야 합니다. 기본 설정에서는 이러한 값이 허용되지 않아 오류가 발생하지만, SQL 모드를 변경하면 정상적으로 저장할 수 있습니다.설정 및 저장 예제다음 예제는 SQL 모드를 변경한 후 유효하지 않은 날짜를 저장하는 전체 과정을 보여줍니다.mysql> SET sql_mode = allow_invalid_dates;

  15. MySQL에서 원하는 데이터베이스를 생성하는 방법

    CREATE DATABASE 문으로 MySQL 데이터베이스 만들기MySQL에서 원하는 이름의 데이터베이스를 새로 생성하려면 CREATE DATABASE 문을 사용하면 됩니다. 이 명령어 뒤에 생성하고자 하는 데이터베이스의 이름을 지정하기만 하면 되며, 별도의 복잡한 설정 없이 간단하게 데이터베이스를 만들 수 있습니다.기본 문법CREATE DATABASE db_name;위 문법에서 db_name 부분에 사용자가 원하는 데이터베이스 이름을 입력하면 됩니다.사용 예시예를 들어 Sample이라는 이름의 데이터베이스를 생성하고 싶다면, 다음

  16. MySQL UNIX_TIMESTAMP() 함수의 출력 결과 완벽 정리

    UNIX_TIMESTAMP() 함수란 무엇인가?MySQL의 UNIX_TIMESTAMP() 함수는 지정된 날짜(date) 또는 날짜·시간(datetime) 값을 초 단위로 변환하여 출력하는 함수입니다. 여기서 말하는 초는 유닉스 에포크(Unix Epoch), 즉 1970-01-01 00:00:00(UTC 기준)을 기준점으로 하여 해당 시점까지 경과한 총 초 수를 의미합니다.이 함수는 데이터베이스에서 날짜와 시간을 숫자 형태로 다루어야 할 때 매우 유용하게 사용됩니다. 예를 들어 시간 차이 계산, 정렬, 타임스탬프 저장 등의 작업에서

  17. MySQL에서 서버에 존재하는 데이터베이스 목록 확인하는 방법

    MySQL 서버에 현재 존재하는 모든 데이터베이스의 목록을 확인하려면 SHOW DATABASES 명령어를 사용하면 됩니다. 이 명령어는 접속한 사용자가 볼 수 있는 권한을 가진 데이터베이스들을 화면에 출력합니다.기본 사용법MySQL에 로그인한 후 다음과 같이 입력합니다.mysql> SHOW DATABASES; +-----------------------------+ | Database | +-----------------------------+ | information_schema

  18. MySQL 데이터베이스 및 테이블 이름은 대소문자를 구분할까?

    MySQL 데이터베이스·테이블 이름의 대소문자 구분 여부MySQL에서 데이터베이스와 테이블 이름의 대소문자 구분 여부는 MySQL 자체가 아니라 기반이 되는 운영체제의 파일 시스템에 따라 결정됩니다. MySQL은 데이터베이스와 테이블을 내부적으로 디렉터리와 파일 형태로 저장하기 때문입니다.운영체제별 차이Windows: 파일 시스템이 대소문자를 구분하지 않기 때문에, 데이터베이스 및 테이블 이름 역시 대소문자를 구분하지 않습니다.대부분의 Unix/Linux 계열: 파일 시스템이 대소문자를 구분하므로, 데이터베이스 및 테이블 이름도 대

  19. MySQL 세션을 시작할 때마다 데이터베이스를 선택해야 하나요? 선택 방법 완벽 정리

    MySQL 세션에서 데이터베이스를 매번 선택해야 하는 이유MySQL에서 데이터베이스는 한 번만 생성하면 되지만, 새로운 세션을 시작할 때마다 어떤 데이터베이스를 사용할지 반드시 지정해 주어야 합니다. 이는 MySQL이 세션마다 작업 대상이 되는 데이터베이스를 기본값으로 자동 설정해 주지 않기 때문입니다.가장 일반적인 방법은 MySQL 명령줄 도구에서 USE db_name 구문을 사용하는 것입니다.방법 1: USE 문으로 데이터베이스 선택하기MySQL에 로그인한 후 아래와 같이 입력하면 해당 세션에서 사용할 데이터베이스가 변경됩니다.

  20. MySQL에서 '1965-05-15' 같은 날짜를 TIMESTAMP로 변환하면 0이 반환되는 이유

    TIMESTAMP 변환 시 0이 출력되는 원인MySQL의 UNIX_TIMESTAMP() 함수는 지정된 날짜 또는 날짜·시간 값을 기준 시점(Epoch)으로부터 경과한 초 단위 숫자로 변환해 주는 유용한 도구입니다. 그런데 1965-05-15처럼 특정 시점 이전의 날짜를 변환하려고 하면 결과가 항상 0(Zero)으로 반환되는 현상을 볼 수 있습니다.원인: TIMESTAMP의 유효 범위 제한그 이유는 MySQL의 TIMESTAMP 데이터 타입이 표현할 수 있는 범위에 제한이 있기 때문입니다. TIMESTAMP의 유효 범위는 다음과 같습

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