본문 바로가기
728x90

SQL11

[ORACLE] 오라클 regexp_replace 정규표현식 - 전화번호, Email 마스킹 예제 select REGEXP_REPLACE(REGEXP_REPLACE(tel, '(02|.{3})(.+)(.{4})', '\1-\2-\3'), '(.{3})(.*)(.{4})', '\1-****-\3') as tel1 -- 결과: 010-****-4567 ,REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(tel, '(02|.{3})(.+)(.{4})', '\1-\2-\3'), '(.{3})(.*)(.{4})', '\1-****-\3'),'-','') as tel2 -- 결과: 010****4567 from dual select REGEXP_REPLACE('test@test.co.kr' , '([[:alnum:]]+)(@[[:alnum:]]+(\.[[:alnum:]]+)+)','******.. 2023. 8. 3.
[MariaDB] JAVA /JDK 버전 별 Mariadb JDBC 드라이버 다운 - mariadb-java-client JAVA /JDK 버전 별 Mariadb JDBC 드라이버 다운 방법( mariadb-java-client) 아래 사이트에서 JAVA /JDK 버전 별 Mariadb JDBC 드라이버 버전을 확인한다. https://mariadb.com/kb/en/mariadb-connector-j-releases/ List of MariaDB Connector/J Releases A list of all Connector/J releases mariadb.com 그리고 아래 사이트에 들어가 해당 버전에 맞는 드라이버를 다운 받는다. https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client 2023. 5. 24.
[MSSQL] IF 문 사용법 MS SQL의 IF문은 오라클보다 익숙한 형태이다 IF (조건1) BEGIN 조건1이 참일경우 SQL END ELSE IF (조건2) BEGIN 조건1이 거짓이고, 조건2가 참일경우 SQL END ELSE BEGIN 조건1,2 모두 거짓일경우 SQL END 2022. 9. 7.
[MSSQL] 문자로 자릿수 채우기 - 오라클 LPAD, RPAD 오라클의 LPAD, RPAD는 특정 문자로 자릿수를 채울 수 있다 SELECT LPAD( '111', 5, 0 ) -- 00111 FROM DUAL SELECT RPAD( '111', 5, 0 ) -- 11100 FROM DUAL MSSQL로 위와 같은 기능을 구현하려면 SELECT REPLICATE( 0 , 5 -LEN('111'))+ '111' AS LPAD -- 00111 , '111' + REPLICATE( 0 , 5 -LEN('111')) AS RPAD -- 11100 위와같은 형태로 작성할 수 있다 2022. 9. 7.
[MSSQL] 가상 테이블 사용하기 - 오라클의 DUAL 오라클에서 가상 테이블을 사용할 때 DUAL을 사용한다 SELECT SYSDATE FROM DUAL MS SQL에서 가상 테이블을 이용하려면 단순히 FROM을 빼주면 된다 SELECT SYSDATE 2022. 9. 5.
[MSSQL] 오라클 yyyymmddhh24miss 날짜 포멧 변경 오라클 버전(?)으로 만든 프로젝트를 MSSQL로 변경중이다 날짜 포멧이 거의 TO_CHAR(SYSDATE, 'yyyymmddhh24miss') 인데 MS SQL 포멧에 이게 없다 CONVERT(CHAR(8), GETDATE(), 112) + REPLACE(CONVERT(CHAR(8),GETDATE(),108),':','') 혹은 FORMAT(GETDATE(), 'yyyyMMddHHmmss') 2022. 9. 2.
[Oracle] 다중 INSERT - 여러 행 한번에 넣기 Oracle - 다중 INSERT 하는 방법이다 보통 INSERT를 할 때 쓰는 쿼리문은 이런 형태이다 INSERT INTO 테이블 명 VALUES ('값1', '값2', '값3') 만약 특정 컬럼에만 INSERT를 하고싶다면 INSERT INTO 테이블 명 (컬럼1, 컬럼2, 컬럼3) VALUES ('값1', '값2', '값3') 이제 다중 테이블이나 특정 테이블에 두번 INSERT하면 INSERT ALL INTO 테이블 명 (컬럼1, 컬럼2, 컬럼3) VALUES ('값1', '값2', '값3') INTO 테이블 명 (컬럼1, 컬럼2) VALUES ('값1', '값2') SELECT * FROM DUAL 이렇게 사용하면 된다 2022. 1. 15.
[ORACLE] NULL 값 치환 NVL, NVL2 함수 - 그룹핑 예제 포함! 오라클에서 쿼리문 작성 중 SUM이나 AVG 등으로 그룹핑을 하는데, 데이터가 NULL값이면 데이터가 뽑히지 않는다! 근데 나는 0 이나 '' 라도 뽑고싶다! 그럴 때 NVL, NVL2 함수를 사용하면 된다. 사용법은 간단! NVL(컬럼, NULL일때 반환 값) 이렇게 감싸주면 된다. - 예제 - NVL(컬럼,0) -- 컬럼의 값이 NULL일경우 0으로 치환 NVL(컬럼,'') -- 컬럼의 값이 NULL일경우 ''으로 치환 NVL(컬럼,SYSDATE) --컬럼의 값이 NULL일경우 현재날짜로 치환 그리고 SUM 이나 AVG 등으로 그룹핑을 할 때는 NVL(SUM(컬럼), 0) -- SUM한 컬럼의 값이 NULL일경우 0으로 치환 NVL(SUM(컬럼), ’’) -- SUM한 컬럼의 값이 NULL일경우 ''.. 2022. 1. 9.
[SQL] SELECT문, 서로 다른 조건, 한 줄로 출력! - Key값 없이 Join 사용하기 리포트 개발 소프트웨어를 사용하던 중 데이터를 한 줄로 뽑아 넘기면 데이터를 사용하기 편한 상황이 있었다. (물론 여러 개의 쿼리문으로 뽑아 컨트롤러나 서비스단에서 VO에 담아 줄 수도 있었다.. 주절주절 TMI..) 아무튼 그때 쓴 쿼리다! 가정 1 A테이블(a1, a2, a3, a4 ~~) B테이블(b1, b2, b3, b4 ~~) * 서로 겹치는 데이터 없음 * SLELECT * FROM ( SELECT 1 AS FLAG ,A.A1 ,A.A2 ,A.A3 ,A.A4 FROM A테이블 A WHERE 조건 )AA INNER JOIN ( SELECT 1 AS FLAG ,B.B1 ,B.B2 ,B.B3 FROM B테이블 B WHERE 조건 )BB ON AA.FLAG=BB.FLAG; INNER JOIN을 FRO.. 2022. 1. 8.
[SQL] 조인 - join이란? INNER, OUTER, CROSS, SELF 조인이란? "두 테이블로부터 특정 조건을 만족하는 레코드들을 하나의 레코드로 결합하는 연산" 조인은 두개 이상의 테이블이나 데이터 베이스를 연결하여 데이터를 검색하는 방법입니다! 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용하고 테이블을 연결하려면 최소 하나의 컬럼은 서로 공유 되고 있어야 합니다. 보통 Primary Key 혹은 Foreign Key로 연결. INNER JOIN INNER JOIN은 기준 테이블과 JOIN한 테이블의 중복 값을 보여줍니다. LEFT OUTER JOIN 기준 테이블의 모든 값 + JOIN한 테이블과 중복된 값을 보여줍니다. 조건을 넣어주면 중복된 값을 제거해줄 수 있습니다. RIGHT OUTER JOIN JOIN한 테이블의 모든 값 + 기준 테이블과 JOIN한 .. 2021. 8. 31.
728x90