Database 88

[DBeaver] 결과 패널 헤더 복사

개요DBeaver에서 SELECT를 수행하고 결과 패널의 출력을 복사할 때가 많은데, 결과 패널의 내용을 전체 선택하여 복사를 해도 컬럼명은 포함되지 않는 것 같다.위와 같이 전체를 선택한 상태에서 복사를 수행해도, 실제로 복사된 내용은 아래와 같다.2024-11-12 04:08:05.0 2024-11-11 04:00:00컬럼명도 포함해서 전체 복사하는 방법을 적어둔다.  Advanced CopyDBeaver의 일반 복사는 하나 이상의 셀의 내용을 탭으로 구분된 형식으로 복사한다. 복사의 방식을 제어하고 싶다면 Advanced Copy를 사용한다. Advanced Copy를 사용하면 열 이름 포함 여부, 행 번호 포함 여부, 구분 기호, 값 형식 등을 제어할 수 있다.Advanced Copy 기능에 진입..

Database 2024.11.27

[Redis] 키 만료 시간 설정

개요2023.06.03-[Python] redis 사용하기에서 redis에 값을 추가하고 값을 가져오는 방법을 알아보았다. 그리고 최근 redis에서는 값의 만료 시간을 설정할 수 있다는 것을 알게 되었다.방법을 적어둔다.   SETredis에 값을 설정하는 SET 명령을 사용할 때 만료 시간을 설정할 수 있는데, 그 옵션은 아래와 같다.EX : 초 단위 만료 시간 설정. 지정한 초 이후에 삭제된다.PX : 밀리 초 단위 만료 시간 설정. 지정한 밀리 초 이후에 삭제된다.EXAT : 만료 Unix 시각 설정. 초 단위로 설정하고, 해당 시각 이후에 삭제된다.PXAT : 만료  Unix 시각 설정. 밀리 초 단위로 설정하고. 해당 시각 이후에 삭제된다.참고로 EX 옵션은 SETEX 명령으로, PX 옵션은 ..

Database 2024.11.26

[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