RDBMS 14

[AWS Redshift] FULL JOIN과 COALESCE

오늘은 full join과 coalesce를 같이 활용해보았는데 이것을 한번 정리해 보려고 합니다. 1. full join 두개의 테이블의 모든 공통 요소를 결합하는 join형태로서 둘중 하나라도 값을 가지고 있다면 병합됩니다.(합집합) 2. coalesce 주로 사용되는 목적은 NULL처리 입니다. NULL인경우 어떤값으로 변경하도록 하는데 많이 사용합니다. 그럼 이둘을 합쳐서 사용해보면 어떤 효과가 발생할까요?? SELECT COALESCE(dt.id, dt2.id) AS id, COALESCE(dt.create_date, dt2.create_date) AS create_date, (COALESCE(dt.driving_sec, 0) + COALESCE(dt2.cancel_driving_sec, 0))..

RDBMS 2024.03.08

MSSQL - DataBase내부 테이블들의 용량/row수 확인하기

우리가 데이터를 운영하면서 생성한 테이블들의 내부 row수 또는 테이블의 현재 용량이 어느정도인지를 확인하기 위해서 사용하는 쿼리 두개를 기록해 본다. 1. 현재 데이터베이스에 존재하는 테이블들의 용량을 볼 수 있는 쿼리 SELECT CONVERT(VARCHAR(30), MIN(o.name)) AS TABLE_NAME , LTRIM(STR(SUM(reserved) * 8192.0 / 1024.0, 15, 0) + ' KB') AS TABLE_SIZE FROM sysindexes i INNER JOIN sysobjects o ON o.id = i.id WHERE i.indid IN (0, 1, 255) AND o.xtype = 'U' GROUP BY i.id ORDER BY -- t_name ASC SUM..

RDBMS 2022.05.07

MSSQL - 날짜 및 시간 더하고 빼기

이전 글에서 구했던 시간을 내가 원하는데로 빼고 더하는 방법에 대해 알아봅니다. 이전글: MSSQL - 현재 날짜 시간 구하기 1. 날짜 더하고 빼기 SELECT CONVERT(date,GETDATE() -1) AS 'DATE' 결과 현재 쿼리 실행일은 1월 4일로 GETDATE() 바로 뒤에 -x, +x 해주는걸로 날짜를 일단위로 변경할 수 있습니다. 2. Date타입에서 년, 월, 일 변경 SELECT DATEADD(DAY, -10, CONVERT(date,GETDATE())) AS [10일전] SELECT DATEADD(MONTH, -10, CONVERT(date,GETDATE())) AS [10개월전] SELECT DATEADD(YEAR, -10, CONVERT(date,GETDATE())) AS..

RDBMS 2022.01.04

MSSQL - 현재 날짜 시간 구하기

쿼리를 사용하면서 오늘 날짜부터 혹은 오늘날짜 까지 데이터를 조회하는 경우가 생기는데 그럴때 사용하게 된다. 1. 오늘날짜 및 시간 가져오기 SELECT GETDATE() AS 'DATETIME' 결과 2. 오늘 날짜만 가져오기 SELECT CONVERT(date,GETDATE()) AS 'DATE' 결과 3. 지금 현재시간만 가져오고 싶은 경우 SELECT CONVERT(time,GETDATE()) AS 'TIME' 결과 저는 서버 시간이 UTC로 설정되어있어 -9시간 되어있습니다. 잘 활용하여 쿼리 작성 하시길 바랍니다.

RDBMS 2022.01.04

MSSQL - 중복데이터 처리

MSSQL에서 중복데이터가 발생시 사용하는 쿼리를 한번 살펴 봅니다. 우선 중복처리를 위해서 중복을 확인 할 필요가 있습니다. (단 확실하게 중복이 들어있는것이 맞다면 이 쿼리를 실행하지 않습니다.. 그냥 시간만 낭비할뿐..) SELECT ROW_NUMBER() OVER (PARTITION BY ORDER BY , * FROM 이렇게 조회를 하면 내가 중복을 거를 조건을 Column Name으로 하여 조회 할 수 있다. 이렇게 중복이 확인 되면 DELETE A FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY ORDER BY ) AS NUM, * FROM ) A WHERE num >= 2 각 중복을 확인하고 중복 된 회수를 A에 기록한다. 그리고 A의 회수가 2이상 즉 중..

