DB공부 9

[세무민의 코딩일기] SQL 내장함수에 대해서 알아보자 2탄!(문자열 공백 제거와 문자열 쪼개기)

요새 회사 업무에 시달리는 중이라 생각보다 포스팅을 꾸준히 하는 게 쉽지 않은 거 같습니다. 그래도 아는 선에서 최대한 좋은 정보로 포스팅해보겠습니다! 이번 포스팅에서는 저번 포스팅에서 다루지 못했던 함수에 대해서 마저 다루도록 하겠습니다. 1. LTRIM, RTRIM SELECT LTRIM(' SG-MOOMINS') AS LTRIM ,RTRIM('SG-MOOMIN ') AS RTRIM FROM DUAL; - LTRIM은 문자열 왼쪽에 공백, RTRIM은 문자열 오른쪽에 공백을 제거합니다. - 공백의 경우는 중간 공백은 제거되지 않는다는 점 2. TRIM SELECT TRIM(' SG - MOOMIN ') AS 'TRIM' ,TRIM(LEADING 'A' FROM ' A SG-MOOMIN F A') AS..

DB/SQL 2021.07.28

[세무민의 코딩일기] SQL 내장함수에 대해서 알아보자 1탄!(길이, 진법변환, 문자열 반환 등)

오늘 다뤄볼 포스팅은 SQL 내장함수에 대해서 다뤄볼 것입니다. 내장함수가 워낙 많아서 나눠서 포스팅 할 예정입니다. 1. 아스키 코드 함수[ASCII] SELECT ASCII('AB') AS 'AB' , (ASCII('A') + ASCII('B')) AS 'A + B'; 아스키 코드는 위와 같이 사용할 수 있습니다. 위의 코드를 돌리면 위의 그림과 같이 나오며 'AB'과 같이 문자열의 경우에는 아스키 코드 함수가 가장 앞에 있는 A를 변환해줍니다, 2. BIT_LENGTH, LENGTH, CHAR_LENGTH SELECT BIT_LENGTH('SG-MOOMOIN') AS '비트 길이' , CHAR_LENGTH('SG-MOOMIN') AS '문자 길이' , LENGTH('SG-MOOMIN') AS '길이..

DB/SQL 2021.07.27

[세무민의 코딩일기] DATE -> INT 변환과 쿼리에서 SET으로 날짜 변수 선언하기(형 변환)

이번 포스팅에서 다뤄볼 내용은 SET입니다. 단순히 SET만 사용할 것은 아니고 형변환도 같이 다뤄볼 계획입니다. https://sg-moomin.tistory.com/entry/%EC%84%B8%EB%AC%B4%EB%AF%BC%EC%9D%98-%EC%BD%94%EB%94%A9%EC%9D%BC%EA%B8%B0-%EC%83%88%EB%A1%9C-%EB%A7%8C%EB%93%A4-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%97%90-%EA%B8%B0%EC%A1%B4-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%98-%EA%B0%92%EC%9D%84-insert-%ED%95%98%EB%8A%94-Tip [세무민의 코딩일기] 새로 만들 테이블에 기존 테이블의 값을 insert 하는 ..

DB/SQL 2021.07.26

[세무민의 코딩일기] 새로 만들 테이블에 기존 테이블의 값을 insert 하는 Tip

이번 포스팅에서는 auto_increment와 insert에 대해서 간략하게 다뤄볼 계획입니다. 사실 auto_increment라는건 대부분 알 것입니다. 테이블을 생성 시 정수 primary key값을 가지는 컬럼에 되어있는 경우가 많기 때문이죠 auto_increment란 자동으로 1씩 증가하는 값을 입력해줍니다. 그렇지만 auto_increment를 자유롭게 변경할 수 있는데 아래의 코드와 같이하면 됩니다. # 테스트 테이블 생성 CREATE TABLE TEMP1( KEYNUMBERING INT AUTO_INCREMENT PRIMARY KEY, NUMBER1 INT, NUMBER2 INT, VARCHARS VARCHAR(30) ); # auto_increment값을 2로 변경 SET @@auto_i..

DB/SQL 2021.07.25

[세무민의 코딩일기] 쉬우면서 어려운 집계함수에 대해서 알아보자!

최근에 재택근무를 하다보니 시간이 많은건 아니지만 통근시간을 아껴서 이렇게 포스팅을 할 수 있다는 것에 감사할 뿐이다. 오늘 포스팅 할 내용은 집계함수입니다. 집계함수에 종류를 간략하게 표로 나열해보겠습니다. 함수 명 설명 MIN() / MAX() 최소/최대값을 구할 때 사용한다. SUM() 총합을 구할 때 사용한다. AVG() 평균값을 구할 때 사용한다. COUNT() 행의 개수를 구할 때 사용한다. STDDEV() 표준편차를 구할 때 사용한다. VAR_SAMP() 분산을 구할 수 있다. 여기서 STDEV와 VAR_SAMP를 제외하고는 다들 많이 익숙한 함수입니다. 그렇다면 예시를 통해서 한번 보도록 하겠습니다. # 임시 테이블 생성 CREATE TABLE TEMP1( NUMBER1 INT, NUMBE..

