일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 이클립스
- springboot
- expo
- 앱
- YAML
- sdk
- sqlite
- react
- mysql
- Java
- spring
- string
- 배포
- thymeleaf
- EAS
- sts
- 안드로이드
- 시놀로지
- DB
- 스프링
- Admob
- Android
- 시큐리티
- 로또
- 자바스크립트
- yml
- 폰트
- Native
- Navigation
- sql
- Today
- Total
목록mysql (11)
Dev JS Blog
MySQL 특정 문자열로 자르기 SELECT 'A>B>C' AS depth FROM DUAL A>B>C 라는 depth 컬럼이 있다. 구분자 '>' 를 기준으로 문자열을 자르고 싶다면 substring_index 를 이용한다. substring_index(컬럼,구분자,구분자 인덱스) SELECT substring_index('A>B>C','>',1) AS DEPTH FROM DUAL 결과) A SELECT substring_index('A>B>C','>',2) AS DEPTH FROM DUAL 결과) A>B 두번째 구분자 까지 결과값이 나온다. 그럼 B 만 나오게 하려면 어떻게 짤라야할까..? B 다음과 그 전(-1)을 짜르면 된다. SELECT substring_index(substring_index(..
mysql 에서 날짜를 더하고 빼고 싶을때는 어떻게 해야할까..? 바로 date_add를 이용하면된다. SELECT DATE_ADD(date형식, INTERVAL 숫자 원하는곳) FROM dual 포맷 결과 INTERVAL 1 day 1일 추가 INTERVAL 1 month 1달 추가 INTERVAL 1 hour 1시간추가 INTERVAL 1 minute 1분추가 INTERVAL 1 second 1초추가 반대로 빼는건 -1 마이너스로 하면 된다.
기본적으로 문자열을 자른다면 SELECT substring(컬럼, 시작점, 끝점) FROM 테이블 시작점은 1부터 시작한다. 'ABCD' 라는 문자열을 ABC 까지 자른다면 SELECT substring('ABCD',1,3) FROM dual 결과 > ABC 2번째부터 끝까지 자른다면...? LENGTH 를 이용하자 SELECT LENGTH('ABCD') FROM dual 결과 > 4 B부터 끝까지 자를려면 SELECT substring('ABCD',2,LENGTH('ABCD')) FROM dual 결과 > BCD
기본적으로 툴에서 이렇게 실행해본다. 현재 날짜와 시간이 나온다. 근데 실제 데이터는 툴의 날짜 포맷 설정대로 나오는 것일뿐.. 실제 데이터는 ms까지 다 찍힌다는 것..! 언제나 그렇듯 개발을 하다보면 내가 원하는 데이터로 포맷변환을 해줘야한다는것 기본적으로 이렇게 포맷을 해줄수가 있다. select date_format(now(),'%Y-%m-%d %T') from dual; 이렇게 결과가 나오지만 대소문자에 따라 결과는 다르게 나온다. 포맷 결과 %y 21(년 뒷자리2자리만) %Y 2021(년) %m 01(일) %M January(영어 월) %T(기본적으로 대문자만) 시간:분:초 원하는 포맷형식으로 쿼리를 짜서 사용하기를
쿼리를 짜다보면 기준 테이블로 1부터 10까지 혹은 1부터 100까지 있는 임시 테이블을 쿼리로 어떻게 짜야하나 싶을때가 있다. 그럴땐 with 문을 활용하자. 이렇게 해준다면 이렇게 깔끔한 결과가 나온다. 간단히 또 활용 가능한 것은 내가 원하는 기준년도 컬럼을 만들수가 있다. 이렇게 해준다면 2010 년 부터 2021 년까지의 년도 컬럼을 가지고 있는 임시테이블을 구성할 수 있으니 쿼리를 짤때 활용하면 된다. 추가로 날짜도 하는법을 추가 합니다. WITH RECURSIVE cte AS ( SELECT date_format('2020-01-01','%Y-%m-%d') AS dt FROM DUAL UNION ALL SELECT date_add(dt,INTERVAL 1 DAY) FROM cte WHERE ..
[MySQL] MySQL data convert MySQL 데이터 포맷 변경 방법!! SELECT convert('값',형식(크기)) FROM dual ex) SELECT convert('값',char(20)) FROM dual 로 쉽게 변경 가능하다. ex) SELECT convert('2020-01-01',datetime) FROM dual 하면 날짜타입으로 변경~
[MySQL] MySQL WITH 재귀쿼리 계층구조 보통 WITH 문 재귀쿼리 를 이용해서 계층 구조를 나타내는데 사용한다. 일단 재귀쿼리란..? 재귀 - 원래의 자리로 되돌아가거나 되돌아옴 이란 뜻을 갖고 있다. 쉽게 생각하면 같은걸 반복한다고 생각하면 쉬울까.. 즉 재귀쿼리는 한 쿼리가 반복되어 실행된다고 생각하면 된다. 이러한 반복 쿼리는 계층구조를 SELECT 할때 유용하게 쓰인다. 기본적으로 코드 테이블 구조를 만들때 code 와 parent_code(부모코드) 컬럼으로 구성하게 되면 계층구조로 select 하기 편해진다. WITH 문을 이용한 계층쿼리 부터 확인해보자 CODE_TABLE code parent_code a A b A A AA B AA AA 테이블 데이터가 이렇게 구성되어있다고 생..
[MySQL] Mysql Merge into Mysql 에는 Merge into를 지원하지 않는다. 그렇다면 UPDATE 와 INSERT를 한번에 할수 없는가..? 아니다. 다른 기능이 있다. 기본적인 INSERT 문에서 변형만 해주면 된다. (col -컬럼명 , val - 입력값) INSERT INTO TABLE (col1,col2,col3) VALUES('val1','val2', 'val3') ON DUPLICATE KEY UPDATE col2 = 'val4', col3 = 'val4'; 로 사용이 가능하다. 여기서 중요한건 col1, col2, col3 중 Primary Key(PK) 가 있어야 한다. Key가 중복 될경우 UPDATE 를 하고 Key가 중복되지 않을 경우 insert를 하기 때문이..