일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python 라이브러리
- 파이썬 알고리즘
- VirtualBox
- C#
- 파이썬 데이터프레임
- RFP
- Oracle VM VirtualBox
- dbeaver
- python algorithm
- 오라클
- Algorithm
- it 용어
- PYTHON
- 파이썬 전처리
- putty
- 파이썬
- sql
- HTML
- Python DataFrame
- csharp
- 코딩테스트
- tibero
- MariaDB
- linux
- 리눅스
- 데이터베이스
- Oracle
- 알고리즘
- 리눅스 명령어
- it용어
- Today
- Total
목록Oracle (16)
오경석의 개발노트

IN : 몇백 ~ 몇천건 조회, 쉽고 직관적, 모든 컬럼 값을 직접 비교, NULL인식 불가해서 NVL 사용 EXISTS : 몇만 이상, TRUE / FALSE만을 비교, IN 보다 성능 우위 INNER JOIN : IN, EXISTS보다 더 빠르다. 다양한 용도로 사용하기 때문에 직관성과 가독성이 떨어짐. JOIN 조건을 동일한 값이 존재하는 테이블로 설정했을 경우 나오면 안될 여러 행들이 출력 -- IN(값 직접 비교, 직관적, 테이블에 ROW가 늘어날수록 느림, 1만건 이하 ROW에 유리) SELECT * FROM PLAYER WHERE TEAM_ID IN(SELECT TEAM_ID FROM PLAYER); -- EXISTS(TRUE / FALSE로 값 비교, 직관적, IN보다 빠름) SELECT ..

서브 쿼리(Subquery) : 하나의 SQL 문 안에 포함돼 있는 또 다른 SQL 문. 메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계. 서브 쿼리 사용 위치 설명 스칼라 서브 쿼리 SELECT 절 단일 칼럼, 단일 행 반환(1개의 값) 인라인 뷰 FROM 절 View와 사용적인 측면에서 동일(임시 뷰, 임시 테이블) 중첩 서브 쿼리 WHERE 절, HAVING 절 다중 칼럼 또는 다중 행 반환 서브쿼리 종류 설명 Un_correlated(비연관) 서브쿼리 서브쿼리가 메인쿼리 칼럼을 가지고 있지 않는 형태의 서브쿼리이다. 메인쿼리에 값(서브쿼리가 실행된 결과)을 제공하기 위한 목적으로 주로 사용 Correlated(연관) 서브쿼리 서브쿼리가 메인쿼리 칼럼을 가지고 있는 형태의 서브쿼리이다. 일반적으로 ..

두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것을 JOIN이라고 하며, 일반적으로 사용되는 SQL 문장의 상당수가 JOIN이다. JOIN은 관계형 데이터베이스의 가장 큰 장점이면서 대표적인 핵심 기능이라고 할 수 있다. 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립된다. 하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립 가능하다. □ INNER JOIN INNER JOIN은 OUTER(외부) JOIN과 대비하여 내부 JOIN이라고 하며 JOIN 조건에서 동일한 값이 있는 행만 반환한다. INNER JOIN 표시는 그 동안 WHERE 절에서 사용하던 JOIN 조건을 FR..

각 쿼리는 데이터베이스에서 필요한 데이터를 찾은 다음 해당 데이터를 최대한 빨리 처리하고 이해할 수 있는 데이터로 필터링하는 것으로 시작된다. 쿼리의 각 부분은 순차적으로 실행되므로, 어떤 결과에 어디서 액세스할 수 있는지 알 수 있도록 실행 순서를 이해하는 것이 중요하다. -- SELECT QUERY SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_table ON mytable.column = another_table.column WHERE constraint_expression GROUP BY column HAVING constraint_expression ORDER BY column ASC/DESC..

여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중행 함수 중 집계 함수(Aggregate Function)의 특성은 다음과 같다. - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수 - GROUP BY 절은 행들을 소그룹화 - SELECT 절, HAVING 절, ORDER BY 절에 사용 집계 함수명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) - ALL : Default 옵션이므로 생략 가능 - DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션 -- 예제 SELECT COUNT(*) AS 전체행수, COUNT(HEIGHT) AS 키건수, MAX(HEIGHT) AS 최대키, MIN(HEIGHT) AS 최소키, ROUND(AVG(HEIGHT)..

■ NULL 관련 함수 - NULL 값은 아직 정의되지 않은 값으로 0 또는 공백과 다르다. 0은 숫자이고, 공백은 하나의 문자이다. - 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 NULL 값을 포함할 수 있다. - NULL 값을 포함하는 연산의 경우 결과 값도 NULL 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다. - 결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL 함수를 사용한다. NULL 값의 대상이 숫자 유형 데이터인 경우는 주로 0(Zero)으로, 문자 유형 데이터인 경우는 블랭크보다는 ‘x’ 같이 해당 시스템에서 의미 없는 문자로 바꾸는 경우가 많다. NVL/ISNULL ..

■ CASE 표현 - CASE 표현은 IF-THEN-ELSE 논리와 유사한 방식으로 표현식을 작성해서 SQL의 비교 연산 기능을 보완하는 역할을 한다. ANSI/ISO SQL 표준에는 CASE Expression이라고 표시되어 있는데, 함수와 같은 성격을 가지고 있으며 Oracle의 Decode 함수와 같은 기능을 한다. CASE 표현은 함수의 성질을 갖고 있으므로 다른 함수처럼 중첩해 사용할 수 있다. [예제] 일반 프로그램의 IF-THEN-ELSE-END 로직과 같다. IF SAL > 2000 THEN REVISED_SALARY = SAL ELSE REVISED_SALARY = 2000 END IF [예제] 같은 기능을 하는 CASE 표현이다. SELECT ENAME, CASE WHEN SAL > 2..

■ 변환형 함수 - 변환형 함수는 특정 데이터 타입을 다양한 형식으로 출력하고 싶을 경우에 사용되는 함수이다. 변환형 함수는 크게 두 가지 방식이 있다. 암시적 데이터 유형 변환의 경우 성능 저하가 발생할 수 있으며, 자동적으로 데이터베이스가 알아서 계산하지 않는 경우가 있어 에러를 발생할 수 있으므로 명시적인 데이터 유형 변환 방법을 사용하는 것이 바람직하다. 명시적 데이터 유형 변환에 사용되는 대표적인 변환형 함수는 다음과 같다. 변환형 함수를 사용하여 출력 형식을 지정할 때, 숫자형과 날짜형의 경우 상당히 많은 포맷이 벤더별로 제공된다. 벤더별 데이터 유형과 함께 데이터 출력의 포맷 부분은 벤더의 고유 항목이 많으므로 매뉴얼을 참고하기 바라며, 아래는 대표적인 사례 몇 가지만 소개한다. [예제] 날..