Database 116

[MySQL] GROUP_CONCAT으로 압축한 행 풀기

개요2024.09.10-[MySQL] GROUP_CONCAT - 그룹 별 행 압축에서 특정 컬럼에 대해 그룹 별로 압축하는 GROUP_CONCAT 함수를 알아보았다. 이번 글에서는 JSON_TABLE, JSON_ARRAY를 활용하여 압축한 행을 다시 풀어내는 방법을 적어본다.  예제 데이터다음과 같은 예제 데이터를 사용하여 방법을 적어둔다.| type | names || ------- | -------- || cooker | 뒤집개 || fruit | 수박,사과,사과 | DDL더보기CREATE TABLE objects ( type varchar(50), names varchar(100));INSERT INTO objects VALUES ('cooker ', '뒤집개');INS..

Database 2024.10.11

[MySQL] JSON_TABLE - JSON 데이터를 테이블로 변환

개요2024.09.23-[MySQL] JSON 다루기에서 MySQL에서 JSON 형식의 데이터를 추가하고 조회하는 방법을 알아보았다.이번 글에서는 JSON 데이터를 테이블 형태로 변환하는 함수인 JSON_TABLE 함수의 사용 방법을 적어둔다.  JSON_TABLEJSON_TABLE(expr, path COLUMNS (column_list) [AS] alias)JSON_TABLE은 JSON 데이터를 표형식 데이터로 변환하는 함수로 MySQL 8.0에서 도입되었다. 매개변수는 다음과 같다.- expr : 테이블로 변환할 JSON 데이터- path : 테이블 행을 생성하는데 사용하는 JSON 경로- column_list : 테이블 열을 생성하는데 사용하는 JSON 경로 예시와 함께 사용 방법을 적어둔다.  ..

Database 2024.10.10

[MySQL] JSON 다루기

