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

MySQL

  1. MySQL LIMIT과 OFFSET으로 페이지네이션 구현하기

    웹 애플리케이션에서 대량의 데이터를 한 번에 모두 조회하는 것은 비효율적입니다. 이럴 때 페이지네이션(Pagination)을 활용하면 데이터를 원하는 만큼 나누어 조회할 수 있습니다. MySQL에서는 LIMIT과 OFFSET을 사용해 손쉽게 페이지네이션을 구현할 수 있습니다.이 글에서는 실제 테이블을 생성하고 데이터를 삽입한 뒤, LIMIT과 OFFSET을 활용해 페이지네이션을 적용하는 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 CREATE 명령어를 사용해 테이블을 생성합니다. 쿼리는 다음과 같습니다.mysql>

  2. MySQL 테이블 복제 완벽 가이드: 인덱스와 데이터까지 한 번에 클론하는 방법

    MySQL에서 테이블을 복제할 때는 CREATE TABLE ... LIKE 구문을 활용하면 됩니다. 이 방법을 사용하면 원본 테이블의 구조(스키마)와 인덱스가 그대로 복사되며, 이후 INSERT ... SELECT 문으로 데이터까지 손쉽게 옮길 수 있습니다.이 글에서는 business 데이터베이스의 student 테이블을 예시로, 인덱스와 데이터를 포함한 테이블 복제 과정을 단계별로 살펴보겠습니다.1. 데이터베이스 선택 및 테이블 확인먼저 작업할 데이터베이스를 선택합니다.mysql> USE business; Database c

  3. MySQL 시간대(Time Zone) 설정 방법 완벽 가이드

    MySQL에서 현재 시간을 확인하려면 SELECT 문과 함께 now() 함수를 사용하면 됩니다. 아래 쿼리를 실행해 보겠습니다.mysql> SELECT now();위 쿼리를 실행하면 현재 시간이 출력됩니다. 결과는 다음과 같습니다.+---------------------+ | now() | +---------------------+ | 2018-10-06 12:57:25 | +---------------------+ 1 row in set (0.02 sec) SET 명령어로 시간대 설정하기 MySQL에

  4. MySQL 테이블의 현재 AUTO_INCREMENT 값 확인하는 방법

    MySQL에서 테이블의 현재 AUTO_INCREMENT 값을 확인하려면 last_insert_id() 함수를 사용할 수 있습니다. 이번 글에서는 실제 예제를 통해 마지막으로 삽입된 자동 증가 값과 다음에 생성될 자동 증가 값을 확인하는 방법을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 CREATE TABLE 명령어를 사용하여 AUTO_INCREMENT 컬럼이 포함된 테이블을 생성합니다. mysql> CREATE table AutoIncrement -> ( -> IdAuto int auto_increment

  5. MySQL UNSIGNED란 무엇일까? 개념부터 사용법까지 한눈에 정리

    MySQL UNSIGNED란 무엇인가?MySQL에서 UNSIGNED는 숫자 컬럼에 양수만 저장할 수 있도록 제한하는 속성입니다. UNSIGNED로 선언된 컬럼에는 음수 값을 입력할 수 없으며, 대신 동일한 데이터 타입이라도 더 큰 범위의 양수를 표현할 수 있다는 장점이 있습니다.예를 들어 일반적인 INT 타입은 -2147483648부터 2147483647까지 저장할 수 있지만, INT UNSIGNED로 선언하면 0부터 4294967295까지 저장 가능합니다. 나이, 재고 수량, 가격처럼 음수가 존재하지 않는 데이터를 다룰 때 유용하

  6. MySQL 쿼리 로그(general_log) 활성화 및 비활성화 방법

    MySQL에서 실행되는 모든 쿼리를 기록하는 일반 쿼리 로그(General Query Log)는 디버깅이나 성능 분석에 매우 유용한 기능입니다. 이 로그는 SET GLOBAL 명령을 사용하여 활성화할 수 있습니다.SET general_log 사용 시 발생하는 오류MySQL 8.0.12 버전부터는 general_log가 전역(GLOBAL) 변수로만 관리되기 때문에, 일반적인 SET 구문으로는 설정할 수 없습니다. 만약 다음과 같이 입력하면 오류가 발생합니다.mysql> SET general_log = 1;실행 결과는 아래와 같습

  7. MySQL에서 날짜에 하루 추가하기 – DATE_ADD() 함수 완벽 가이드

    MySQL에서 날짜에 하루를 추가하는 방법MySQL에서 특정 날짜나 DATETIME 값에 하루를 더하고 싶다면 DATE_ADD() 함수를 사용하면 됩니다. 이 함수는 지정한 날짜에 원하는 시간 간격(INTERVAL)을 더한 결과를 반환하며, 날짜에 1일을 더하면 자동으로 다음 날짜가 계산됩니다.기본 문법DATE_ADD() 함수의 기본적인 사용 문법은 다음과 같습니다.SELECT DATE_ADD(기준 날짜, INTERVAL 1 DAY) AS 별칭;첫 번째 인수: 기준이 되는 날짜 또는 DATETIME 값두 번째 인수: 더할 시간 간격

  8. MySQL SELECT DISTINCT vs GROUP BY: 차이점과 활용법 완벽 가이드

    MySQL에서 중복 데이터를 다룰 때 SELECT DISTINCT와 GROUP BY는 가장 많이 사용되는 두 가지 방법입니다. 두 구문은 비슷한 결과를 내기도 하지만, 용도와 동작 방식에는 분명한 차이가 있습니다. 이 글에서는 각각의 개념과 실제 예제를 통해 두 구문의 차이를 명확히 살펴보겠습니다.SELECT DISTINCT란?SELECT DISTINCT는 특정 컬럼에서 중복된 값을 제거하고 고유한(distinct) 값만 반환하는 데 사용됩니다. 단순히 중복 레코드를 걸러내는 용도로 쓰이며, MAX, AVG 같은 집계 함수와 함께

  9. MySQL LIKE 와일드카드로 대소문자 구분 검색하기 – BINARY 키워드 활용법

    MySQL의 기본 콜레이션(utf8mb4_general_ci 등)은 대소문자를 구분하지 않기 때문에, 일반적인 WHERE 조건이나 LIKE 검색에서는 Bob, BoB, bob이 모두 같은 값으로 취급됩니다. 대소문자까지 정확히 일치하는 레코드만 조회하려면 BINARY 키워드를 사용해야 합니다.1. 테스트용 테이블 생성먼저 CREATE 명령어로 테이블을 생성합니다.mysql> CREATE table InCaseSensDemo-> (-> Name varchar(100)-> );Query OK, 0 rows affe

  10. MySQL에서 대소문자를 구분하는 문자열 비교 방법 완벽 가이드

    MySQL은 기본적으로 문자열 비교 시 대소문자를 구분하지 않습니다. 따라서 Bob과 bob을 동일한 값으로 취급합니다. 하지만 실제 개발 환경에서는 대소문자까지 정확하게 일치하는 데이터만 조회해야 하는 경우가 종종 발생합니다. 이럴 때 BINARY 키워드를 활용하면 간단하게 해결할 수 있습니다.1. 예제용 테이블 생성하기먼저 CREATE 명령어를 사용하여 테스트용 테이블을 생성합니다.mysql> CREATE table InCaseSensDemo-> (-> Name varchar(100)-> );Query OK

  11. MySQL에서 공백이 포함된 열 이름을 조회하는 방법

    MySQL에서 공백이 있는 열 이름 다루기MySQL에서 열 이름에 공백이 포함되어 있을 경우, 일반적인 방식으로는 해당 열을 조회할 수 없습니다. 이때는 백틱(`) 기호를 사용해야 합니다. 백틱 기호는 키보드에서 물결표(~) 아래에 위치해 있습니다.1. 테이블 생성하기먼저 공백이 포함된 열 이름을 가진 테이블을 생성해 보겠습니다.mysql> CREATE table SpaceColumn -> ( -> `Student Name` varchar(100) -> ); Query OK, 0 rows affected (0.

  12. MySQL에서 밀리초 단위의 시간을 저장하는 방법

    MySQL에서 밀리초(millisecond) 단위까지의 시간을 저장하려면 now(3) 함수를 사용하면 됩니다. 여기서 숫자 3은 소수점 이하 세 자리, 즉 밀리초를 의미합니다. 이번 글에서는 실제 예제를 통해 밀리초 단위의 현재 시간을 테이블에 저장하고 조회하는 방법을 단계별로 살펴보겠습니다.1. 밀리초를 지원하는 테이블 생성먼저 CREATE 명령어를 사용하여 datetime(3) 타입의 컬럼을 가진 테이블을 생성합니다. datetime 뒤에 붙는 (3)이 바로 밀리초까지 저장할 수 있게 해주는 핵심 요소입니다.mysql> C

  13. MySQL VARCHAR 최대 크기, 얼마까지 저장할 수 있을까?

    MySQL VARCHAR의 최대 크기는 얼마일까?MySQL에서 VARCHAR 컬럼이 저장할 수 있는 최대 문자 수는 버전에 따라 크게 다릅니다. 5.0.3 이전 버전에서는 최대 255자까지만 저장할 수 있었지만, 5.0.3 버전부터는 최대 65,535자까지 저장할 수 있도록 확장되었습니다.최대 행 크기와 문자셋이 실제 최대 길이를 결정한다MySQL 공식 문서는 이에 대해 다음과 같이 설명합니다.MySQL 5.0.3 이상에서 VARCHAR의 유효 최대 길이는 최대 행 크기(65,535바이트, 모든 컬럼이 공유)와 사용 중인 문자셋에

  14. MySQL 서버 포트 번호를 확인하는 2가지 방법

    ```html MySQL 서버 포트 확인 방법MySQL 서버가 사용 중인 포트 번호를 확인해야 하는 경우가 종종 있습니다. MySQL은 기본적으로 3306번 포트를 사용하지만, 환경 설정에 따라 포트가 변경되었을 수 있으므로 실제 서버에 직접 조회해 보는 것이 가장 정확합니다. MySQL에서는 간단한 명령어만으로 현재 포트 번호를 확인할 수 있으며, 대표적인 두 가지 방법을 소개합니다.방법 1: SHOW VARIABLES 명령어 사용하기SHOW 명령어로 시스템 변수를 조회하면 포트 번호를 확인할 수 있습니다. 기본 문법은 다음과 같

  15. MySQL 오류 1396(HY000) 해결 가이드: 'root'@'localhost' CREATE USER 작업 실패 원인과 해결 방법

    오류 1396(HY000): root@localhost에 대한 CREATE USER 작업이 실패하는 이유MySQL에서 CREATE USER 명령어로 root@localhost 계정을 생성하려고 할 때 ERROR 1396 (HY000) 오류가 발생하는 경우가 있습니다. 이 오류의 핵심 원인은 간단합니다. 시스템에는 이미 root라는 이름의 계정이 존재하기 때문입니다.MySQL에서 CREATE USER는 말 그대로 새로운 사용자를 생성하는 명령어입니다. 따라서 이미 존재하는 사용자 이름으로 계정 생성을 시도하면 위와 같은 오류가 반환됩

  16. MySQL에서 한 테이블에는 존재하지 않고 다른 테이블에만 있는 레코드 찾는 방법

    MySQL에서 한 테이블의 데이터 중 다른 테이블에는 존재하지 않는 레코드를 찾아야 하는 경우가 자주 있습니다. 이럴 때 서브쿼리(subquery)와 NOT IN 연산자를 활용하면 간단하게 해결할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다. 1. 첫 번째 테이블 생성하기 먼저 CREATE 명령어를 사용해 PresentHistory라는 이름의 테이블을 생성합니다. 이 테이블은 두 개의 컬럼을 가지고 있습니다. mysql> CREATE table PresentHistory -> ( -> HisID int,

  17. MySQL에서 컬럼이 NULL 또는 빈 값인지 확인하는 방법

    MySQL에서 특정 컬럼이 NULL인지 아니면 빈 문자열()인지 확인하려면 WHERE 절과 함께 IS NULL 조건을 사용하고, 빈 값의 경우 (빈 문자열) 조건을 사용하면 됩니다.NULL과 빈 문자열은 서로 다른 개념입니다. NULL은 값이 존재하지 않음을 의미하는 반면, 빈 문자열은 길이가 0인 실제 값이 저장된 상태를 의미합니다. 따라서 두 가지를 모두 확인하려면 OR 조건으로 결합해야 합니다.1. 테이블 생성먼저 CREATE 명령으로 테스트용 테이블을 생성합니다.mysql> CREATE table ColumnValueN

  18. MySQL에서 NULL과 빈 문자열, 무엇을 사용해야 할까?

    MySQL에서 NULL과 빈 문자열의 차이InnoDB 스토리지 엔진에서는 NULL 값이 빈 문자열()보다 적은 공간을 차지합니다. 또한 NULL의 길이는 null로 평가되는 반면, 빈 문자열의 길이는 0입니다.이를 직접 확인하기 위해 CREATE 명령어로 테스트용 테이블을 생성해 보겠습니다.mysql> CREATE table DemoEmptyAndNULL-> (-> Message varchar(100)-> );Query OK, 0 rows affected (0.49 sec)테이블 생성이 완료되면 INSERT 명

  19. MySQL에서 ASCII가 아닌 문자 찾는 방법 – HEX와 REGEXP 활용하기

    MySQL에서 ASCII가 아닌 문자란?ASCII가 아닌(non-ASCII) 문자란 파운드 기호(£), 상표 기호(™), 플러스마이너스 기호(±)처럼 표준 ASCII 범위(0~127)를 벗어난 문자들을 의미합니다. 테이블에 저장된 데이터 중 이러한 비(非)ASCII 문자를 찾으려면 아래의 단계를 순서대로 따라 하면 됩니다.1단계: 테이블 생성먼저 CREATE 명령어를 사용해 테스트용 테이블을 생성합니다.mysql> CREATE table NonASciiDemo-> (-> NonAScii varchar(10

  20. MySQL에서 실행 중인 쿼리를 중지하는 방법

    쿼리 중지 전 프로세스 목록 확인 MySQL에서 실행 중인 쿼리를 중지하기 전에, 먼저 show 명령어를 사용하여 현재 몇 개의 프로세스가 실행되고 있는지 확인해야 합니다. 프로세스 목록을 확인하는 쿼리는 다음과 같습니다. mysql> show processlist; 위 쿼리를 실행하면 각 프로세스의 ID가 포함된 결과를 얻을 수 있습니다. +----+-----------------+-----------------+----------+---------+-------+------------------------+---------

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:175/229  20-컴퓨터/Page Goto:1 169 170 171 172 173 174 175 176 177 178 179 180 181