본문 바로가기

SQL/MySql

(12)
MySQL 사용자 생성 및 권한 생성 CREATE USER MySQL에서 사용자 생성할 떄 CREATE USER 'test'@'localhost' IDENTIFIED BY '1111'; MySQL에서 사용자에게 모든 권한 줄 때 GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost'; MySQL에서 사용자 삭제할 때 DROP USER 'test'@'localhost'; 맨날 검색해서 사용해서 블로그에 적어놓기..!!!
MySQL 테이블 복사 및 이름 변경 몇 개월 전에 짜놓은 쿼리가 데이터가 얼마 안될 때는 몰랐는데, 조회 갯수가 1억개 정도 넘어가니까 쿼리 속도가 3초가 넘어가는 것을 알게 됐다. 원인을 찾아보니, WHERE 조건에 있는 컬럼중에서 인덱스가 적용 안된게 있었다. 5초간격으로 서버에서 데이터를 받아오는 테이블이라서 어떻게 하나 고민이었다. 인덱스를 추가해야 될거 같은데, mysql 인덱스 추가를 검색해보니 추가라기보다는 인덱스를 지우고 다시 인덱스를 생성해야 되는 식이었다. 대표님한테 여쭤보니 화이트보드에다가 순서대로 하라고 친절하게 알려주셨다. 원본 테이블 복사후에 RSENAME해서 복사테이블과 원본테이블을 바꿔치기 하고, 그 사이에 인덱스를 새로 추가한다. 그리고 다시 RENAME으로 복사한 테이블과 원본 테이블의 이름을 바꿔주고, 인..
delete from where 날짜 범위 지정 테이블에서 데이터를 삭제할 때, DELETE 를 사용하면 되고, WHERE절 없이 명령어를 실행하면 다 날라가므로 주의해야합니다. 저는 WHERE 범위를 날짜로 다음과 같이 범위를 지정했습니다. FROM TABLENAME WHERE TOT_DATE >= DATE_FORMAT('2023-06-21 00:00:00' ,'%Y-%m-%d %H:%i:%s') AND TOT_DATE
DELIMITER MySQL MySQL에서 DELIMITER이란 무엇인가... DELIMITER $$ CREATE PROCEDURE P_SET_TMP_DATE() BEGIN DECLARE i INT DEFAULT 0; DELETE FROM ZTMP_DATE_DATA WHERE DATE_FORMAT(DT_1MI, '%Y-%m-%d') = DATE_FORMAT(sysdate(), '%Y-%m-%d'); WHILE (i < 1440) DO INSERT INTO ZTMP_DATE_DATA(DT_1MI) VALUE(DATE_ADD(CONCAT(DATE_FORMAT(sysdate(), '%Y-%m-%d'), ' 00:00:00'), INTERVAL i MINUTE)); SET i = i + 1; END WHILE; END$$ DELIMITER..
mariadb 컬럼명 조회 MARIA DB 에서 컬럼며을 조회해서 값을 쓰고 싶은데.... 검색해서 알게되었다! 아래 블로그 참고!! SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'user'; https://bskyvision.com/entry/MariaDB-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%BB%AC%EB%9F%BC%EB%AA%85%EB%93%A4%EB%A7%8C-%EC%9D%BD%EC%96%B4%EB%82%B4%EA%B8%B0 [MariaDB] 테이블 컬럼명들 읽어내기 오늘은 MariaDB에서 테이블의 컬럼명들을 읽어내는 방법에 대해 소개해드리도록 하겠습니다. 우선 예시를 위해 ..
MYSQL 별칭 WHERE 검색 조건 https://moon-dev-blog.tistory.com/16 [MySQL & MariaDB] Alias 별칭 부여시 조건문에서 사용하는 방법 안녕하세요. 본 포스팅은 주관적으로 작성되며, 틀린 정보가 있을시에 따끔한 충고 부탁드리겠습니다. 감사합니다. 내용 : 컬럼명 alias 사용 시 해당 컬럼을 조건문으로 사용하기위한 방법입니 moon-dev-blog.tistory.com FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
Mysql MAX 최신 날짜로 조회하기 INNER JOIN 사용 최근날짜의 데이터만 불러오고 싶을 때, WHERE 절 말고 INNER JOIN으로 select s.CNTNG_DT, s.SCN_ID, s.VHCL_ID, s.VHCL_ALS, s.TRMNL_ID from s_vhcl_als_day AS s inner join ( SELECT SCN_ID, MAX(CNTNG_DT) as MaxDate FROM s_vhcl_als_day WHERE SCN_ID = "S000000062" ) AS b on s.CNTNG_DT = b.MaxDate AND s.SCN_ID = b.SCN_ID ORDER BY VHCL_ID; 참고 글 : https://palbok.tistory.com/58 [MySQL] 날짜 기준으로 최신 행 가져오기 (중복 없이) select t.username..
Mysql 에러 execute command denied to user ~ for routine mysql 쿼리 중.. case 문 작성하고 있었는데 에러남... execute command denied to user ~ for routine 원인은 콤마를 빼먹은 것이었음!!! case앞에 괄호... 콤마를 빼먹었고... 지금은 다시 잘 적어줌. 콤마 안빼먹으려고 앞에다가 위치 시킨건데도 빼먹다니..!!!! SELECT a.TRMNL_ID2 ,a.TRMNL_ERR ,a.PM2_5 ,a.PM10 ,(CASE a.PM10 WHEN a.PM10 < 30 THEN '좋음' WHEN a.PM10 < 80 THEN '보통' WHEN a.PM10 < 150 THEN '나쁨' ELSE '매우나쁨' END) AS PM10_str ,a.TMPR_VAL ,a.HMDT_VAL ,a.OCRN_DT ,a.SCN_ID FRO..