DB/SQL 2021.07.22

세무민의 코딩일기 : CodeTable 혹은 ZTable에 대해서 알아봅시다.

대학 시절 팀 프로젝트를 진행하면 항상 테이블 관리가 안되는게 단점이였습니다. 이럴때마다 어떻게 하면 테이블 관리를 잘할 수 있을 지 고민도 하던 시절이 그립지만 직장을 다니면서 느낀건 CodeTable 혹은 ZTable의 중요성을 알 수 있었습니다. CodeTable & Ztable? 처음 들어보셨을 수 있습니다. 둘다 같은 의미로 사용되는데 즉 테이블을 관리하는 하나의 테이블입니다. 쉽게 말하면 "백과사전" 테이블에 대한 정보들을 정리하여 하나의 테이블에 모아놓는 것을 말합니다. 해당 테이블에 속하는 컬럼으로는 "테이블 명, 테이블 코드 명, 코멘트, 업데이트 날짜 등" 다양한 컬럼들을 가지고 있습니다. 그렇다면 왜 사용할 지 간략한 예시를 통해서 보도록 하죠 제가 예전에 했던 ERD 다이어그램입니다..

DB/SQL 2021.07.21

세무민의 코딩일기 : DB 공부할 때 팁! [Group By와 Order By만 잘해도 절반은 먹고 간다. ]

인턴을 하면서 느낀점은 프로그램의 성능 최적화는 DB에서 Select 하는 과정을 어떻게 하는지가 중요한거 같다. 일반적으로 Service에서 값을 원하는 형태로 변형하여 넘겨도 되지만 쿼리로 제작할 수 있다면 제일 베스트이다. 여기서 가장 중요한건 서브쿼리, 내장함수도 중요하지만 기본적인 Group by와 Order By의 중요성이다. 우선 이론적인 학습을 해보자. 1. GROUP BY 그룹이라는 말 처럼 AVG, SUM과 같이 전체 값을 연산했을 때 주로 사용되는데 일반적으로 여러개의 행을 이용하여 통계적인 값을 추출할 수 있다. 2. ORDER BY ORDER BY는 조회하려는 데이터를 정렬로 자주 사용되곤 한다. 일반적으로 쿼리를 제작하다보면 Group by 형식 오류를 자주 접하는 사람들이 있다..

DB/SQL 2021.05.07

세무민의 코딩일기 : DB 함수 공부하기

DB에서 쿼리를 많이 작성해 본 경험이 없었다. 그렇지만 회사에서 인턴을 하면서 엄청 느끼고 있는게 쿼리를 잘 만드는 것이 데이터의 속도를 빠르게 해줄 수 있다. 내가 속한 부서가 대체적으로 운영 및 유지보수다보니 새로운 신기술은 배우기 어렵지만 DB 쿼리에 대해서 엄청 많이 볼 수 있어서 나름 배울점도 많고 부족한 점도 많다는 걸 느낀다. 최근에 업무 중에 함수를 제작하고 다양한 쿼리들을 만들면서 집에서 공부 해야겠다는 마음은 먹었으나.... 실상 회사 끝나고 집에 오면 아무것도 하기 싫어져서.... 그냥 조금씩 틈틈히 해볼 생각이다. 오늘은 기본적인 함수를 제작했다. 기존에 만들었던 테이블을 기반으로 만들었는데 항공 테이블을 가지고 진행할 예정이다. 항공 테이블은 항공사이름, 나라, 사이트, 전화번호..

DB/SQL 2021.04.18

Oracle DB로 달력 만들기!

오늘 과장님께서 주신 과제가 있어서 과제를 푸는데 과제 내용은 쿼리로 달력을 만드는것! 그래서 내가 구현한 방법은 총 3가지였다! #1 Case 문을 이용하는 방법! select min(case when WEEKDAY = 1 then DDAY end) AS 일, min(case when WEEKDAY = 2 then DDAY end) AS 월, min(case when WEEKDAY = 3 then DDAY end) AS 화, min(case when WEEKDAY = 4 then DDAY end) AS 수, min(case when WEEKDAY = 5 then DDAY end) AS 목, min(case when WEEKDAY = 6 then DDAY end) AS 금, min(case when WE..

DB/SQL 2021.04.12