반응형

Programming/MySQL,MariaDB 6

DB에 저장된 JSON 데이터의 키 값을 쿼리로 추출하기

추출 예시 DB에 JSON 형식을 문자열로 그대로 저장했을 경우 이것을 쿼리로 추출하는 방법입니다. { "filename":"test.png", "buttons":[ {"name":"test_name","url":"test_url"}, {"name":"test_name2","url":"test_url2"} ] }만약 이렇게 저장된 JSON 형식의 문자열 데이터가 있을 때, "filename"의 값인 "test.png" 만 가져오는 것이 목표입니다. 예시 DBMS는 MySQL입니다. 추출 쿼리 MySQL 5.7 버전 이상 (MariaDB 10.3 이상) MySQL 5.7 버전 이상부터 사용 가능하며, 내장 함수 중 하나인 JSON_EXTRACT()를 사용할 수 있습니다. JSON 데이터가 저장된 컬럼에서 ..

MySQL/MariaDB :: 특정 날짜 사이의 년,월,주,일 Group By (with PHP)

특정 날짜 사이의 년,월,일 Group By 하는 포스팅은 꽤 많았지만, 특정 범위의 날짜만 구하는 것이 아니라, 넓은 범위의 날짜를 구한 후 Group By 하는 방식으로 되어 있었다. 나는 정확히 특정 범위의 날짜만 구해서 처리속도도 최소화 하고 싶었다. 기존에 사용했던 코드 select stat_date from ( select adddate('[시작날짜]',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) stat_date from (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 u..

MySQL/MariaDB :: 단방향, 양방향 이중화 (Replication)

데이터베이스 이중화에 대한 내용 2대 이상의 DBMS를 나눠서 데이터를 저장한다. 삽입, 수정, 삭제 모두 복제할 수 있으며, 함수까지도 복제가 가능하다. 부분적으로 복제하는 것도 가능하다. CentOS 7, mysql Ver 15.1 Distrib 10.3.37-MariaDB 데이터베이스 양방향 이중화 my.cnf 설정 1번 서버 my.cnf ... [mysqld] server-id=1 log-bin=binlog binlog_format=mixed sync_binlog=1 binlog_cache_size=2M max_binlog_size=512M expire_logs_days=7 log-bin-trust-function-creators=1 ... 2번 서버 my.cnf ... [mysqld] serve..

MariaDB :: root 비밀번호 초기화 방법 (Bitnami 포함)

MariaDB root 비밀번호를 까먹어서 초기화 시켰습니다. 해당 과정을 기록합니다. Windows 10 10.4.24-MariaDB 1. MariaDB 서비스 중지 Bitnami로 MariaDB 설치한 경우 WAMP packaged by Bitnami 실행 후 "MariaDB Database" 클릭 후 Stop 직접 MariaDB 설치한 경우 CMD 열고 아래 명령어를 입력해요. (Bitnami 는 이게 안 될 수도 있어요.) net stop mysqld 이거 안 되면 아래로 하면 99% 멈추게 할 수 있어요. tasklist | findstr "mysql" #mysqld.exe 1376 Services 0 14,952 K mariadb로 검색하시면 안 됩니다. mysql로 검색하셔야 해요. 그 다음..

MySQL :: 테이블 여러 개 한 번에 삭제하기 (delete + join)

delete로는 주로 단일 테이블을 삭제하는데 여러 테이블을 동시에 삭제해야 하는 경우가 있습니다. join 을 이용해 2개 이상의 테이블을 삭제하는 방법을 기록합니다. 단일 테이블 삭제 delete from tableA where table_key = 7또는 delete from a using tableA a where a.table_key = 7다중 테이블 삭제 delete from a using tableA a join tableB b on (a.table_key = b.table_key) where a.table_key = 7where 절에는 a의 값, b의 값 무엇이 들어와도 상관없습니다.

MySQL/MariaDB :: 중복 없는 난수 생성

예측 불가능한 중복없는 난수를 생성하여 테이블에 저장하는 프로시저 만들기 중복 없는 난수 UUID SELECT UUID(), UUID(), UUID() #30e6956e-5752-11ec-853f-6c2b59c11615 #30e69572-5752-11ec-853f-6c2b59c11615 #30e69574-5752-11ec-853f-6c2b59c11615UUID를 통해 중복없는 난수를 생성할 수 있다. UUID() 는 UUID 버전1의 값을 반환한다. UUID 버전 1은 네트워크 랜 카드와 시간을 기반으로 유니크한 ID를 생성한다. 그렇기 때문에 위 코드 예시 중 (1-2-3-4-5) 로 가정했을 때 1번을 제외한 2,3,4,5 는 같은 수가 나온다. 네트워크 랜 카드와 시간을 기반으로 생성한 ID이기 때..

반응형