RDBMS 2021.10.23

MSSQL - IDENTITY 값 초기화

우리가 테이블을 생성하고 IDENTITY을 지정하게 되는데 (ex. ID) 순차적으로 값이 증가해서 Index를 만들기는 편하지만 Data를 삭제하는경우 ID값의 증가량이 그대로 유지가 되어서 곤란한경우가 생기는데 이때 이를 해결하기 위해서 아래 쿼리로 해결 할 수있다. 1. 현재 ID값 확인 DBCC CHECKIDENT(, NORESEED) 2. DBCC CHECKIDENT(, RESEED, ) SEED No. 에 내가 시작하고 싶은 identity의 값을 입력하면 된다. 만약 0으로 초기화 하고싶다면 SEED No.에 0을 입력해준다. 3. 사용 예 (1) 이미 데이터가 90번까지 차있는 상태에서 10개 항목을 추가한다 (2) 방금 추가한 10개 항목을 지운다. (3) DBCC CHECKIDENT(,..

RDBMS 2021.07.12

MariaDB Data Update 하기

이미 insert한 데이터를 잘못 입력했거나 혹은 변경이 필요한 경우 Data를 수정해야 한다. 이때 사용하는 명령이다. 1. 업데이트 명령어 UPDATE SET = where (1) 테이블 이름 : 업데이트를 원하는 테이블 이름 설정 (2) 변경 Column 이름 : 변경을 원하는 데이터가 들어있는 Column을 지정한다. (3) 변경할 값 : 값을 입력할때 insert와 같이 데이터 타입에 따라 따옴표 유무가 있다. (4) 범위 지정 : 범위를 지정하지 않아도 업데이트가 가능하지만... 그러면 Column 전체가 변경되어 인생에 다시없을 재앙이 찾아온다... 2. 예제 UPDATE topic SET description = 'Postgre SQL ...' WHERE id=4 3. 결과물 문장 뒤에 ...

RDBMS 2021.05.25

mariaDB 데이터 INSERT하기

1. 데이터를 넣고 싶은 데이터 베이스를 선택한다. use > 2. 아래와 같은 명령어를 입력하여 데이터를 삽입 한다. insert into (column1,column2,column3 ...) values('String type value', int type value, ...); 테이블 이름이 들어간뒤 나오는 컬럼 목록과 Values안에 들어가는 항목간의 순서를 맞춰주어야 한다. String type의 Data는 ' ' 를 사용하여 묶어줘야 한다. int type의 Data는 그냥 입력해서 사용한다. 넣고싶은 데이터를 위와같은 양식으로 계속 입력하여 데이터를 집어넣는다. 3. 예제 insert into topic (title,description,created,author,profile) values..

RDBMS 2021.05.25

MariaDB Table 생성

Table 생성은 DB생성과는 다르게 매우 명령어가 복잡? 하고 틀리면 매우 씅질이 나기 때문에 차근차근 곱씹으며 진행해 보도록 한다. 비록 실무에서는 Table을 직접 생성할 일이 많지 않다고는 하나 CRUD중 C에 해당하는 항목이니 진행해보자! 1. Table 생성 CREATE TABLE ( , , ... ) 기본 형을 따라서 작성을 하게 된다. (1) Column name = 생성하고 싶은 컬럼의 이름을 입력한다. (2) DataType (중요) 기본적으로 자주 사용하는 몇가지 데이터 타입만을 언급하여 작성하고 나머지는 Cheat Sheet나 MySQL 공식 문서를 찾아보기를 권한다. 데이터 유형 정의 INT 정수형 데이터 저장 값의 범위는 -2147483648 ~ 2147483647 BIGINT ..

RDBMS 2021.05.25