일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LeetCode SQL
- 스프링부트
- python
- oauth2
- 스프링
- MSA
- mysql
- 구글로그인
- 코틀린 클래스
- 스프링부트 채팅서버
- SQL 문제풀이
- 프로그래머스
- js
- java8
- SQL프로그래머스
- SQL
- 자바 스트림
- Spring
- 파이게임
- 자바스크립트
- javascript
- 자바8
- spring boot
- 스프링시큐리티
- 오라클
- pygame
- kotlin 클래스
- Leetcode
- oracle
- springboot
- Today
- Total
목록SQL/SQL공부 (11)
웅겹살의 프로그래밍 삼매경
저장 프로시저 (Stored Procedure) 프로시저는 SQL Server에서 제공되는 프로그래밍 기능이며, 쿼리 문의 집합체라고 볼 수 있다. 간단하게로는 SELECT, INSERT, UPDATE, DELETE 등의 DQL, DML을 사용할 수 있으며, 조금 더 나아가서 IF 문이나 DECLARE, SET 등의 프로그래밍 문법을 사용할 수도 있다. ⚡ 장점 보안성 향상 프로시저 단위로 실행 권한을 부여할 수 있기 때문에, 기본적인 보안 사고에 대처가 유연한 편이다. 네트워크 소요 시간 절감 쿼리를 다중으로 실행하는 경우, 한번의 호출을 통해 다중의 쿼리가 실행되기 때문에 네트워크에 대한 부담과 소요 시간을 줄일 수 있다. 운영 배포 용이성 별도의 WAS 서버 재기동 없이 SP 수정으로 조회, 수정,..
⚡ 힌트의 쓰임과 사용방법 힌트를 사용하여 아래와 같은 것들을 할 수 있다 액세스 경로, 조인 순서, 병렬 및 직렬 처리, Optimizer의 목표(Goal)를 변경 가능 데이터 값을 정렬해야 하는 경우, 힌트의 사용이 필요 또한, 드라이빙 테이블을 원하는 대로 선정하고자 할 때도 사용 -- 모든 힌트의 기본 사용법은 쿼리 서두에 힌트를 명시하는 것이다. 예를 들어 아래와 같다. -- index_asc, index 힌트 : 인덱스 영역에서 순방향으로 스캔 하라는 뜻 SELECT /*+ index_asc(e idx_myemp1_ename) */ EMPNO, ENAME, SAL FROM MYEMP1 e WHERE ENAME >= '가' -- (앞부분에 +기호가 붙는다는 점에서 주석과의 차이 유의) 🔥 OPT..
postgreSQL DB | 데이터베이스 확인 select * from pg_catalog.pg_namespace; postgreSQL schema | 스키마 확인 select * from pg_catalog.pg_tables; postgreSQL DB, schema | 특정 스키마, 데이터베이스 조회 SELECT * FROM pg_catalog.pg_tables WHERE schemaname = 'public' AND tablename LIKE 'Weath%'; postgreSQL diagram Visualization | 우클릭으로 Diagram Visualization 확인 (DATAGRIP) postgreSQL table | 테이블명 변경 alter table "1.book2" rename ..
row 를 array 또는 string으로 변환하기 1. unnest() 는 array 데이터를 row로 변환 unnest 결과는 하단의 내용과 같다 2. array_agg, array_agg_string 적용 결과는 하단의 내용과 같다 array_agg 는 group by와 함께 사용하는 함수이다. group by 된 값들을 array로 반환. distinct 와 order by 를 함께 이용하면 중복제거된 값을 구하거나, 원하는 순서로 정렬하여 array를 만들 수 있다. ex : array_agg(distinct col2 order by col2) -- 임시테이블 생성하여 테스트진행 with make_array as ( select unnest(array['고기', '고기', '고기', '채소', ..
Oracle CONCAT, || (문자열 합치기) 문자열을 합쳐야 하는 경우 ||나 CONCAT을 사용하자 WITH DINNER_MENU AS ( SELECT '삼겹살' AS 삼겹살 , '항정살' AS 항정살 FROM dual ) SELECT 삼겹살, 항정살, 삼겹살 || 항정살 AS 합치기, CONCAT(삼겹살, 항정살) AS CONCAT합치기 FROM DINNER_MENU 만약 3개 이상의 문자열을 합칠 경우 ||가 더 편하다 WITH DINNER_MENU AS ( SELECT '삼겹살' AS 삼겹살 , '항정살' AS 항정살, '가브리살' AS 가브리살 FROM dual ) SELECT 삼겹살, 항정살, 가브리살, 삼겹살 || ' ' || 항정살 || ' ' || 가브리살 AS 합치기, CONCAT..
TO_CHAR 기록해두자 SELECT --날짜 포맷 TO_CHAR(SYSDATE,'YYYYMMDD'),-- 오늘날짜 반환 20210606 TO_CHAR(SYSDATE,'YYYY-MM-DD'),-- 2021-06-06 TO_CHAR(SYSDATE,'YYYY/MM/DD'),-- 2021/06/06 TO_CHAR(SYSDATE,'YYYY'),-- 2021 TO_CHAR(SYSDATE,'YY'),-- 21 TO_CHAR(SYSDATE,'MM'),-- 06 TO_CHAR(SYSDATE,'MON'),-- JUN TO_CHAR(SYSDATE,'D'),-- 1 (주중의 일을 1~7로 표시(일요일 = 1) TO_CHAR(SYSDATE,'DD'),-- 06 TO_CHAR(SYSDATE,'DDD'),-- 157 (오늘이 이..
WITH는 VIEW와 매우 비슷하지만 차이점이있다. WITH는 단일사용할 쿼리내에 정의되어 있는경우, 해당 쿼리문안에서만 실행된다. VIEW는 한번 생성하면 DROP할 때까지 계속 존재한다. WITH 기본구조 WITH DINNER_MENU AS ( SELECT '삼겹살' AS 오늘저녁메뉴 FROM dual ) SELECT * FROM DINNER_MENU; 다중 WITH문 -- WITH절 안에서 다른 WITH을 참조가능 WITH DINNER_MENU AS ( SELECT '삼겹살' AS 오늘메뉴 FROM dual UNION ALL SELECT '항정살' FROM DUAL ), LUNCH_MENU AS ( SELECT '가브리살' 오늘메뉴 FROM DUAL UNION ALL SELECT 오늘메뉴 FROM ..
Drop, Truncate, Delete 차이점 알아두면 좋다 SQLD 시험에도 나오는내용 1. Drop DROP TABLE 테이블명; DDL Rollback 불가 테이블 저장공간 반납 2. Truncate TRUNCATE TABLE 테이블명; DDL Rollback 불가 테이블을 최초 초기상태로 돌린다. 인덱스 등 모든데이터 삭제 모든 데이터가 삭제되기때문에 삭제된 행 수를 반환하지않음 3. Delete DELETE FROM 테이블명 (WHERE 조건); DML 삭제될 행이 많으면 삭제할 때마다 많은 시스템자원을 소모하기때문에 속도가 느리다 Commit이전 상태라면 Rollback 가능 전체 또는 일부 삭제 가능 삭제된 행 수 반환
오라클 날짜함수는 알면 알수록 업무에 도움이 된다 계속 추가하며 정리해두자 SELECT TO_CHAR(TRUNC(SYSDATE,'mm') ,'yyyy/mm/dd'), -- 현재 월 첫날(1일) 반환 ADD_MONTHS(SYSDATE, 12), -- 현재시간 + 12개월 LAST_DAY(SYSDATE),-- 현재 월의 마지막 일자 ROUND(MONTHS_BETWEEN(SYSDATE, SYSDATE-777)),-- MONTHS_BETWEEN(DATE1, DATE2) > DATE1과 DATE2의 차이를 개월 수로 리턴. TO_CHAR(TRUNC(SYSDATE,'dd') ,'yyyy/mm/dd hh24:mi:ss'), -- 오늘 정각(자정) 날짜 TO_CHAR(TRUNC(SYSDATE,'dd') + 1,'yyy..
Oracle 정규식(Regular Expression) 을 정리해보자 실무에서도 필요한 정규식을 그루핑해서 오라클함수로 만들어 쓰면 편하다 1. REGEXP_SUBSTR REGEXP_SUBSTR( string, pattern [, start_position [, nth_appearance [, match_parameter ] ] ] ) REGEXP_SUBSTR( 해당 문자열, 정규식패턴 [, 시작위치 [, 일치횟수 [, 매칭 파라미터 ] ] ] ) EMAIL의 @ 앞의 부분만 출력하기 WITH SUBSTR_TEST AS ( SELECT '삼겹살@naver.com' AS EMAIL FROM dual UNION SELECT '상추와쌈장@yahoo.com' AS EMAIL FROM dual UNION SELE..