SELECT TOP SELECT TOP 절은 리턴될 레코드의 수를 정할 수 있다.
SELECT TOP 절은 수천 개의 레코드가있는 큰 테이블에서 유용하다. 많은 수의 레코드를 반환하면 성능에 영향을 줄 수 있다.






SELECT TOP

SELECT TOP 절은 리턴될 레코드의 수를 정할 수 있다.
SELECT TOP 절은 수천 개의 레코드가있는 큰 테이블에서 유용하다. 많은 수의 레코드를 반환하면 성능에 영향을 줄 수 있다.

모든 데이터베이스 시스템이 SELECT TOP 절을 지원하는 것은 아니다. MySQL은 LIMIT 절, Oracle 은 ROWNUM 을 사용한다.

SQL Server / MS Access 문법:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 문법:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

Oracle 문법:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Customer 테이블

selecttop

출처 - https://www.w3schools.com/sql/sql_top.asp

Customers 테이블에서 처음 세 개의 레코드를 선택하는 sql문을 작성을하면 아래와 같다.

SELECT TOP

SELECT TOP 3 * FROM Customers;

LIMIT

SELECT * FROM Customers
LIMIT 3;

ROWNUM

SELECT * FROM Customers
WHERE ROWNUM <= 3;

SELECT TOP 절은 원하는 레코드의 개수를 PERCENT 로도 리턴받을 수 있다.

SELECT TOP 50 PERCENT * FROM Customers;

WHERE 절을 추가해서 사용 할 수도 있다.

SELECT TOP

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

LIMIT

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

ROWNUM

SELECT * FROM Customers
WHERE Country='Germany' AND ROWNUM <= 3;





LIKE

LIKE 연산자는 WHERE 절에서 열의 지정된 패턴을 검색하는 데 사용된다. LIKE 연산자는 함께 사용되는 두 개의 와일드카드를 가지고 있다.

  • % : 퍼센트(%)는 0, 1 또는 복수 문자를 나타낸다.
  • _ : 언더스코어(_)는 단일 문자를 나타낸다.

퍼센트(%)와 언더스코어(_)는 같이 사용도 가능하다.

MS Access는 언더스코어(_) 대신 물음표(?)를 사용한다.

LIKE 문법:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

LIKE는 OR, AND와 같은 연산자와 같이 사용 할 수 있다.

Customer 테이블 update

출처 - https://www.w3schools.com/sql/sql_like.asp

CustomerName이 “a”로 시작하는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

CustomerName이 “a”로 끝나는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName LIKE '%a';

CustomerName 중간에 “or”가 포함되는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';

CustomerName의 두 번째 글자가 “r”인 고객들을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';

CustomerName이 “a”로 시작하고 길이가 3 자 이상인 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName LIKE 'a_%_%';

ContactName이 “a”로 시작하고 “o”로 끝나는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';

CustomerName이 “a”로 시작하지 않는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';





IN

IN 연산자를 사용하여 WHERE 절에 여러 값을 지정할 수 있다.

IN 문법:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

or

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT STATEMENT);

Customer 테이블 update

출처 - https://www.w3schools.com/sql/sql_like.asp

“Germany”, “France”및 “UK”에있는 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');

“Germany”, “France”또는 “UK”에 있지 않은 모든 고객을 선택해보자.

SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');





BETWEEN

BETWEEN 연산자는 주어진 범위 내의 값을 선택한다. 숫자, 텍스트, 날짜 일 수 있다.
BETWEEN 연산자는 시작과 끝 값이 항상 포함된다.

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Product 테이블 between

출처 - https://www.w3schools.com/sql/sql_between.asp

가격이 10과 20 사이인 모든 제품을 선택해보자.

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;

가격이 10과 20 사이가 아닌 모든 제품을 선택해보자.

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;

IN또는 ORDER BY와 같이 BETWEEN을 사용 할 수도 있다

가격이 10과 20 사이 인 모든 제품을 선택해보자. 단, CategoryID가 1,2 또는 3 인 제품을 표시하지 않는다.

SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);

ProductName BashWeEN ‘Carnarvon Tigers’및 ‘Mozzarella di Giovanni’가 포함 된 모든 제품을 선택하고 오름차순으로 정렬해보자.(ORDER BY 이용, ORDER BY의 DEFAULT값은 ASC(오름차순)이다.)

SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;

Orders 테이블 between

출처 - https://www.w3schools.com/sql/sql_between.asp

OrderDate BETWEEN ‘04 -July-1996 ‘및 ‘09-Junly-1996’인 모든 주문을 선택해보자.

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

siwon

$_$