반응형 SQL/MySQL66 MySQL IN NOT IN 사용방법 및 예제 MySQL에서 IN은 특정 값이 들어있을 경우에만 조회하려는 경우 사용하는데 WHERE 컬럼명 IN ('값', '값') WHERE 컬럼명 IN (SELECT절) 위와 같은 식으로 값을 여러개 넣어주거나 SELECT 절을 넣어 사용하게 된다 NOT IN은 IN과 반대로 특정 값이 들어있지 않은 값들만 조회하게 되는데 WHERE 컬럼명 NOT IN ('값', '값') WHERE 컬럼명 NOT IN (SELECT절) 이런 식으로 사용하는데 IN 앞에 NOT만 붙여준다는 것만 빼면 사용법은 동일하다 위 예제를 보면 NAME IN ('철수', '수철') 은 NAME이 철수, 수철인 값만 출력되고 NAME NOT IN ('영희', '수철') 은 NAME이 영희, 수철인 값을 빼고 출력하게 된다 마지막으로 예제에 사.. 2021. 1. 22. MySQL Access Denied for User 'root'@'localhost' (using password: YES) 에러 해결방법 DBeaver로 MySQL을 연결하려고 하는데 위와 같이 Access Denied for User 'root'@'localhost' (using password: YES) 이런 에러가 뜨면서 연결이 되지 않는 것이 보인다 root 계정에 접속 권한이 없어서 일어나는 문젠데 해결을 위해 일단 MySQL Workbench를 실행해보자 -- root 계정으로 만들지 않았을 경우 확인용 쿼리(root 대신 user 값으로 바꾸면 됨) SELECT user,authentication_string,plugin,host FROM mysql.user; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'; FLUSH PRIVILEGE.. 2021. 1. 22. 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. 이전 1 ··· 5 6 7 8 9 10 11 다음 반응형