개요최근 MySQL에서 JSON 데이터를 지원하고 있다는 것을 알게 되었다. 간단히 읽고 쓰는 방법을 확인해 보자.   JSON 타입MySQL 데이터베이스의 테이블에서 JSON 데이터를 다루기 위해서는 테이블 컬럼의 데이터형이 JSON이어야 한다.CREATE TABLE employees ( id integer AUTO_INCREMENT primary key, name VARCHAR(200), profile JSON);  INSERTJSON 데이터는 문자열 또는 JSON_OBJECT를 사용하여 입력할 수 있다. 1. 문자열로 입력하기INSERT INTO employees(name, profile) VALUES ('홍길동', '{ "age" : 30, "gender" : "man", "부서": "개발" }'..

Database 2024.10.08

[MySQL] GROUP_CONCAT - 그룹 별 행 압축

개요여러 값이 저장되어 있는 테이블에서 특정 컬럼에 그룹 별로 값이 어떤 것들이 있는지 확인하고 싶다. 이럴 때는 그룹 별로 여러 행의 데이터를 하나의 필드로 연결하는 GROUP_CONCAT 함수를 사용할 수 있다. 사용법을 적어둔다.  GROUP_CONCATGROUP_CONCAT은 여러 행의 데이터를 하나의 필드로 연결하는데 사용하는 함수이다. 그룹에 NULL이 아닌 값이 포함되어 있으면 문자열 값을 반환하는 집계 함수로, 그룹에 값이 전부 NULL이면 NULL을 반환한다.SELECT GROUP_CONCAT ( [DISTINCT] col_name1 [ORDER BY 절] [SEPARATOR str_val] ) FROM 테이블_이름 GROUP BY 그룹화_기준_열;   예시다음과 같이 물건의 유형과 이름..

Database 2024.09.25

[DBeaver] Connection is read-only. Queries leading to data modification are not allowed.

현상DBeaver를 사용해 MySQL에서 작업을 수행하려고 하는데, 언제부터인가 데이터 SELECT문은 정상적으로 동작하지만 ALTER, WITH, CREATE 등의 SQL을 사용할 때는 다음과 같은 에러가 발생하면서 수행되지 않았다.계속 작업이 불가능한 상태라 해결 방법을 적어둔다.   해결 방법최근 Connection 설정을 편집하면서 실수했는지, rea-only connection 설정을 활성화한 게 원인이었다. 다시 수정해 보자. 1. Connection 설정 편집창 열기Connection 우클릭 > Edit Connection으로 접근할 수 있다. 2. General 탭 > Security 항목 확인Securitydml Read-only connection 설정을 체크 해제한 후 저장한다.   ..

Database 2024.09.24

[MySQL/JDBC] User does not have access to metadata required to determine stored procedure parameter types.

현상JDBC를 통해 MySQL에서 사용 중인 프로시저 정보를 확인하려고 하면 아래와 같은 메시지와 함께 실패하는 경우가 있다.User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.대충 보면 권한 문제처럼 보이는데…… 문제를 해결해보자.   원인에러 메시지..

Database 2024.08.29

[MySQL] DIV - 나눈 몫 계산

개요프로그램에서 동작하고 있는 쿼리를 분석하다 모르는 예약어가 있어 정리해 둔다.  DIVx DIV y DIV는 두 수를 나눴을 때 그 몫을 반환하는 함수이다.(보통 데이터베이스 상에서 사칙연산과 관련된 함수를 쓸 때 괄호 안에 매개변수를 전달해 왔어서 몰랐다…….)두 수를 나눈 실수형 데이터를 반환하는 나눗셈(/) 연산자와 달리, DIV는 두 수를 나눈 몫에 해당하는 정수형 데이터를 얻을 수 있다.   테스트나눗셈 연산자와 DIV의 실행 결과를 비교한다. - 나누어 떨어지는 수SELECT 10 / 5 , 10 DIV 5 실행 결과| 10 / 5 | 10 DIV 5 || ------ | -------- || 2.0000 | 2 |  - 나누어 떨어지지 않는 수SELECT 11 / 5 ..

Database 2024.08.27

[Redis] List 다루기

개요2023.06.01-[Redis] redis-cli로 데이터 읽고 쓰기에서 set, get 명령으로 문자열 데이터를 읽고 쓰는 방법을 살펴보았었다. 이번 글에서는 Redis에서 List를 다루는 방법을 정리해 본다.  ListRedis는 리스트 형태의 데이터 타입을 지원한다.LPUSH, RPUSH 명령으로 데이터를 추가하고 LPOP, RPOP 명령으로 데이터를 꺼낸다. 데이터를 조회할 때는 LRANGE, LLEN 명령을 사용한다.  명령어LPUSHkey의 리스트 왼쪽에 원소를 추가한다.LPUSH key element-- 예시LPUSH mylist 0다음과 같이 mylist라는 키에 값이 1인 원소를 가진 리스트가 있다고 하자.이 리스트에 LPUSH로 0을 추가하면 다음과 같은 상태가 된다.mylist..

Database 2024.08.26

[Redis] Pub/Sub - 테스트

개요2024.07.30-[Redis] Pub/Sub 개념에서 Publish, Subscriber 개념에 대해 적어두었었다. 이 글에서는 redis-cli를 사용해 직접 테스트를 해보자. 테스트를 하기 위해서는 먼저 Redis가 있어야 한다. 2023.05.30-[Redis] 개념 및 설치/실행을 참고하여 설치한다.또한 Publisher, Subscriber가 필요하므로 redis-cli를 각각 다른 세션에서 실행하여 테스트한다.   관련 명령어Publish, Subscribe와 관련된 명령어는 다음과 같다. 명령어설명subscribe  채널을 구독하여 메시지를 수신받는다.한 번에 여러 채널을 구독할 수 있다.publish 메시지를 채널에 송신한다.pubsub서버에 등록된 채널이나 패턴을 조회한다.psu..

Database 2024.08.21

[Redis] Pub/Sub 개념

개요이전에 2023.05.30-[Redis] 개념 및 설치/실행, 2023.06.01-[Redis] redis-cli로 데이터 읽고 쓰기 등으로 Redis에 대한 간략한 개념이나 데이터를 읽고 쓰는 방법에 대해 적어두었었는데, 최근 다시 Redis를 사용한 개발을 수행하게 되었다.관련하여 Pub, Sub라는 개념을 접하게 되어 적어둔다.  Pub/SubPub, Sub란 Publish, Subscribe의 줄임말로 Message Queue를 통해 데이터를 교환하는 방법 중 하나이다.Publish, Subscribe는 특정 주제(Topic)에 대해 구독한 수신자 모두에게 메시지를 발행하는 통신 방법이다. 즉, 하나의 클라이언트가 특정 Topic에 메시지를 Publish 하면, 해당 Topic에 연결되어 있는..

Database 2024.08.20
1 2 3 4 5 6 7 ··· 12