본문 바로가기

mysql5

[MySQL] ROUND, CEILING, FLOOR 함수 ROUND(숫자, 반올림 자릿수) 숫자를 지정된 자릿수로 반올림하는 함수 SELECT ROUND(123.456, 2); -- 123.46SELECT ROUND(123.456); -- 123SELECT ROUND(123.456, 0); -- 123SELECT ROUND(123.456, -1); -- 120    CEIL(숫자)  /  CEILING(숫자)  파라미터의 숫자 보다 크거나 같은 가장 작은 정수 값을 반환하는 함수 SELECT CEIL(123.45); -- 124SELECT CEIL(123.78); -- 124SELECT CEIL(123); -- 123   FLOOR (숫자) 파라미터의 숫자보다 작거나 같은 가장 큰 정수 값을 반환하는 함수 SELE.. 2024. 7. 29.
[MySQL] 재귀쿼리 WITH RECURSIVE 재귀쿼리?재귀쿼리란 자기 자신을 반복적으로 불러내서 가상의 테이블 생성할 수 있는 쿼리문이다. 재퀴쿼리는 계층구조를 나타내려는 경우에 유용하다. WITH RECURSIVE tb명 AS ( SELECT 1 속성명 -- 비 반복문 (반복 X) UNION ALL SELECT 속성명 + 1 AS 속성명 -- 반복문 FROM tb명 WHERE 재귀쿼리 종료 조건)SELECT * FROM tb명;   📢 두가지의 예시를 소개하겠다. 1. 세대 구하기  해당 예시는 프로그래머스 SQL 코딩테스트 연습 문제이다.  데이터베이스의 테이블이 위에 처럼 주어졌을 때,각 ID가 몇 세대인지 나타내는 쿼리문을 작성해보겠다.WITH RECURSIVE LV_TB AS( SEL.. 2024. 7. 6.
[SuiteCare] MySQL 다른 테이블에서 데이터 가져와서 insert하기 recruitmentTB에 공고 관련 데이터를 넣으면서 해당 공고와 관련된 환자 정보도 함께 넣으려고 한다. (환자를 따로 관리하는 페이지가 있는데 공고를 올리고 환자 정보를 바꿀 때마다 공고에 대한 정보가 바뀌면 안되기 때문에 공고TB에 환자 정보를 입력하기로 했다.) patientTB에서 필요한 값과 새로 입력 받은 공고 관련 정보를 같이 insert하는 방법을 알아보도록 하겠다. 📍다른 테이블의 데이터 insert 하기 1. 모든 속성을 insert 하기 INSERT INTO 데이터 넣을 TB명 SELECT * FROM 데이터 가져올 TB명 WHERE 조건; EX. INSERT INTO recruitment SELECT * FROM patient WHERE id = 2; ❗ recruitmentTB.. 2024. 4. 15.
[SuiteCare] MySQL에서 일정 시간 후 자동으로 데이터 업데이트하기 진행하는 프로젝트에서 공고 마감을 설정하는 부분에서 설정해놓은 공고 기재 날짜가 지나면 공고 마감 상태로 변경하는 작업을 수행하기 위해 하루가 지날 때마다 자동으로 공고에 대한 상태 컬럼을 UPDATE 해주는 기능을 구현해야했다. MySQL에 이벤트 스케줄러(Event Scheduler) 기능을 사용해서 이를 구현할 수 있었다. 이 포스팅에서 이벤트 스케줄러를 사용하는 방법에 대해서 적어보려한다.  1. 기능 사용을 위한 설정하기이벤트 스케줄러를 사용하기 위해서는 사용할 수 있도록 설정해줘야한다. 일단 아래 쿼리문으로 설정된 상태를 확인할 수 있다.SHOW VARIABLES LIKE 'event%';  만약 OFF로 설정되어있다면 아래 쿼리문을 사용하여 상태를 ON으로 변경해준다!SET GLOBAL ev.. 2024. 4. 9.