SQLD 마지막 개념 몇개

  TOP 절 SQL Server 는 TOP 절을 사용하여 결과 집합으로 출력되는 행의 수를 제한할 수 있다. TOP 절의 표현식은 다음과 같다. 

TOP (Expression) [PERCENT] [WITH TIES] 

- Expression : 반환할 행의 수를 지정하는 숫자이다. - PERCENT : 쿼리 결과 집합에서 처음 Expression%의 행만 반환됨을 나타낸다. - WITH TIES : ORDER BY 절이 지정된 경우에만 사용 할 수 있으며, TOP N(PERCENT)의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정할 수 있다. 

한 건의 행만 가져오고 싶을 때는 - SELECT TOP(1) PLAYER_NAME FROM PLAYER; 처럼 사용 할 수 있다. 

두 건 이상의 N 행을 가져오고 싶을 때는 - SELECT TOP(N) PLAYER_NAME FROM PLAYER; 처 럼 출력되는 행의 개수를 지정할 수 있다. 

SQL 문장에서 ORDER BY 절이 사용되지 않으면 Oracle 의 ROWNUM 과 SQL Server 의 TOP 절 은 같은 기능을 하지만, ORDER BY 절이 같이 사용되면 기능의 차이가 발생한다. 이 부분은 1 장 8 절 ORDER BY 절에서 설명하도록 한다.   





 내장 함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행 함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(MultiRow Function)로 나눌 수 있다. 다중행 함수는 다시 집계 함수(Aggregate Function), 그룹 함 수(Group Function), 윈도우 함수(Window Function)로 나눌 수 있는




 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계 라는 중요한 특징을 가지고 있다. 


Oracle 에서는 NULL 값을 가장 큰 값으로 간주하여 오름차순으로 정렬했을 경우에는 가장 마지 막에, 내림차순으로 정렬했을 경우에는 가장 먼저 위치한다. - 반면, SQL Server 에서는 NULL 값 을 가장 작은 값으로 간주하여 오름차순으로 정렬했을 경우에는 가장 먼저, 내림차순으로 정렬했 을 경우에는 가장 마지막에 위치한다





natural join 과 inner join 은 


natural join 은 inner join 이랑 결과값은 같지만... ( 두 테이블이 똑같은 = 애들만 나온다. ) natural join 은 공통 컬럼이 존재하고, 한정자 못붙이고, 공통컬럼은 1번만 나옴.




NATURAL JOIN 에서는 모든 일치되는 칼럼들에 대해 JOIN 이 이루어지지만, FROM 절의 USING 조 건절을 이용하면 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 선택적으로 EQUI JOIN 을 할 수가 있다. 다만, 이 기능은 SQL Server 에서는 지원하지 않는다. 

natural join 은 한정자 전체 다 못붙이는데 using 으로 조인하면 using() 컬럼만 아니면 다른 컬럼에는 한정자를 붙일 수 있다. 



ON 조건절에 JOIN 조건 외에도 데이터 검색 조건을 추가할 수는 있으나, 검색 조건 목적인 경우는 WHERE 절을 사용할 것을 권고한다. (다만, 아우터 조인에서 조인의 대상을 제한하기 위한 목적으 로 사용되는 추가 조건의 경우는 ON 절에 표기되어야 한다.) 


 FULL OUTER JOIN 

조인 수행시 좌측, 우측 테이블의 모든 데이터를 읽어 JOIN 하여 결과를 생성한다. 즉, TABLE A 와 B 가 있을 때(TABLE 'A', 'B' 모두 기준이 됨), RIGHT OUTER JOIN 과 LEFT OUTER JOIN 의 결과 를 합집합으로 처리한 결과와 동일하다. 단, UNION ALL 이 아닌 UNION 기능과 같으므로 중복되 는 데이터는 삭제한다.



서브쿼리가 SQL 문에서 사용이 가능한 곳은 다음과 같다. 

- SELECT 절 - FROM 절 - WHERE 절 - HAVING 절 - ORDER BY 절 - INSERT 문의 VALUES 절 - UPDATE 문의 SET 절 


서브쿼리의 칼럼은 메인쿼리에서 사용할 수 없다고 했다.  

그러나 인라인 뷰는 동적으로 생성된 테이블이다. 인라인 뷰를 사용하는 것은 조인 방식을 사용하 는 것과 같다. 그렇기 때문에 인라인 뷰의 칼럼은 SQL 문 자유롭게 참조할 수 있다.


다. 인라인 뷰에서는 ORDER BY 절을 사용할 수 있다. 인라인 뷰에 먼저 정렬을 수행하고 정렬된 결과 중에서 일부 데이

터를 추출하는 것을 TOP-N 쿼리라고 한다. TOP-N 쿼리를 수행하기 위해서는 정렬 작업과 정렬 결과 중에서 일부 데이터만을 추출할 수 있는 방법이 필요하다. Oracle 에서는 ROWNUM 이라는 연 산자를 통해서 결과로 추출하고자 하는 데이터 건수를 제약할 수 있다. 

[

댓글