Tiny Star

📊DataBase 21

[SQL] =: 가 뭐길래! 이건 대체 무슨표시야?

운영 중인 페이지 전면 개편을 하며,,, 기존 운영 페이지를 지탱하고 있는 PHP, ORACLE 그리고 그 안의 패키지와 프로시저들. 기능 구현을 최대한 똑같이 하면서 편리성은 업그레이드를 해야하기 때문에 쿼리를 바락바락 뜯어보던 중 발견한WHERE 절의 =: 표시! 구글에서도 안알려주더란다.왠지 팀장님께 여쭤보면 융단폭격이 약간 예상되기 때문에 약간 우회를해서 쿼리에 온 몸이 갈려나간 감자동기에게 질문을 던졌다. " WHERE절이 이렇게 저렇게 있는데 여기서 =: 이게 대체 뭔표시야?""아 그거 변수" ... 변수... 변수...  := 이 표시는 쿼리문에서 변수를 받을 때 쓰는 표시였다.ORACLE SQL DEVELOPER에서 CTRL+ENTER를 눌러보면 바인드를 입력하라는 창이 나온다.  :) 오..

[🪪SQLD] 2과목 - 관리구문 : DML/TCL/DDL/DCL(24년 개정 요약)

[DML] 1) INSERT문 : 테이블에 데이터를 입력하는 DML [INSER문의 구조] INSERT INTO 테이블명 (칼럼명, 칼럼명) VALUES (테이블에 입력될 데이터, ‘문자열 사용 시’) - SELECT문으로 입력 : 데이터 조회 후 해당 테이블에 바로 삽입가능 단, 입력되는 테이블은 사전에 생성이 되어 있어야 함 - Nologging : 데이터를 입력하면 로그파일에 정보를 기록하는데 Check Point 라는 이벤트가 발생하면 로그파일의 데이터를 데이터 파일에 저장함 -> 이 옵션은 로그파일의 기록을 최소화시켜 입력 시 성능을 향상시키는 방법으로 Buffer Cache라는 메모리 영역을 생략하고 기록 2) UPDATE문 : 원하는 조건으로 데이터를 검색하여 데이터 값을 수정 [UPDATE..

[🪪SQLD] 2과목 - SQL 활용 : 정규표현식 (24년 개정 요약)

· 정규표현식 -> 특정한 규칙을 가지고 있는 문자열 집합을 표현하기 위한 형식언어 · Oracle 정규 표현식 1) REGEXP_LIKE : LIKE문과 유사하고 정규표현식 검색 2) REGEXP_REPLACE : 정규표현식 검색 후 문자열 변경 3) REGEXP_INSTR : 정규표현식 검색 후 위치 반환 4) REGEXP_SUBSTR : 정규표현식 검색 후 문자열 추출 5) REGEXP_COUNT : 정규표현식 검색 후 발견된 횟수 반환 · 정규표현식 사용을 위한 메타문자 1) . : 임의의 한문자 2) ? : 앞 문자가 없거나 하나 있음을 의미 (0또는1번발생) 3) + : 앞 문자가 하나 이상 있음을 의미 4) * : 앞 문자가 0개 이상 있음을 의미 5) {m} : 선행 표현식이 정확히 m번 ..

[🪪SQLD] 2과목 - SQL 활용 : PIVOT 절과 UNPIVOT 절 (24년 개정 요약)

· PIVOT : 데이터를 행 기반에서 열 기반으로 바꾸는 것 · UNPIVOT : 데이터를 열 기반에서 행 기반으로 바꾸는 것 [테이블 파티션 Table Partition] · 파티션 기능 -> 대용량의 테이블을 여러 개의 데이터 파일에 분리하여 저장 1) 테이블의 데이터가 물리적으로 분리된 데이터 파일에 저장되면 입력, 수정, 삭제, 조회 성능이 향상 (조회 시 데이터 범위 축소로 성능향상) 2) 파티션 별로 독립적으로 관리가 가능(백업 복구 및 전용 인덱스 생성) 3) Oracle DB의 논리적 관리 단위인 테이블 스페이스 간 이동이 가능 · 파티션 분할 방법 1) Range Partition - 테이블의 칼럼 중에서 값의 범위를 기준으로 여러 개의 파티션으로 데이터를 나누어 저장하는 것 2) Li..

[🪪SQLD] 2과목 - SQL 활용 : Top N 쿼리(24년 개정 요약)

