。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

분류 전체보기 393

[SQL] SELECT 쿼리 실행 순서 처리 과정

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY FROM 전체 테이블 결과 WHERE 조건에 맞는 결과만 갖도록 간추림 GROUP BY 선택한 컬럼으로 GROUPING 작업 HAVING WHERE과 기능은 동일하지만 GROUP BY 뒤에 오며 GROUP BY로 그룹화된 새로운 테이블에 조건 지정가능. => 전체 테이블 자체에서 쿼리를 수행하고 싶다면 where를, 전체 테이블을 그룹화 한뒤, 그 해당 그룹에서 어떠한 조건을 걸어 가져오고 싶다면 having을 사용한다. SELECT 어떤 열을 출력할지 선택 ORDER BY 행의 순서 정렬

업무 2024.01.22

[MyBatis] 설정파일

MyBatis 데이터 CRUD를 보다 편하게 하기 위해 xml로 구조화하여 Mapper 설정파일을 통해 JDBC를 구현한 영속성 프레임 워크 mybatis-config.xml mybatis에서 사용될 DB를 연동하기 위한 설정값들과 mapper.xml을 등록하기 위한 xml typeAliases: 매칭할 mapper의 sql태그의 parameter Type 별칭 설정 environments: DB 연결 설정 mappers: mapper.xml파일 연결 mybatis-mapper.xml mybatis에서 사용될 SQL구문을 담고 있는 xml XML 과 DTD 선언 mapper 태그의 namespace 속성 설정 (Mapper 인터페이스이름과 동일하게 설정) sql문을 담은 태그 설정 id 속성 parame..

업무 2024.01.22

[ORACLE 함수] EXISTS & IN

EXISTS() SELECT * FROM EXAMPLE E1 WHERE EXISTS (SELECT * FROM EXAMPLE2 E2 WHERE E1.NAME=E2.NAME); 논리연산자 중의 하나로 후행 조건절로 서브 쿼리 형태만 올 수 있음 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴 NULL에 대해 TRUE 리턴 처리순서: 메인쿼리 => 서브쿼리 서브쿼리의 결과가 존재하는지 여부만을 확인 IN() SELECT * FROM EXAMPLE E1 WHERE E1.NAME IN (SELECT * FROM EXAMPLE2 E2 WHERE E1.NAME=E2.NAME); ()안에 특정 값이나 서브쿼리가 올 수 있음 처리순서: 서브쿼리 => 메인쿼리 NULL에 대해 FALSE 리..

업무 2024.01.19

[ORACLE 함수] SYSDATE

오늘 날짜 구하기 SELECT SYSDATE FORM DAUL; 원하는 포맷으로 데이터 가져오기 / TO_CHAR 사용 SELECT TO_CHAR(SYSDATE, 'YYYY') AS 연도 FROM DUAL; SELECT TO_CHAR(SYSDATE, 'MM') AS 월 FROM DUAL; SELECT TO_CHAR(SYSDATE, 'DD') AS 일 FROM DUAL; SELECT TO_CHAR(SYSDATE, 'HH24') AS 시간 FROM DUAL; SELECT TO_CHAR(SYSDATE, 'MI') AS 분 FROM DUAL; SELECT TO_CHAR(SYSDATE, 'SS') AS 초 FROM DUAL; SELECT TO_CHAR(SYSDAE, 'YYYYMMDDHH24MISS') AS 전체날..

업무 2024.01.18

[ORACLE 함수] DECODE / CASE

if else와 비슷한 기능 수행 DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3,default) => ELSE 부분 생략 가능; 해당 조건이 없으면 NULL SELECT GENDER ,DECODE(GENDER, 'M', '남자', 'F', '여자') GENDER2 FORM TEMP => NULL 값 체크 가능 SELECT ENAME , COMM , DECODE(COMM, NULL, 'N', 'Y') COMM_UN FORM SCHOOL => DECODE 내부에 또 다른 DECODE 함수 사용 가능 => 조건이 많은 경우 줄바꿈을 하여 쿼리 작성 권장 [CASE] 1. If 문 방식 CASE WHEN city='seoul' THEN 'KOREA' WHEN city='tokyo' TH..

업무 2024.01.18

[ORACLE 함수] MERGE INTO

테이블에 데이터가 이미 있으면 업데이트를 실행하고, 없을 경우 값을 넣어줘야 하는 경우 MERGE INTO 테이블명 별칭 USING 대상테이블 별칭 ON JOIN할조건 WHEN MATCHED THEN UPDATE/DELETE SET ....WHEN WHEN NOT MATCHED THEN INSERT ...... 예제1 서로 다른 테이블 비교 후 MERGE INTO -1 MERGE INTO SUPER_SCORE S USING TOY_SCORE T ON (S.COURSE_ID = T.COURSE_ID AND S.STUDENT_ID = T.STUDENT_ID) WHEN MATCHED THEN UPDATE SET S.SCORE = T.SCORE WHEN NOT MATCHED THEN INSERT (S.COURS..

업무 2024.01.18

JRE, JDK 차이

JRE(Java Runtime Environment) 자바 실행 환경(Java Runtime Environment): 자바로 만들어진 프로그램을 실행시키는데 필요한 라이브러리들과 각종 API, 그리고 자바 가상 머신 (JVM)이 포함. 자바로 개발은 안되고 실행만 된다. JRE는 컴파일러나 디버거 등의 도구는 포함하지 않는다 JDK(Java Development Kit) 자바 개발키트(Java Development Kit): 이름 그대로 개발자들이 자바로 개발하는 데 사용. JDK안에는 개발 시 필요한 라이브러리들과 javac, javadoc 등의 개발 도구들을 포함되어 있고 실행도 시켜줘야 하기 때문에 JRE도 함께 포함되어 있다. => Java로 프로그램을 직접 개발하려면 JDK가 필요하고 Java로..

CS 2024.01.17

[ORACLE] ORACLE 데이터 타입

문자열 (Byte) CHAR 이미 크기가 정해지기 때문에 만약 더 적은 문자열을 입력하면 공백으로 채워지게 된다. 최대 길이는 2000Byte, 기본 값 1Byte VARCHAR 크기가 유동적으로 변할 수 있는 문자열을 사용할 때 쓰는 형식 최대길이 4000Byte, 기본 값: 1Byte LONG 크기가 유동적으로 변하는 문자형, 최대 길이 2GB RAW 상대적으로 적은 양의 이진 데이터 저장, 최대 길이 2000Byte 숫자형 NUMBER[P.S] 크기가 유동적으로 변하는 숫자를 입력할 때 사용하는 형식 P는 정밀도를 의미하며 소수점을 포함한 자릿수 S는 배율을 의미하며 소수점이 몇자리인지 아무것도 입력하지 않았을 때 기본값: [38.0] FLOAT NUMBER의 하위 타입으로 P의 범위가 1~12라는..

업무 2024.01.15