반응형

DB/MySQL 24

[Mysql] 소수점 존재하는 데이터 확인하기

-- 반올림한 소수점 데이터와 버림처리한 정수 데이터를 빼서 0이랑 다른 경우만 조회 SELECT * FROM [테이블명] WHERE ROUND(컬럼명, 10 ) - FLOOR(ROUND(컬럼명, 10)) 0 ; ROUND : 숫자 반올림하기 -- 소수점 둘째자리에서 반올림 ROUND(컬럼명, 10) ROUND는 지정한 자리에서 반올림하는 함수입니다. 반올림할 자리 값은 생략할 수 있으며 기본값은 0입니다. 0이 소수점 첫째 자리이므로 1은 소수점 둘째 자리에서 반올림, -1은 정수 첫째 자리에서 반올림하겠다는 의미입니다. * 자릿수는 소수점을 기준으로 양수이면 소수점 자릿수, 음수이면 정수 * 반올림여부는 옵션으로 음수이면 버림처리, 0이나 없으면 반올림 FLOOR: 숫자 버림처리하기 FLOOR(컬럼명..

DB/MySQL 2022.10.04

[Mysql] 문자열 합치기(CONCAT, GROUP_CONCAT)

CONCAT 둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과 문자열을 반환합니다. 인수는 2개 이상 254개 이하로 사용 가능하다. CONCAT(값1, 값2, 값3, ... 값N) SELECT CONCAT('concat함수: ', '문자', '문자') AS test1, CONCAT('concat함수: ', '문자', 1) AS test2, CONCAT('concat함수: ', NULL) AS test3, CONCAT(NULL, NULL) AS test4 ; 같은 데이터 타입이나 다른 데이터 타입을 연결 시에는 가능하다. 하지만 CONCAT에서 NULL값은 빈 문자열로 암시적으로 변환하고, CONCAT에서 모두 NULL값을 인수로 넣으면 VARCHAR(1) 형식의 빈 문자열을 반환한다. ..

DB/MySQL 2022.04.22

[MySQL] UNION을 사용해서 SUM 구하기

UNION이란 무엇인가? UNION은 두 개 이상의 쿼리를 합쳐 하나의 쿼리로 만들어 주는 역할을 한다. 이 때 각 컬럼명은 같아야하며 데이터타입 역시 동일해야한다. 만일 컬럼명이 다른 경우엔 AS 를 사용해 컬럼명을 통일시켜주어야 한다. UNION VS UNION ALL 우선 기본적으로 UNION은 UNIONDistinct를 줄여서 쓰는 개념이다. 즉, 중복을 허락하지 않는다. 예를 들어 EX_TABLE1 에서 select 한 값이 'test1', 'test2' 이고 EX_TABLE2에서 select 한 값이 'test1', 'test3'이라고 가정해보자. 이때 UNION을 써서 두 sql을 합쳐주면 결과는 'test1', 'test2', 'test3'으로 중복을 제거한 결과값을 돌려준다. 하지만 Un..

DB/MySQL 2022.04.18

[MySQL] UNION, UNION ALL

MySQL 등의 RDBMS에서 사용하는 Union 연산자는 여러 테이블에 존재는 같은 성격의 값을 한 번의 쿼리로 추출할 수 있도록 돕는다. 예를 들어 Member 테이블에 회원 이메일이 있고, Newsletter 테이블에 구독자 이메일이 있는데, 모든 이메일로 메일을 보내고자 할 경우 두 번의 쿼리와 병합 프로그램을 만들어야 할 것이다. 이럴 때 union 연산자를 사용하면 한 번의 쿼리로 간단하게 정보를 추출할 수 있다. 예제 테이블 정보 * Member seq u_name u_email etc 1 홍길동 aa@aa.co.kr ... 2 이순신 bb@bb.co.kr ... 3 세종대왕 cc@cc.co.kr ... * Newsletter letter_ seq letter_name letter_email..

DB/MySQL 2022.04.06

[MySQL] SQL ROUND, FLOOR, CEIL 함수

ROUND 란? ROUND 는 정해진 자릿수에 따라 반올림을 하는 역활을 하는 함수입니다. 구하려는 소수점 자리수의 한 자리 아래의 숫자를 반올림 혹은 버림한다. 반올림 여부의 값을 0 또는 생략할 경우 반올림, 음수값일 경우 버림 먼저 반올림의 의미를 알아보자. 반올림이란 구하려는 자리의 한 자리 아래 숫자가 0, 1, 2, 3, 4 일 경우 버리고 5, 6, 7, 8, 9 일 경우 올리는 방법을 뜻한다. ROUND 사용법 ROUND(숫자(컬럼), (반올림 기준)) 숫자(컬럼) : 반올림할 대상 숫자 반올림 기준 : 소수점 자릿 수 지정(필수 아님) 지정하지 않을 경우 소수점 첫번째 자리를 사용한다. SELECT ROUND(10.349) -- 10 SELECT ROUND(10.349, 1) -- 10...

DB/MySQL 2022.04.01

[MySQL] SQL 문자열 자르기 - SUBSTR / SUBSTRING / LEFT / RIGHT

ORACLE에서 문자열 자르기 // 기본 데이터 > SELECT "test@test.com" as email; +---------------------------------------+ | email | +---------------------------------------+ | test@test.com | +---------------------------------------+ SUBSTR(문자열, 시작 위치, 길이) 문자열 : 원하는 문자열(대상 칼럼) 시작 위치 : 시작 위치 길이 : 시작위치 부터 마지막 위치 // SUBSTR 함수 사용하여 문자열 자르기 > SELECT SUBSTR("test@test.com", 1, 3) as email1 , SUBSTR("test@test.com", 1, ..

DB/MySQL 2022.04.01

[MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX

원하는 구분자 기준으로 문자열 자르기 MySQL document 참고 Mysql에서는 다양한 문자열 자르는 구문이 존재한다. 하지만 특정 문자를 기준으로 문자열을 자를 수 있는 방법이 있다. SUBSTRING_INDEX구문 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) 문자열 : 원하는 문자열(대상 칼럼) 구분자 : 구분자(구분을 나눌 특정 문자) 구분자 인덱스 : 구분자 순번 양의 정수 입력 : 왼쪽부터 오른쪽으로 인덱스 음의 정수 입력 : 오른쪽부터 왼쪽으로 인덱스 // 기본 데이터 mysql> SELECT "test123@test123.com" as email; +---------------------------------------+ | email | +---------------..

DB/MySQL 2022.04.01

[MySQL] ORDER BY 특정 값 우선 정렬 하기 (ORDER BY FIELD)

MySQL에서 ORDER BY 사용 시 특정한 값을 우선적으로 정렬 FIELD 함수를 이용하여 특정한 값을 우선적으로 정렬 할 수 있다. 쿼리를 통해 데이터를 가져올 때 데이터를 기반으로 조건을 걸어서 정렬하고 싶을 때가 있다. 그때 CASE나 FIELD를 사용하면 가능 조건에 따라 데이터의 정렬 우선순위를 정해줄 수 있다. FIELD ORDER BY FIELD (column, 1순위, 2순위, 3순위, n순위...) 어떤 특정 데이터의 값의 정렬을 우선으로 정해서 정렬하고 싶을 때 사용하면 된다. // 기본 테이블 SELECT id, title, status FROM movie ; 1 어벤져스 2 2 극한직업 0 3 타이타닉 1 4 스파이더맨 1 // 특정 컬럼을 order by 구에 지정하여 사용하기..

DB/MySQL 2022.04.01

[MySQL] 저장 프로시저 (Stored Procedure)

1. 저장 프로시저 (Stored Procedure)란? 여러 SQL 문을 하나의 SQL 문처럼 정리하여 CALL ✕ ✕라는 명령으로 실행할 수 있게 만든 것을 저장 프로시저(Stored Procedure)라고 합니다. Stored는 '저장하다', Procedur는 '절차'라는 의미입니다. 즉, 저장 프로시저는 일련의 절차를 정리해서 저장한 것입니다. 사전에 준비 한 많은 명령을 자동으로 실행할 수 있기 때문에, 작업의 효율성도 높일 수 있습니다. 단, 중요한 데이터가 축적된 데이터베이스에서 제대로 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험합니다. 2. 저장 프로시저 생성 / 호출 저장 프로시저 생성 예) 고객 테이블에서 고객이름순으로 조회한 정보를 저장 프로시저로 생성 DELIMITER $..

DB/MySQL 2022.04.01
반응형