본문 바로가기
반응형

SQL186

MySQL SLEEP 함수 사용방법 및 사용이유 MySQL에서는 SLEEP(초) 를 사용해 잠시 쿼리를 중단시켜줄 수 있는데 SELECT 컬럼A, SLEEP(3), 컬럼B FROM 테이블; 이런 식으로 사용하면 컬럼A를 조회한 후 3초 멈췄다가 컬럼B를 조회하는 식으로 동작한다 혹은 SELECT 문 사이에 DO SLEEP(초); 를 넣어주면 쿼리 하나 돌고 지정한 초 만큼 쉬고 이후 아래 쿼리를 진행하게 되는 식인데 SLEEP은 대체적으로 DB에 트랜잭션을 유지시키는 등 테스트 용도로 주로 사용하게 된다 마지막으로 테스트에 사용한 쿼리는 아래와 같다 SELECT 'BEFORE', SLEEP(5), 'AFTER'; SELECT 'A'; DO SLEEP(5); SELECT 'B'; 2021. 1. 22.
MySQL IFNULL IF CASE 예제 및 사용방법 MySQL에는 IFNULL IF CASE를 이용해 NULL 처리 및 조건을 걸어 출력할 수 있는데 예제를 통해 차례대로 알아보자 먼저 IFNULL은 다음과 같이 사용하는데 IFNULL(값, 'NULL일_경우_값') 값이 NULL일 경우에는 'NULL일_경우_값' 이 대신 출력된다 다음은 IF인데 IF(조건, '맞을_경우_값', '아닐_경우_값') 조건에 맞으면 '맞을_경우_값'이 출력되고 그 외에는 '아닐_경우_값'이 출력되게 된다 만약 IF 조건 여러개 이런 식으로 사용하고 싶다면 아래의 CASE 쪽을 사용하는 것을 권장하는데 CASE WHEN 조건 THEN '맞을_경우_값' WHEN 조건 THEN '맞을_경우_값' ELSE '맞는게_없을_경우_값' END 조건에 맞으면 '맞을_경우_값'이 여러 조건 .. 2021. 1. 21.
MySQL 쿼리 히스토리 확인방법 MySQL에서 예전에 쿼리 뭐 쳤었는지 쿼리 히스토리를 확인하려는 경우에는 하단의 Output 탭에서 Action Output을 눌러준 뒤 History Output으로 변경을 해 주자 변경하고 나니 몇일에 뭔 쿼리를 쳤는지 쭉 확인이 가능한 것이 보인다 2021. 1. 21.
MySQL DB LOCK 해결방법 MySQL 사용 중 어떤 쿼리를 보내도 그냥 계속 돌기만 하는 경우를 데이터베이스에 락이 걸렸다고 하는데 다음 쿼리를 이용해 간단히 해결이 가능하다 먼저 SHOW FULL PROCESSLIST; 를 사용해주면 위 스크린샷과 같이 조회가 되는 것이 보이는데 여기서 주목해야 할 부분은 Command, Time, State인데 먼저 Command가 Query 상태이면서 Time이 계속 올라가고 있을 경우 Info 열에 해당하는 쿼리가 그냥 오래 돌아가는거다 누가 이렇게 오래 돌리는지 확인한 후 주인이 없으면 해당 행의 ID를 확인한 후 KILL [ID]를 해주면 된다 다음은 State가 locked 상태인 경우 DB LOCK이 걸린 상태인데 이때는 그냥 락 걸린 행의 ID를 봐준 후 KILL [ID]를 해주면.. 2021. 1. 21.
MySQL LIKE REGEXP(LIKE IN) 사용방법 MySQL에서 LIKE는 특정 문자를 포함하고 있는지 확인할 때 WHERE 절에서 사용하게 되는데 WHERE 컬럼명 LIKE '%값%' 이렇게 값에 %를 붙이는 식으로 컬럼에 적용시킨다 '값%' 은 값으로 시작하는 경우만 '%값' 은 값으로 끝나는 경우만 '%값%' 은 값이 들어가는 경우 전체 로 적용되게 된다 예제에 바로 사용 가능한 쿼리는 아래와 같다 WITH TBL AS -- 가상테이블 ( SELECT '김철수' AS NAME UNION ALL SELECT '김영희' AS NAME UNION ALL SELECT '최희영' AS NAME ) -- 값% 으로 사용 시 > 값으로 시작하는 경우만 SELECT * FROM TBL WHERE NAME LIKE '김%'; -- %값 으로 사용 시 > 값으로 끝.. 2021. 1. 21.
MySQL COALESCE 함수 사용방법 MySQL에서 COALESCE는 다음과 같이 사용하는데 SELECT COALESCE('값', '값', '값'); 이런 식으로 쓰면 입력한 값 중에서 NULL이 아니고 먼저 입력한 값을 우선해 출력해주게 되는데 COALESCE(NULL, 'A', 'B'); 위와 같이 사용하면 NULL이 아니면서 가장 먼저 입력한 값인 'A'가 나오게 된다 그리고 COALESCE(NULL, NULL); 와 같이 모두 NULL만 들었다면 NULL이 나오게 된다 마지막으로 예제에 사용한 쿼리는 다음과 같다 WITH TBL AS -- 가상테이블 ( SELECT NULL AS COL UNION ALL SELECT 'A' AS COL UNION ALL SELECT 'B' AS COL ) SELECT COALESCE(COL, 'C').. 2021. 1. 21.

반응형