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

MySQL

  1. MySQL에서 긴 소수점 숫자를 저장하는 데이터 타입은 무엇일까?

    긴 십진수 저장을 위한 MySQL 데이터 타입소수점 아래 자릿수가 매우 긴 십진수를 MySQL에 저장하려면 DECIMAL(21,20) 데이터 타입을 사용하면 됩니다.DECIMAL(M, D) 형식에서 M은 전체 자릿수, D는 소수점 이하 자릿수를 의미합니다. 즉, DECIMAL(21,20)은 소수점 앞 1자리, 소수점 뒤 20자리까지 총 21자리를 정확하게 저장할 수 있어 부동 소수점 타입(FLOAT, DOUBLE)에서 발생할 수 있는 오차 없이 정밀한 값을 다룰 수 있습니다.1. 테이블 생성먼저 DECIMAL(21,20) 타입의 컬

  2. MySQL에서 복합 키 기준 중복 행 찾는 방법 – GROUP BY와 HAVING 활용하기

    MySQL에서 중복된 행을 찾아야 할 때 가장 효과적인 방법은 GROUP BY 절과 HAVING 절을 함께 사용하는 것입니다. 특히 두 개 이상의 컬럼이 조합된 복합 키(composite key)를 기준으로 중복을 판별할 때 유용합니다.이 글에서는 배송 날짜(ShippingDate)와 고객 국가명(CustomerCountryName)을 조합하여 중복 데이터를 찾는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 실습에 사용할 테이블을 생성합니다. 테이블에는 datetime 타입의 배송 날짜와 varchar 타입의 국가명 컬

  3. MySQL에서 타임스탬프 값 기준으로 오늘·어제 2일치 데이터 조회하기

    MySQL에서 날짜가 bigint 타입의 Unix 타임스탬프 값으로 저장되어 있을 때, 오늘과 어제에 해당하는 최근 2일치 데이터만 조회해야 하는 경우가 자주 있습니다. 이 글에서는 CURDATE() 함수와 UNIX_TIMESTAMP() 함수를 조합하여 손쉽게 구현하는 방법을 예제와 함께 살펴보겠습니다.1. 샘플 테이블 생성먼저 배송 날짜(ShippingDate)를 bigint 타입으로 저장하는 테이블을 생성합니다.mysql> create table DemoTable1495-> (-> ShippingDate bigi

  4. MySQL에서 날짜별로 결과를 그룹화하고 중복 값 개수 표시하기

    MySQL에서는 DATE() 함수와 GROUP BY 절을 함께 사용하면 datetime 컬럼의 값을 날짜 단위로 그룹화하고, 각 날짜에 해당하는 레코드(중복 값)의 개수를 손쉽게 집계할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성 먼저 승객 코드와 도착 일시를 저장할 테이블을 생성합니다. mysql> create table DemoTable1496    -> (    -> Id int NOT NULL AUTO_INCREMEN

  5. MySQL 테이블에서 레코드 삭제 후 키(ID) 재정렬하는 방법

    MySQL 테이블에서 특정 레코드를 삭제한 후 남은 데이터의 ID(키)를 연속된 순서로 다시 정렬하고 싶다면 UPDATE 문과 간단한 수학적 계산을 활용하면 됩니다. 레코드를 삭제할 때는 DELETE 명령어를 사용합니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1476 -> ( -> Id int -> );Query OK, 0 rows affected (0.81 sec)2. 샘플 데이터 삽입하기INSERT 명령어를 사용해 테이블

  6. MySQL 단일 쿼리로 서로 다른 테이블의 NOT NULL 값 개수 구하는 방법

    개요MySQL에서는 하나의 쿼리만으로 여러 테이블에 저장된 값의 개수를 동시에 조회할 수 있습니다. 핵심은 스칼라 서브쿼리(Scalar Subquery)를 활용하는 것입니다. 각 테이블에 대한 COUNT 집계를 SELECT 절 안에서 서브쿼리 형태로 작성하면, 결과를 한 번에 받아볼 수 있습니다.기본 문법은 다음과 같습니다.SELECT ( SELECT COUNT(yourColumnName) FROM yourTableName1) AS anyAliasName1, ( SELECT COUNT(yourColumn

  7. AUTO_INCREMENT 값 없이 MySQL 테이블에 레코드 삽입하는 방법

    네, 가능합니다. AUTO_INCREMENT로 설정된 컬럼은 INSERT 문에서 해당 컬럼을 생략하면 MySQL이 자동으로 순차적인 값을 채워주기 때문입니다. 즉, 일일이 ID 값을 지정하지 않아도 레코드를 손쉽게 추가할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1479-> (-> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> EmployeeSalary int-> );Query OK, 0

  8. MySQL 쿼리에서 '크지 않음' 조건을 작성하는 방법

    MySQL 쿼리에서 크지 않다(not greater than) 조건은 별도의 연산자 없이 작거나 같다(less than or equal to)를 의미하는 비교 연산자 <=를 사용해 간단하게 표현할 수 있습니다. SQL에는 크지 않다 전용 연산자가 따로 없기 때문에, 실무에서는 항상 <=로 처리하는 것이 일반적입니다.기본 문법select * from yourTableName where yourColumnName <= value;예제: 테이블 생성하기먼저 예제에 사용할 테이블을 생성하겠습니다.mysql> creat

  9. MySQL에서 CASE 문으로 조건에 따라 테이블의 행 값 바꾸는 방법

    MySQL CASE 문을 활용한 조건부 행 값 변경MySQL에서 특정 조건에 따라 테이블의 행 값을 교체하려면 CASE 문을 사용하면 됩니다. UPDATE 문과 CASE 문을 함께 활용하면 여러 개의 행을 한 번의 쿼리로 각각 다른 값으로 변경할 수 있습니다.아래에서 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 테이블을 생성합니다.mysql> create table DemoTable1481     -> (     -> P

  10. MySQL VARCHAR에 긴 문자열이 저장된 경우 쿼리 결과를 더 읽기 쉽게 표시하는 방법

    MySQL에서 VARCHAR 컬럼에 긴 문자열을 저장한 후 일반적인 SELECT 문으로 조회하면 결과가 가로로 길게 출력되어 읽기가 불편할 수 있습니다. 이럴 때는 세미콜론(;) 대신 \G를 사용하면 각 행이 세로 방향으로 정렬되어 훨씬 읽기 쉬운 형태로 결과를 확인할 수 있습니다.기본 문법select * from yourTableName\G예제 실습먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1482 -> ( -> Title varchar(255)

  11. MySQL SELECT INTO로 사용자 정의 변수에 값 저장하기

    MySQL SELECT INTO 사용자 정의 변수란?MySQL에서는 SELECT ... INTO 구문을 활용해 쿼리 결과를 사용자 정의 변수(@변수)에 직접 저장할 수 있습니다. 이 방법을 사용하면 집계 함수의 결과나 특정 컬럼 값을 별도의 변수에 담아두었다가 이후 쿼리에서 재사용할 수 있어 매우 유용합니다.이번 글에서는 예제 테이블을 만들고, SELECT INTO를 사용해 급여 합계를 사용자 정의 변수에 저장하는 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제로 사용할 테이블을 생성합니다.mysql> create

  12. MySQL에서 동일한 테이블에 MAX(col)+1 값 삽입하는 방법

    MySQL에서는 INSERT ... SELECT 문과 MAX() 집계 함수를 조합하면, 같은 테이블의 특정 컬럼에 저장된 값 중 가장 큰 값보다 1만큼 큰 값을 손쉽게 삽입할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1484 -> ( -> Id int -> );Query OK, 0 rows affected (0.46 sec)2. 샘플 데이터 삽입INS

  13. MySQL에서 COUNT() 함수 없이 조건별 다중 카운트 수행하는 방법

    MySQL에서 조건별로 여러 개수를 동시에 집계해야 할 때, 굳이 COUNT() 함수를 사용하지 않아도 됩니다. SUM() 함수와 CASE 문을 조합하면 하나의 쿼리로 여러 조건의 카운트를 손쉽게 구할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 방법을 단계별로 살펴보겠습니다.1. 샘플 테이블 생성먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable1485 -> ( -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,

  14. MySQL 테이블에서 새로 추가된 레코드를 조회하는 방법 (ORDER BY + LIMIT)

    MySQL 테이블에 가장 최근에 삽입된 레코드를 확인하고 싶다면 ORDER BY 절과 LIMIT 절을 함께 사용하면 됩니다. 자동 증가(AUTO_INCREMENT)되는 기본 키를 기준으로 내림차순 정렬한 뒤, 원하는 개수만큼만 가져오는 방식입니다.여기서 ORDER BY ... DESC는 ID가 큰 값(즉, 나중에 추가된 레코드)부터 먼저 정렬해 주고, LIMIT는 가져올 레코드의 개수를 지정하는 역할을 합니다.1. 샘플 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다. StudentId 컬럼은 AUTO_INCREMENT로 설정

  15. MySQL에서 SUBSTRING_INDEX()로 문자열 분할하는 방법 – 이름과 성 분리 예제

    SUBSTRING_INDEX() 함수란?MySQL에서는 SUBSTRING_INDEX() 함수를 사용하면 특정 구분자를 기준으로 문자열을 손쉽게 분할할 수 있습니다. 이 함수는 SUBSTRING_INDEX(문자열, 구분자, 횟수) 형태로 사용하며, 구분자가 지정한 횟수만큼 나타나기 전까지의 부분 문자열을 반환합니다. 횟수가 양수이면 왼쪽부터, 음수이면 오른쪽부터 계산합니다.아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table

  16. MySQL 단일 쿼리로 여러 값 한 번에 삽입하는 가장 빠른 방법

    MySQL 단일 쿼리로 여러 값 한 번에 삽입하는 가장 빠른 방법여러 개의 데이터를 테이블에 삽입할 때, 각 행마다 별도의 INSERT 문을 반복해서 실행하는 것은 매우 비효율적입니다. 아래와 같은 방식은 피해야 합니다.insert into yourTableName values(yourValue1,yourValue2,...N);insert into yourTableName values(yourValue1,yourValue2,...N);insert into yourTableName values(yourValue1,yourValue2,

  17. MySQL에서 동일한 테이블 내 다른 ID를 가진 행 중 공통 값을 조회하는 방법

    MySQL GROUP BY와 HAVING 절로 공통 값 조회하기동일한 테이블 안에서 서로 다른 ID를 가진 여러 행 중에 특정 값이 반복적으로 나타나는 경우를 찾고 싶다면 GROUP BY 절과 HAVING 절을 함께 사용하면 됩니다. GROUP BY로 데이터를 그룹화한 뒤, HAVING 조건을 통해 그룹별 개수가 일정 기준을 넘는 행만 필터링하는 방식입니다.실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1467 -&

  18. MySQL에서 중복·유사 데이터가 있는 행을 정리하고 SELECT 문으로 그룹별 대표 행 조회하기

    테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1468 -> ( -> Id int, -> Name varchar(20), -> Age int -> ); Query OK, 0 rows affected (1.21 sec) 샘플 데이터 삽입하기 INSERT 문으로 레코드를 추가합니다. 이때 Id와 Name이 서로 겹치는 데이터를 일부러 포함시켜 중복 상황을 만들어 보겠습니다. mysql> insert i

  19. MySQL 테이블에서 인덱스 삭제하는 방법 – ALTER TABLE DROP INDEX 완벽 가이드

    MySQL 테이블에서 더 이상 필요하지 않은 인덱스를 제거하려면 ALTER TABLE 문과 DROP INDEX 절을 함께 사용하면 됩니다. 이 글에서는 기본 문법부터 실제 예제를 통한 인덱스 삭제 과정까지 단계별로 살펴보겠습니다.인덱스 제거 기본 문법MySQL에서 특정 테이블의 인덱스를 삭제하는 기본 문법은 다음과 같습니다.ALTER TABLE 테이블명 DROP INDEX `인덱스명`;인덱스 이름에 공백이 포함된 경우 반드시 백틱(`)으로 감싸주어야 합니다.실습 예제: 테이블 생성하기먼저 실습에 사용할 샘플 테이블을 생성해 보겠습니

  20. MySQL에서 필드가 NULL일 경우 다른 필드를 선택하는 방법 – COALESCE() 활용

    MySQL에서 필드가 NULL일 경우 다른 필드 선택하기특정 필드의 값이 NULL일 때 같은 행에 있는 다른 필드의 값을 대신 가져오고 싶다면, MySQL에서 제공하는 COALESCE() 함수를 사용하면 됩니다. COALESCE()는 인자로 전달된 값들 중 처음으로 NULL이 아닌 값을 반환하는 함수입니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성해 보겠습니다. ); Query OK, 0 rows affected (0.57 sec)2. 데이터 삽입하기insert 명령을 사용해 테이블에 레코드를 삽입합니다. 이때 의도적으로

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:41/229  20-컴퓨터/Page Goto:1 35 36 37 38 39 40 41 42 43 44 45 46 47