본문 바로가기

MySQL27

MySQL과 MariaDB의 차이점과 선택 기준 총정리 (라이선스, 성능, 보안, 장점, 차이점,,) MySQL과 MariaDB는 현재 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 두 가지입니다. MySQL은 오라클이 인수한 후에도 여전히 상용화된 버전과 오픈 소스 버전이 제공되며, 폭넓은 사용자층과 많은 레퍼런스를 보유하고 있습니다. 반면 MariaDB는 MySQL에서 포크되어 개발된 시스템으로, 성능 최적화와 다양한 스토리지 엔진 추가, 높은 호환성을 특징으로 합니다. MariaDB는 특히 대용량 데이터 처리와 고속 쿼리 성능을 필요로 하는 환경에 최적화되어 있으며, MySQL보다 더욱 강화된 보안 기능을 제공합니다. MySQL과 MariaDB는 호환성 측면에서 유사하지만, 각자의 특화된 기능이 있어 사용자의 필요에 따라 선택이 달라질 수 있습니다.목차1. MySQL.. 2024. 11. 7.
MySQL / MariaDB case. when. then. 단일/다중 조건문. MySQL / MariaDB case. when. then. 다중조건문 사용하기. select case when 조건1 then 반환값 when 조건2 then 반환값 else 반환값 endfrom table_id; ex ) select case when a= 1 then 'A' when a= 2 then 'B' else 'C' end from table_id; ex ) select case when a= 1 and b = 2 then 'A' when a+b > 2 or b = 3 then 'B' else 'C' end from table_id; 2022. 1. 19.
MySQL/MariaDB 세션 확인 / Session kill MySQL/MariaDB 에서 접속 중인 session 정보 확인 / Session kill - 접속 중인 session list 정보 확인 SHOW PROCESSLIST; id session id. 세션id user 접속한 계정의 id host host + port db 접속한 db command thread가 현재 실행 중인 명령, Sleep의 경우는 idle 상태를 의미 time 현재 state가 유지된 시간, seconds 단위. state 현재 thread의 상태 - 문제가 되는 세션, kill 한다. Session kill KILL 세션id Timeout 값을 설정 connect_timeout 서버 접속시에 접속실패를 메시지를 보내기까지 대기하는 시간 delayed_insert_timeout .. 2021. 12. 17.
MariaDB/MySQL 정규표현식 (Regular Expression) MariaDB/MySQL 정규표현식 (Regular Expression) 정규표현식 (Regular Expression) ? 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. 문자열을 처리하는 방법 중의 하나로, 특정한 조건의 문자를 ‘검색’하거나 ‘치환’하는 과정을 매우 간편하게 처리할 수 있도록 해주는 수단이다. 정규 표현식은 SQL부터 스크립트 언어까지 다양한 곳에서 활용할 수 있다. Matching . 문자 하나 I (수직선) = OR. I(수직선)로 구분된 문자에 해당하는 문자열을 찾음. [] [] 안에 나열된 패턴에 해당하는 문자열을 찾음. ^ 시작하는 문자열을 찾음. $ 끝나는 문자열을 찾음. "..." 문자열의 길이가 세 글자 이상인 것을 찾.. 2021. 12. 9.
MySQL / MariaDB like와 in을 동시 사용 => regexp MySQL / MariaDB_like와 in을 동시 사용 => regexp regexp? 정규식을 이용한 검색 방식이다. like보다 좀 더 다양한 검색을 할 수 있도록 도움을 준다. 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을보다 간단하게 표현하여 데이터를 검색할 수 있다. select * from tabA where col1 regexp '가' = select * from tabA where col1 like '%가%' - tabA 에서 col1 컬럼에 '가' 포함된 row 출력 select * from tabA where col1 regexp '대한|민국|만세' = select * from tabA where col1 like '%대한%' or name like '%민국%' or na.. 2021. 12. 9.
MySQL/ MariaDB COALESCE: 첫 null 아닌값 리턴. MySQL/ MariaDB COALESCE 함수: 처음으로 null이 아닌 값을 만나면, 그 값을 리턴한다. COALESCE 함수(col1, col2,,,,coln) 첫 null 아닌값 를 리턴한다. - 인자를 두개 이상~n개 사용할 수 있는 함수. - 여러값 중 null아닌, 최초값을 추출할 때 사용. ex) select COALESCE ('a', 'b', 'c', null) => 결과값 : 'a' select COALESCE (null, 'b', 'c', null) => 결과값 : 'b' select COALESCE ('null null, 'c', null) => 결과값 : 'c' ex) select COALESCE (aaa.col_a, aaa.col_b, '333') from ( ( select c.. 2021. 12. 7.
MySQL/ MariaDB 현재날짜, 현재시간 반환 MySQL/ MariaDB 현재날짜, 현재시간 추출 현재 날짜 반환 : CURDATE() select CURDATE(); 결과값 => 2022-11-11 현재 시간 반환 : CURTIME() : select CURTIME(); 결과값 => 13:11;33 현재날짜 & 시간을 반환 : SYSDATE() / NOW() : select SYSDATE(), NOW(); 결과값 => 2022-11-11 13:11;33 2022-11-11 13:11;33 2021. 11. 19.
MySQL/MariaDB. 날짜 Type 데이터 -> 문자열로 변환 MySQL/MariaDB. 날짜타입 데이터 -> 문자열로 변환. 날짜 or 시간만 분리 추출. select DATA_FORMAT('2022-11-11 13:44:33', '%Y-%m-%d'); 결과값 => '2122-11-11' select DATA_FORMAT('2022-11-11 13:44:33', '%Y%m%d'); 결과값 => '21221111' select DATA_FORMAT('2022-11-11 13:44:33', '%H:%i:%s'); 결과값 => '13:44:33' select DATA_FORMAT('2022-11-11 13:44:33', '%H:%i:%s'); 결과값 => '13:44:33' => '2021-05-04' 2021. 11. 18.
MySQL / MariaDB 날자,시간 차이 계산 / 시간표현 변경 MySQL / MariaDB 날자,시간 차이 계산 / 시간표현 변경 일자차이 계산 : DATEDEFF(날자1. 날자2) ex) selelct DATEDEFF('2022-12-11', '2022-12-11) from table_id; 결과 ==> 10 시간차이 계산 : TIMESTAMPDIFF(시간표현단위, 시작일자시간, 종료일자시간) ex) select TIMESTAMPDIFF(second, date_1, date_2) from table_id; - 시간표현단위: second / minute / hour / day / wee / month / quarter / year 초단위 => 시분초로 변경 / 시간으로 변환 : SEC_TO_TIME(second) - 초단위의 시간을 시:분:초 로 표현한다. ex) .. 2021. 11. 17.
MySQL MariaDB. 함수 FUNCTION 생성 및 함수 호출! MySQL MariaDB. 함수 FUNCTION 생성 및 함수 호출하는 방법입니다..MySQL MariaDB. 함수 FUNCTION 생성.- input   : 코드매핑그룹 ,  Asis_코드- output : Tobe_코드  - 코드테이블 TAB_CODE_MAPP코드매핑그룹 TAB_CODE_MAPPvachar 50Asis_그룹코드명asis_grp_cdvachar 50Asis_코드asis_cdvachar 20Asis_코드명asis_cd_nmvachar  100Tobe_그룹코드명tobe_grp_cdvachar 50Tobe_코드tobe_cdvachar 20Tobe_코드명tobe_cd_nmvachar  100 -- 코드매핑 FUNCTION  생성. CREATE     FUNCTION F_CODE_SET(코드매핑.. 2021. 10. 18.
MySQL MariaDB. 주석 (한 줄 주석, 여러 줄 주석) 쓰기 MySQL MariaDB. 주석 쓰기.\ 한 줄 주석  :   #을 쓰고,  주석 쓰기합니다.                    -- 쓰고 한칸 띄우고 주석 쓰기합니다.# COMMENT-- COMMENT 여러 줄 주석 :  /* */를 사이에 주석을 씁니다./* COMMENT  COMMENT  */   2022-11-11 현재 시간 반환 : CURTIME() : select CURTIME(); 결과값 => 13:11;33 현재날짜 & 시간을 반환 : SYSDATE() / NOW() : sel" data-og-host="soo02.tistory.com" data-og-source-url="https://soo02.tistory.com/108" data-og-url="https://soo02.tistory... 2021. 10. 18.
MySQL MariaDB. NULL 치환. MySQL MariaDB. NULL 치환하기. IFNULL (값1, 값2) => 값1이 Null 이면 값2로 치환한다. SELECT IFNULL ( col, 0 ) FROM table. => col 값이 Null 이면 0을 출력, Null 아니면 그대호 col 값을 출력! 2021. 10. 15.
MySQL Maria 상위 몇개 data만 조회. MySQL MariaDB 많은 data중 상위 data 일부만 추출해 오기. -- 3개만 조회해 오기. SELECT * FROM TABLE LIMIT 3 SELECT * FROM TABLE WHERE col_yn = 'Y" LIMIT 3 SELECT * FROM TABLE WHERE col_yn = 'Y" ORDER BY col1 LIMIT 3 2021. 10. 15.
MySQL / MariaDB 구분자 기준으로 여러 row로 추출. MySQL / MariaDB 하나의 로우에 있는 값에 있는 구분자를 기준으로 여러개 row로 추출한다. SELECT SUBSTRING_INDEX (SUBSTRING_INDEX (테이블명.컬럼영, '구분자', numbers.n), '구분자', -1) 컬럼명 FROM ( SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 ) numbers INNER JOIN 테이블명 ON CHAR_LENGTH ( 테이블명 . 컬럼영 ) - CHAR_LENGTH ( REPLACE ( 테이블명 . 컬럼영 , '구분자' , '' ))>= numbers . n-.. 2021. 10. 14.
MySQL / MariaDB 테이블, 컬럼 & key 정보 한번에 조회 #--- 테이블별 컬럼 & key 정보 한번에 조회 SELECT T.table_name , C.column_name , C.column_comment , C.ordinal_position , C.column_type , C.is_nullable , C.column_default , C.column_key , inx.index_name CASE inx.non_unique /*-- 1: 인덱스에 중복 가능. 0 : 중복 불가. */ WHEN '1' THEN 'non_uni' WHEN '0' THEN 'unique' ELSE '' END key_unique , inx.nullable /*--- YES : 열에 NULL이 포함될 수 있음. */ FROM ( SELECT T.table_name , C.column.. 2021. 8. 25.