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

MySQL

  1. MySQL 단일 쿼리에서 여러 COUNT() 한 번에 구현하기 – CASE 문 활용법

    단일 MySQL 쿼리에서 여러 COUNT() 구현하기조건별 레코드 개수를 각각 별도의 쿼리로 조회하지 않고, 하나의 쿼리에서 여러 COUNT() 값을 동시에 얻으려면 CASE 문을 활용하면 됩니다. 이 방식은 집계 보고서를 만들 때 쿼리 실행 횟수를 줄여 성능 면에서도 유리합니다.먼저 실습용 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> LastName varchar(100) -> );Query OK, 0 rows affected (0.60 sec

  2. MySQL에서 문자열의 숫자 부분만 추출하는 방법

    MySQL 문자열에서 숫자만 추출하기데이터베이스 작업을 하다 보면 John19383처럼 문자와 숫자가 섞여 있는 값에서 숫자 부분만 분리해야 하는 경우가 종종 있습니다. 이 글에서는 MySQL의 REVERSE(), FORMAT(), REPLACE() 함수를 조합하여 문자열 끝에 붙어 있는 숫자만 깔끔하게 추출하는 방법을 예제와 함께 알아보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 만듭니다.mysql> create table DemoTable -> ( -> StudentId varchar(100)

  3. MySQL에서 UPDATE, SET, LIMIT를 활용해 일부 행만 동일한 값으로 업데이트하는 방법

    MySQL에서 UPDATE 문과 SET, LIMIT 절을 함께 사용하면 테이블의 모든 행이 아닌 원하는 개수의 행만 동일한 값으로 업데이트할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 데모용 테이블을 생성합니다.mysql> create table DemoTable-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> Name varchar(20)-> );Query OK, 0 rows affected (0.69 sec)2. 데이터

  4. MySQL에서 공백을 넣어 두 문자열을 연결하는 방법 – CONCAT() 함수 활용

    MySQL에서 두 문자열을 하나로 합칠 때는 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 개의 문자열 인자를 받아 하나의 문자열로 연결해 주며, 두 값 사이에 공백( )을 인자로 전달하면 원하는 위치에 공백을 넣어 연결할 수 있습니다.실습을 위해 먼저 테이블을 생성해 보겠습니다.1. 테이블 생성하기mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PR

  5. MySQL에서 두 번 이상 중복 발생한 레코드 조회하는 방법

    MySQL에서 특정 값이 두 번 이상 반복해서 나타나는 레코드를 찾고 싶다면 GROUP BY 절과 HAVING 절을 함께 사용하면 됩니다. GROUP BY로 데이터를 그룹화한 뒤, HAVING 조건을 통해 그룹별 개수가 특정 기준을 초과하는 항목만 필터링할 수 있습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. Id 컬럼은 자동 증가 기본 키로 설정하고, Subject 컬럼에는 과목명을 저장합니다.mysql> create table DemoTable -> ( -> Id int NOT

  6. MySQL 테이블에서 특정 행을 제외하고 조회하는 방법

    MySQL에서 특정 행 제외하기MySQL에서 테이블의 특정 행을 제외하고 조회하려면 비교 연산자 <>(같지 않음, NOT EQUAL)를 사용하면 됩니다. 이 연산자는 !=와 동일한 기능을 하며, WHERE 절과 함께 사용해 원하지 않는 행을 손쉽게 걸러낼 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable    -> (    -> Id int,   

  7. MySQL에서 열 값 나누기: 소수점 결과를 정수로 변환하는 방법

    MySQL에서 / 연산자로 숫자 열을 나누면 기본적으로 소수점 형태의 결과가 반환됩니다. 만약 소수점 없이 정수 형태의 결과가 필요하다면 CAST 함수를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Number int -> ); Qu

  8. MySQL 저장 프로시저로 특정 범위의 값을 테이블에 자동으로 삽입하는 방법

    MySQL에서 지정한 범위의 값을 테이블에 한 번에 자동으로 삽입하고 싶다면 저장 프로시저(Stored Procedure)를 활용하는 것이 가장 효율적입니다. 반복문을 사용해 원하는 범위만큼 데이터를 순차적으로 입력할 수 있기 때문입니다.이번 글에서는 10부터 20까지의 값을 테이블에 자동으로 삽입하는 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 값을 삽입할 테이블을 생성합니다.mysql> create table DemoTable    -> (   

  9. MySQL 데이터베이스 문자셋(Charset) 설정 확인 방법

    MySQL에서 데이터베이스나 테이블의 문자셋(character set)이 무엇으로 설정되어 있는지 확인하는 것은 인코딩 문제를 예방하고 다국어 데이터를 올바르게 처리하는 데 매우 중요합니다. 이 글에서는 간단한 SQL 쿼리만으로 문자셋과 콜레이션(collation) 설정을 확인하는 방법을 알아보겠습니다.데이터베이스 문자셋 확인하기데이터베이스의 기본 문자셋을 확인하려면 SHOW CREATE DATABASE 문을 사용합니다. 예를 들어 web이라는 데이터베이스의 설정을 확인해 보겠습니다.mysql> SHOW CREATE DATAB

  10. MySQL에서 고유 ID 개수로 Score 열 총계의 평균 구하는 방법

    개요MySQL에서 전체 점수의 합계를 고유 ID(중복을 제거한 ID)의 개수로 나누어 평균을 구해야 하는 경우가 있습니다. 이때는 DISTINCT 키워드와 COUNT() 함수를 함께 사용하면 간단하게 해결할 수 있습니다.이 글에서는 예제 테이블을 만들고, 고유 ID 개수를 기준으로 Score 열의 총합에 대한 평균을 구하는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 Id와 Score 두 개의 열을 가진 테이블을 생성합니다.mysql> create table DemoTable-> (-> Id int,

  11. MySQL 오류 1064(42000) 해결 방법: 데이터베이스 생성 시 발생하는 문제와 백틱 활용법

    MySQL 오류 1064(42000)의 주요 원인ERROR 1064 (42000)는 SQL 구문이 올바르게 작성되지 않았을 때 주로 발생하는 오류입니다. 특히 데이터베이스를 생성할 때 다음과 같은 상황에서 자주 나타납니다.백틱(`) 기호를 잘못 사용했거나 누락한 경우데이터베이스 이름에 하이픈(-)을 포함한 경우예를 들어 Demo-Table처럼 이름에 하이픈이 들어가면 MySQL은 이를 유효한 식별자로 인식하지 못해 ERROR 1064 (42000)를 반환합니다.오류 없이 데이터베이스 생성하는 기본 구문특수문자가 없는 일반적인 데이터

  12. MySQL 단일 쿼리로 특정 열의 값 발생 횟수 계산하기

    MySQL에서 하나의 쿼리만으로 특정 열에 있는 값이 몇 번 등장하는지 확인하고 싶다면, GROUP BY 절과 IN() 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable-> (-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> Name varchar(100)-> );Query OK, 0 rows affected (

  13. MySQL에서 생년월일(DOB)로 나이 계산하는 방법 – TIMESTAMPDIFF() 함수 활용

    MySQL에서 생년월일(DOB)을 기준으로 나이를 계산하려면 TIMESTAMPDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 사이의 차이를 지정한 단위(년, 월, 일 등)로 반환해 주기 때문에 나이 계산에 매우 유용합니다.TIMESTAMPDIFF() 기본 문법select TIMESTAMPDIFF(YEAR, yourColumnName, CURRENT_DATE) AS anyAliasName from yourTableName;그럼 실제 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다

  14. MySQL에서 문자열 필드를 연결(CONCAT)하여 업데이트하는 쿼리 작성법

    MySQL에서 문자열 필드에 새로운 문자열을 이어 붙여(연결하여) 업데이트하려면 CONCAT() 함수를 사용하면 됩니다. CONCAT() 함수는 여러 개의 문자열을 하나로 합쳐 주는 MySQL 내장 함수로, UPDATE 문과 함께 활용하면 기존 값 뒤에 원하는 문자열을 손쉽게 추가할 수 있습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> SequenceId int NOT NULL AUTO_INCREMENT PRIM

  15. MySQL에서 현재 날짜와의 차이를 기준으로 날짜 정렬 및 표시하기

    저장된 날짜(DueDate)를 현재 날짜와의 차이를 기준으로 정렬하고, 그 차이 값을 함께 표시하려면 ORDER BY 절과 DATEDIFF() 함수를 활용하면 됩니다. 먼저 현재 날짜를 확인해 보겠습니다.mysql> select now(); +---------------------+ | now() | +---------------------+ | 2019-06-09 21:08:16 | +---------------------+ 1 row in set (0.00 sec)1. 테이블 생성예제에 사용할 테이

  16. MySQL에서 자동 증분(AUTO_INCREMENT) 열을 사용하는 방법

    MySQL에서 자동 증분(Auto Increment) 열을 사용하려면 테이블을 생성할 때 해당 열에 AUTO_INCREMENT 속성을 지정하면 됩니다. 이렇게 설정하면 새로운 레코드가 삽입될 때마다 해당 열의 값이 자동으로 1씩 증가하므로, 일련번호나 고유 식별자(ID)를 직접 관리할 필요가 없습니다.1. 테이블 생성하기먼저 테이블을 생성해 보겠습니다. 아래 예제에서는 Id 필드를 자동 증분 열로 설정하고, 기본 키(PRIMARY KEY)로 함께 지정했습니다.mysql> create table DemoTable ->

  17. MySQL에서 테이블의 현재 크기(메모리 사용량) 확인하는 방법

    MySQL에서 특정 테이블의 현재 크기와 메모리 사용량 등 상세 정보를 확인하려면 SHOW TABLE STATUS 명령어를 사용하면 됩니다. 이 명령은 테이블 이름, 스토리지 엔진, 행 수, 데이터 길이 등 다양한 정보를 한 번에 보여줍니다.1. 기본 문법SHOW TABLE STATUS LIKE 테이블명\G여기서 \G 옵션을 붙이면 결과가 세로 형태로 출력되어 가독성이 훨씬 좋아집니다.2. 예제 테이블 생성먼저 실습용 테이블을 만들어 보겠습니다.mysql> CREATE TABLE DemoTable -> (

  18. MySQL에서 가장 최근에 생성된 테이블의 생성 시간 확인하기

    MySQL에서 데이터베이스 내 가장 최근에 생성된 테이블의 이름과 생성 시간을 확인하려면 information_schema.TABLES를 활용하면 됩니다. 이 시스템 뷰에는 테이블 이름, 생성 시간, 업데이트 시간 등 다양한 메타데이터가 저장되어 있어, CREATE_TIME 기준으로 내림차순 정렬한 후 첫 번째 행만 가져오면 가장 최근에 만들어진 테이블 정보를 얻을 수 있습니다.기본 문법SELECT table_name, create_time FROM information_schema.TABLES WHERE table_schema =

  19. MySQL에서 TIME_TO_SEC() 함수로 시간을 초 단위로 변환해 합산하는 방법

    MySQL에서 여러 시간 값을 합산할 때, TIME 타입 그대로 SUM() 함수를 적용하면 원하는 결과를 얻기 어렵습니다. 이럴 때 TIME_TO_SEC() 함수로 시간을 초 단위로 변환한 뒤 합산하고, 다시 SEC_TO_TIME() 함수로 시간 형식으로 되돌리는 방법이 가장 효과적입니다.1. 예제 테이블 생성먼저 시간 값을 저장할 테이블을 생성합니다.mysql> create table DemoTable -> ( -> ArrivalTime time -> );Query OK, 0 rows affe

  20. MySQL 결과 집합에서 숫자를 문자열로 변환하는 방법 (CASE 문 활용)

    네, CASE 문을 사용하면 MySQL 결과 집합에서 숫자를 의미 있는 문자열로 손쉽게 변환할 수 있습니다. 예를 들어 불리언 값인 1과 0을 Married(기혼)와 Not Married(미혼)처럼 사람이 읽기 좋은 텍스트로 바꿀 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable -> ( -> isMarried boolean -> );Query OK, 0 rows affected (0.76 sec)insert 명령을 사용하여 테이블에

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:99/229  20-컴퓨터/Page Goto:1 93 94 95 96 97 98 99 100 101 102 103 104 105