· ROWNUM - Oracle DB의 SELECT문 결과에 대해 논리적인 일련번호를 부여 - 조회되는 행 수를 제한할 때 많이 사용 (페이지 단위 출력은 인라인 뷰) * 인라인 뷰 (Inline View) - 인라인 뷰는 SELECT문에서 FROM절에 사용되는 서브쿼리를 의미 SELECT * FROM // MAIN QUERY (SELECT * FROM EMP) a; // SUBQUERY (INLINE VIEW) * SQL Server의 TOP구문과 MySQL의 limit 구문 ex) 10명만 인출(Fetch) 하는 예제 [SQL Server] : SELECT TOP(10) FROM EMP; [MySQL] : SELECT * FROM EMP LIMIT 10; · ROWID - Oracle DB 내에서 데..

[🪪SQLD] 2과목 - SQL 활용 : 집합연산자/그룹함수/윈도우함 (24년 개정 요약)

[집합연산자] · 집합연산자 -> 조인을 사용하지 않고 연관 데이터를 조회하는 방법 중 하나로 2개 이상의 질의 결과를 하나로 만들어 줌 · 집합연산자의 종류 1) UNION (합집합) : 두 개의 테이블을 하나로 만드는 연산 - 두 개의 테이블의 칼럼 수/데이터형식 모두 일치해야 함 - 중복된 데이터는 1개로 처리하기 때문에 정렬 과정을 발생시킴 2) UNION ALL(합집합) - UNION과 같지만 중복제거를 하지 않아 정렬을 유발하지 않음 3) MINUS (차집합) : 두 개의 테이블에서 차집합을 조회 - SELECT문에는 있고 뒤에 쓰는 SELECT문에는 없는 집합을 조회 [그룹 함수] · 그룹함수 (Group Function) -> 특정 그룹에 대해 작업을 수행하고 결과를 반환하는 함수로 관계형..

[🪪SQLD] 2과목 - SQL 기본 : 조인 / 표준조인 (24년 개정 요약)

[조인] · 조인 : 여러 개의 릴레이션을 사용하여 새로운 릴레이션을 만드는 과정 · 조인의 종류 1) EQUI JOIN (등가) - 조인의 가장 기본으로 두 개의 테이블 간에 일치하는 것을 조인 - “=”을 사용하여 두 개의 테이블을 연결 2) NON EQUI JOIN (비등가) - 정확하게 일치하지 않는 것을 조인하는 것 - “>”, “=”, “ 먼저 선행 테이블을 결정하고 주어진 조건 (WHEN)에 해당하는 행을 선택한 후 조인 키를 기준으로 해시 함수를 사용하여 해시 테이블을 메인 메모리에 생성하고 후행 테이블에서 주어진 조건에 만족하는 행을 찾음 · CROSS JOIN -> 조인 조건구 없이 두 개의 테이블을 하나로 조인 (카테시안 곱 발생)

[🪪SQLD] 2과목 - SQL 기본 : 함수 (24년 개정 요약)

· 내장형 함수 -> 모든 데이터베이스는 SQL에서 사용할 수 있는 내장형 함수를 보유함 -> DBMS 벤더별로 약간의 차이가 있지만 거의 비슷한 방법으로 사용 · DUAL 테이블 -> Oracle 데이터 베이스에 의해서 자동으로 생성되는 테이블로 사용자가 임시로 사용할 수 있는 테이블이며 내장형 함수 실행 시에도 사용이 가능 · WITH -> 서브 쿼리를 사용해서 임시 테이블 또는 뷰처럼 사용할 수 있는 구문으로 블록에 별칭을 지정할 수 있음 -> 옵티마이저는 SQL을 인라인 뷰나 임시테이블로 판단 · 내장형 함수의 종류 [문자열 함수] 1) ASCII (문자) : 문자/숫자를 ASCII 코드 값으로 변환 2) CHR / CHAR (ASCII 코드 값) : ASCII코드 값을 문자로 변환 - Oracl..

[🪪SQLD] 2과목 - SQL 기본 : GROUP BY, HAVING 절 (24년 개정 요약)

· GROUP BY -> 테이블에서 소규모 행을 그룹화하여 합계/평균/최댓값/최솟값을 계산 · GROUP BY의 특징 1) HAVING구에 조건문을 사용 2) 그룹화된 결과에 조건문을 사용 3) ORDER BY를 사용하여 정렬이 가능 · HAVING -> GROUP BY에 조건절을 사용하기 위한 조건문 * WHERE 절에 조건문을 사용하게 된다면 조건 충족을 하지 못하는 데이터들은 GROUP BY대상에서 제외됨 · 집계함수 종류 1) COUNT () : 행 수를 조회 2) SUM () : 합계를 계산 3) AVG () : 평균을 계산 4) MAX () / MIN () : 최댓값과 최솟값을 계산 5) STDDEV () : 표준편차 계산 6) VARIANCE () : 분산을 계산 · SELECT문 실행 순서..