12.SQL SELETE 와 TOP , LIMIT , FETCH FIRST , ROWNUM
SQL SELECT TOP 절
반환할 레코드 수를 지정하는데 사용됩니다.
수천개의 레코드가 있는 대규모 테이블에서 유용합니다.
많은 수의 레코드를 그대로 반환하면 성능에 영향을 줄수 있습니다,
참고 : 모든 데이터베이스 시스템이 이 SELECT TOP 를 지원하는건 아닙니다.
MySQL 에서는 LIMIT 절을 이용해 제한된 수의 레코드를 선택하고
ORACLE 에서는 FETCH FIRST 와 ROW ONLY , ROWNUM 을 지원합니다.
MSSQL
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
MYSQL
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
ORACLE12
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
이전 ORACLE 구문
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
이전 ORACLE 구문 (ORDER BY 포함)
SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;
LIMIT
다음 SQL 문은 MYSQL 에 해당하는 예를 보여줍니다
SELECT * FROM Customers
LIMIT 3;
FETCH FIRST
다음 SQL 문은 ORCLE 에 대한 LIMIT 와 동일한 결과를 보여줍니다.
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
SQL TOP PERCENT 예
다음 SQL 문은 "Customers" 테이블(SQL Server , MS Access 의 경우) 에서 총 결과 중 처음 50%를 선택합니다.
SELECT TOP 50 PERCENT * FROM Customers;
다음 SQL 문은 ORLCLE 에서 TOP PERCENT 와 동일한 결과를 보여줍니다.
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
-WHERE 절 추가
다음 SQL 문은 국가가 "Germany"인 "Customers" 테이블에서 처음 세개의 레코드를 선택합니다. ( SQL Server , MS Access 의 경우 )
SELECT TOP 3 * FROM Customers
WHERE Country = 'Germany';
다음 SQL 문은 MYSQL 에 해당하는 예를 보여줍니다.
SELECT * FROM Customers
WHERE Country = 'Germany'
LIMIT 3;
다음 SQL 문은 ORACLE 에 대한 동등한 예를 보여줍니다.
SELECT * FROM Customers
WHERE Country = 'Germany'
FETCH FIRST 3 ROWS ONLY;
-ORDER BY 키워드 추가
결과를 정렬하고 싶을때 키워드를 추가하고 , 정렬된 결과의 처음 3개 레코드를 반환합니다.
SQL Server , MS Access 의 경우
결과를 CustomerName 을 기준으로 사전순의 역순으로 정렬하고 처음3개의 레코드를 반환합니다.
TOP 과 ORDER BY 를 사용합니다.
SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;
다음 SQL 문은 MYSQL 에 해당하는 예를 보여줍니다.
ORDER BY 와 LIMIT 를 사용합니다.
SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;
다음SQL문은 ORACLE에 대한 동등한 예를 보여줍니다.
ORDER BY 와 FETCH FIRST 를 사용합니다.
SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY
'SQL > SQL Tutorial' 카테고리의 다른 글
14.SQL MIN() , MAX() (0) | 2024.06.25 |
---|---|
13.SQL Aggregate Functions (집계함수) (0) | 2024.06.25 |
11.SQL DELETE (0) | 2024.06.24 |
10.SQL UPDATE (0) | 2024.06.24 |
9.SQL NULL 값 (0) | 2024.06.24 |