본문 바로가기

MySQL MariaDB/SQL 문법13

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 생성. - input : 코드매핑그룹 , Asis_코드 - output : Tobe_코드 - 코드테이블 TAB_CODE_MAPP 코드매핑그룹 TAB_CODE_MAPP vachar 50 Asis_그룹코드명 asis_grp_cd vachar 50 Asis_코드 asis_cd vachar 20 Asis_코드명 asis_cd_nm vachar 100 Tobe_그룹코드명 tobe_grp_cd vachar 50 Tobe_코드 tobe_cd vachar 20 Tobe_코드명 tobe_cd_nm vachar 100 -- 코드매핑 FUNCTION 생성. CREATE FUNCTION F_CODE_SET(코드매핑그룹 VARCHAR(50), Asis_코드 VARCHAR(20)).. 2021. 10. 18.
MySQL MariaDB. 주석 쓰기 MySQL MariaDB. 주석 쓰기.\ 한 줄 주석 : #을 쓰고, 주석 쓰기합니다. -- 쓰고 한칸 띄우고 주석 쓰기합니다. # COMMENT -- COMMENT 여러 줄 주석 : /* */를 사이에 주석을 씁니다. /* COMMENT COMMENT */ 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.