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

MySQL

  1. 스프링 부트에서 로컬 MySQL 데이터베이스 연결하는 방법 완벽 가이드

    개요스프링 부트(Spring Boot) 애플리케이션을 개발하다 보면 로컬 환경에 설치된 MySQL 데이터베이스와 연결해야 하는 경우가 많습니다. 스프링 부트는 별도의 복잡한 설정 없이 application.properties 파일만으로 손쉽게 MySQL에 접속할 수 있습니다. 이 글에서는 설정 방법부터 실제 동작 확인까지 단계별로 살펴보겠습니다.1. application.properties 설정먼저 프로젝트의 src/main/resources 경로에 있는 application.properties 파일에 아래와 같이 데이터베이스 접속

  2. SQL COUNT 함수와 GROUP BY 활용법: 트랜잭션별 주문 수 집계 예제

    문제 상황DB2의 TRANSACTIONS 테이블에서 특정 트랜잭션 ID(TRANSACTION_ID)에 할당된 주문 수(ORDER_ID)를 집계하여 조회하는 SQL 쿼리를 작성해야 합니다.해결 방법이 문제는 COUNT 함수와 GROUP BY 절을 함께 사용하면 간단하게 해결할 수 있습니다. GROUP BY 절이 데이터를 트랜잭션 ID별로 그룹화하고, COUNT 함수가 각 그룹에 속한 주문의 개수를 계산합니다.쿼리 예제SELECT TRANSACTION_ID, COUNT(ORDER_ID) FROM TRANSACTIONS &nbs

  3. COBOL-DB2 프로그램에서 SQL 변경 없이 변수만 수정했을 때 BIND를 생략하면 어떻게 될까?

    문제 상황COBOL-DB2 프로그램에서 변수의 길이를 PIC X(5)에서 PIC X(8)로 늘리도록 변경했습니다. 그런데 프로그램 내 SQL 문장에는 아무런 변경이 없습니다. 이러한 변경 사항에 대해 프로그램의 PLAN/PACKAGE를 BIND하지 않고 실행하면 어떤 결과가 발생할까요?해결 방법변수 길이를 PIC X(5)에서 PIC X(8)로 변경하는 것은 DB2 관점에서의 변경이 아니며, 프로그램의 SQL 문장에 대해서도 별도의 수정이 필요하지 않습니다. 하지만 그럼에도 불구하고 반드시 PLAN/PACKAGE를 다시 BIND해야

  4. MySQL에서 MM/YY 형식을 YYYY-MM-DD 날짜로 변환하는 방법

    MySQL에서 MM/YY 형식으로 저장된 문자열(예: 카드 유효기간 같은 월/연도 데이터)을 YYYY-MM-DD 형식의 날짜로 변환하려면 str_to_date() 함수를 사용하면 됩니다. 이 함수는 지정한 형식 문자열에 따라 텍스트를 DATE 값으로 해석해 줍니다.1. 테이블 생성하기먼저 실습에 사용할 테이블을 생성하고 날짜 데이터를 담을 컬럼을 준비합니다.mysql> create table demo72 -> ( -> due_date varchar(40) -> ); Query OK, 0 r

  5. MySQL FIND_IN_SET() 함수로 특정 숫자가 포함된 레코드 전체 조회하기

    MySQL에서 하나의 컬럼에 쉼표(,)로 구분된 여러 값이 저장되어 있을 때, 그중 특정 숫자가 포함된 레코드를 모두 조회하려면 FIND_IN_SET() 함수를 사용하면 됩니다.FIND_IN_SET(str, strlist)는 첫 번째 인자로 찾고자 하는 문자열을, 두 번째 인자로 쉼표로 구분된 문자열 목록을 받습니다. 해당 값이 목록 안에 존재하면 그 위치(1부터 시작하는 인덱스)를 반환하고, 존재하지 않으면 0을 반환합니다. 따라서 결과값이 0보다 큰지를 조건으로 비교하면 원하는 레코드만 정확하게 필터링할 수 있습니다.1. 예제

  6. MySQL에서 동적 배열을 활용한 LIKE 쿼리 작성 방법

    MySQL에서 동적 배열과 함께 LIKE 쿼리를 구현하려면 LIKE 연산자와 ORDER BY, LIMIT 절을 조합하여 사용하면 됩니다. 기본적인 문법은 다음과 같습니다.기본 문법select * from yourTableName    where yourColumnName2 like %yourValue%    order by yourColumnName1 asc    limit yourLimitValue;이제 실제 예제를 통해 단

  7. MySQL에서 다른 테이블의 데이터를 사용해 한 테이블 업데이트하는 방법

    MySQL에서 다른 테이블의 데이터로 한 테이블 업데이트하기MySQL에서 한 테이블의 데이터를 다른 테이블의 값을 기반으로 업데이트하려면 UPDATE 명령어와 JOIN을 함께 사용하면 됩니다. 이 방법은 두 테이블 간에 공통된 키(예: 이름, ID 등)가 있을 때 특히 유용합니다.실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 첫 번째 테이블 생성먼저 원본 데이터가 담긴 첫 번째 테이블을 생성합니다.mysql> create table demo54-> (-> firstName varchar(20),-> last

  8. MySQL에서 여러 데이터 한 번에 삽입하는 방법

    MySQL에서는 INSERT 문 하나만으로 여러 개의 행(row)을 동시에 테이블에 삽입할 수 있습니다. 각 행의 값을 괄호로 묶고, 쉼표(,)로 구분해 나열하면 됩니다. 이 방식은 레코드마다 별도의 INSERT 문을 실행하는 것보다 네트워크 왕복 횟수와 쿼리 파싱 오버헤드가 줄어들어, 대량의 데이터를 입력할 때 성능 면에서 훨씬 유리합니다.기본 문법멀티 로우 INSERT의 기본 문법은 다음과 같습니다.insert into yourTableName values(yourValue1,yourValue2,.....N), (yourValu

  9. MySQL에서 특정 값을 맨 뒤로 정렬하는 방법 – ORDER BY 활용법

    MySQL에서 특정 값을 맨 뒤로 정렬하기 MySQL에서 데이터를 조회할 때, Not Known처럼 의미가 없거나 임시적인 값은 목록 맨 아래로 보내고 나머지 값들은 알파벳 순서대로 정렬하고 싶은 경우가 있습니다. 이럴 때 ORDER BY 절과 불리언(Boolean) 표현식을 조합하면 손쉽게 해결할 수 있습니다. 단계별로 살펴보겠습니다. 1단계: 테이블 생성 먼저 실습에 사용할 테이블을 만들어 보겠습니다. mysql> create table demo57 -> ( -> id int not null auto_incre

  10. MySQL 쿼리에서 CASE WHEN 표현식이 작동하지 않을 때 해결 방법

    MySQL에서 CASE WHEN 문이 예상대로 작동하지 않는 경우가 종종 있습니다. 대부분의 원인은 조건문의 문법 오류나 논리 구조의 잘못된 사용에 있습니다. 이 글에서는 CASE WHEN 문을 올바르게 사용하는 방법을 예제와 함께 자세히 살펴보겠습니다. 예제 테이블 생성하기 먼저 실습용 테이블을 생성해 보겠습니다. mysql> create table demo58 -> ( -> id int not null auto_increment primary key, -> first_name varchar(20), -&g

  11. MySQL에서 decimal(19,2) 컬럼에 데이터 삽입 시 값이 변경되는 문제 해결 방법

    MySQL에서 decimal 값이 변경되는 이유와 해결 방법MySQL에서 decimal(19,2) 타입의 컬럼에 소수점 셋째 자리 이하가 있는 값을 삽입하면, MySQL은 기본적으로 해당 값을 반올림하여 저장합니다. 만약 반올림 없이 정확한 실제 값을 그대로 저장하고 싶다면, 소수점 둘째 자리까지 잘라내는 TRUNCATE() 함수를 사용해야 합니다.예를 들어, 15.346이라는 값을 그대로 삽입하면 15.35로 반올림되어 저장됩니다. 하지만 TRUNCATE() 함수를 활용하면 15.34로 잘린 값이 저장됩니다.1. 테이블 생성먼저

  12. MySQL에서 WHERE IN 절로 NULL 값 조회하기

    MySQL에서 WHERE IN 절과 NULL 값 함께 사용하기 MySQL에서 WHERE IN 절을 사용할 때 NULL 값을 함께 처리해야 하는 경우가 있습니다. SQL에서는 NULL을 등호(=)나 IN 절로 직접 비교할 수 없기 때문에, IS NULL 조건을 OR 연산자와 함께 사용해야 합니다. 기본 문법 NULL 값을 포함하여 조회하는 기본 문법은 다음과 같습니다: SELECT yourColumnName1, yourColumnName2, yourColumnName3, ... N FROM yourTabl

  13. MySQL에서 다른 테이블의 문자열만 참조하여 행을 추가하는 방법 – INSERT INTO SELECT 완벽 가이드

    MySQL에서 한 테이블에 저장된 특정 컬럼의 값(문자열)만 가져와 다른 테이블에 새로운 행으로 삽입하려면 INSERT INTO ... SELECT 문을 사용하면 됩니다. 이 방식은 별도의 애플리케이션 로직 없이 SQL 문 하나로 기존 데이터를 손쉽게 복사·이전할 수 있어 매우 유용합니다.1. 예제용 첫 번째 테이블 생성먼저 원본 데이터가 담길 테이블을 생성합니다.mysql> create table demo61-> (-> id int,-> name varchar(20)-> );Query OK, 0 rows

  14. MySQL에서 문자열 암호화 및 복호화하는 방법 (AES_ENCRYPT, AES_DECRYPT)

    MySQL에서 문자열 암호화 및 복호화하기MySQL에서 데이터를 안전하게 저장하려면 문자열을 암호화해야 할 때가 많습니다. 이때 MySQL에서 제공하는 AES_ENCRYPT() 함수로 암호화하고, AES_DECRYPT() 함수로 복호화할 수 있습니다. 두 함수는 AES(Advanced Encryption Standard) 알고리즘을 기반으로 동작하며, 비밀 키(Secret Key)를 사용해 데이터를 보호합니다.기본 문법암호화하여 데이터를 저장할 때는 다음과 같이 INSERT 문과 함께 사용합니다.INSERT INTO yourTabl

  15. MySQL에서 검색어로 필드를 찾는 방법: REGEXP_INSTR 함수 활용하기

    MySQL REGEXP_INSTR 함수로 검색어 조회하기MySQL에서 특정 검색어가 포함된 필드를 찾고 싶다면 REGEXP_INSTR() 함수를 활용할 수 있습니다. 이 함수는 정규 표현식을 기반으로 문자열 내에서 패턴이 일치하는 위치를 반환하며, 일치하는 값이 있으면 0보다 큰 값을, 없으면 0을 반환합니다.기본 문법기본적인 사용 문법은 다음과 같습니다.select * from yourTableName where REGEXP_INSTR(yourColumnName, yourSearchValue);예제 테이블 생성문법을 실제로 이해하

  16. MySQL에서 여러 테이블의 기본 키를 외래 키로 참조하는 방법

    MySQL에서 기본 키를 외래 키로 참조하기MySQL에서는 ALTER TABLE 문과 ADD CONSTRAINT 구문을 사용하여 한 테이블의 기본 키(Primary Key)를 다른 테이블의 외래 키(Foreign Key)로 참조할 수 있습니다. 이를 통해 두 테이블 간의 참조 무결성을 보장할 수 있습니다.기본 문법외래 키 제약 조건을 추가하는 기본 문법은 다음과 같습니다.alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecond

  17. MySQL REGEXP로 특정 문자열과 숫자 조합으로 시작하는 레코드 조회하기

    개요MySQL에서 특정 문자열 뒤에 지정한 숫자가 이어지는 형태의 데이터를 조회하려면 REGEXP 연산자를 활용하면 됩니다. 정규 표현식의 앵커(^)와 문자 클래스([])를 조합하면 원하는 패턴에 일치하는 레코드만 손쉽게 추출할 수 있습니다.기본 문법다음은 REGEXP를 사용해 특정 문자열과 숫자 조합으로 시작하는 레코드를 조회하는 기본 문법입니다.SELECT yourColumnName1, yourColumnName2FROM yourTableNameWHERE yourColumnName2 REGEXP ^yourStringValue[y

  18. MySQL에서 MM/YY 형식 날짜를 YYYY-MM-DD로 변환하는 방법

    STR_TO_DATE() 함수로 날짜 형식 변환하기MySQL에서 09/18처럼 월/연도(MM/YY)만 저장된 문자열을 2018-09-24와 같은 완전한 날짜 형식(YYYY-MM-DD)으로 변환해야 하는 경우가 있습니다. 이럴 때는 STR_TO_DATE() 함수를 사용하면 간단하게 해결할 수 있습니다.핵심 아이디어는 일(day)에 해당하는 값이 없기 때문에, CONCAT() 함수를 이용해 원하는 일자를 문자열 뒤에 붙여준 뒤 날짜로 변환하는 것입니다.SELECT STR_TO_DATE(CONCAT(일자값/, 컬럼명), %d/%m/%y)

  19. MySQL에서 특정 값이 포함된 행을 걸러내고 다른 컬럼 값만 조회하는 방법

    개요MySQL에서 특정 값이 들어 있는 행을 찾으면서, 그 값이 저장된 컬럼은 제외하고 나머지 컬럼의 값만 화면에 표시해야 하는 경우가 있습니다. 이럴 때 CASE WHEN 문을 활용하면 간단하게 해결할 수 있습니다.예를 들어 이름(first_name)과 성(last_name)이 함께 저장된 테ーブル에서 John이라는 값이 포함된 행을 조회하되, John 자체는 결과에서 제외하고 다른 쪽 컬럼의 값만 보여주는 상황을 생각해 볼 수 있습니다.1. 테ーブル 생성먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create

  20. MySQL에서 예약 키워드로 테이블 생성 시 발생하는 구문 오류와 해결 방법

    문제 상황: 예약 키워드 groups로 인한 MySQL 구문 오류MySQL에서 테이블을 생성할 때 예약 키워드(reserved keyword)를 테이블 이름으로 그대로 사용하면 구문 오류가 발생합니다. 대표적인 예가 바로 groups입니다. groups는 MySQL에서 예약된 키워드이기 때문에 일반적인 방식으로는 테이블 이름으로 사용할 수 없습니다.실제로 groups라는 이름으로 테이블을 생성하려고 하면 다음과 같은 오류가 발생합니다.mysql> create table groups -> ( -> id int, -&g

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:10/229  20-컴퓨터/Page Goto:1 4 5 6 7 8 9 10 11 12 13 14 15 16