티스토리 뷰

WEB/기타

[SQL] SELECT

silverline79 2024. 1. 19. 21:46

SELECT ( TABLE 조회 )

SELECT * FROM TABLENAME; SELECT column1, column2, ...FROM table_name;
SELECT DISTINCT문은
고유한(다른) 값만 반환
SELECT DISTINCT column1, column2, ...FROM table_name;
컬럼의 고유한 값의 갯수 SELECT COUNT(DISTINCT 컬럼명) FROM 테이블명;

 

[ WHERE ] 레코드 필터링 AND / OR / NOT 사용 가능

SELECT column1, column2, ...FROM table_nameWHERE condition; SELECT * FROM CustomersWHERE Country='Mexico';

 

[ WHERE ] WHERE 절의 연산자

Operator
Example
=
SELECT * FROM Products
WHERE Price = 18;
>
SELECT * FROM Products
WHERE Price > 30;
<
SELECT * FROM Products
WHERE Price < 30;
>=
SELECT * FROM Products
WHERE Price >= 30;
<=
SELECT * FROM Products
WHERE Price <= 30;
<> Not equal SELECT * FROM Products
WHERE Price <> 18;
BETWEEN
SELECT * FROM Products
WHERE Price BETWEEN 50 AND 60;
LIKE
SELECT * FROM Customers
WHERE City LIKE 's%';
IN
SELECT * FROM Customers
WHERE City IN ('Paris','London');

 

[ ORDER BY ] 정렬 / default - 오름차순(ASC) / 내림차순(DESC)

SELECT column1, column2, ...FROM table_nameORDER BY column1 , column2, ... ASC|DESC;

 

[ NULL ] IS NULL / IS NOT NULL

IS NULL IS NOT NULL
SELECT column_namesFROM table_nameWHERE column_name IS NULL; SELECT column_namesFROM table_nameWHERE column_name IS NOT NULL;

 

[ TOP ] 반환할 레코드 수 지정

MySQL  오라클 12 이전 Oracle
SELECT column_name(s)FROM table_nameWHERE conditionLIMIT number; SELECT column_name(s)FROM table_nameORDER BY column_name(s)FETCH FIRST number ROWS ONLY; SELECT column_name(s)FROM table_nameWHERE ROWNUM <= number;

 

[ MIN( ) / MAX( ) ]

MIN() MAX()
SELECT MIN(column_name)FROM table_nameWHERE condition; SELECT MAX(column_name)FROM table_nameWHERE condition;
SELECT MIN(Price) AS SmallestPriceFROM Products; SELECT MAX(Price) AS LargestPriceFROM Products;

 

[ COUNT( , AVG( ), SUM( ) ]

COUNT() AVG() SUM()
지정된 기준과 일치하는 행의 수를 반환 숫자 열의 평균 값을 반환 함수는 숫자 열의 합을 반환
SELECT COUNT(column_name)FROM table_nameWHERE condition; SELECT AVG(column_name)FROM table_nameWHERE condition; SELECT SUM(column_name)FROM table_nameWHERE condition;
SELECT COUNT(ProductID)FROM Products; SELECT AVG(Price)FROM Products; SELECT SUM(Quantity)FROM OrderDetails;

 

[ LIKE ]

LIKE 오퍼레이터가 사용된다 WHERE 열의 특정 패턴을 검색하는 절.


LIKE 연산자 와 함께 자주 사용되는 두 개의 와일드카드가 있습니다 .


- 퍼센트 기호(%)0, 1 또는 여러 문자를 나타냅니다.
- 밑줄 기호(_)는 하나의 단일 문자를 나타냅니다.
SELECT column1, column2, ...FROM table_nameWHERE columnN LIKE pattern; AND 또는 OR연산자를 사용하여 여러 조건을 결합할 수도 있습니다 .
--A로 시작하는 문자를 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%'


--A로 끝나는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A'


--A를 포함하는 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%'


--A로 시작하는 두글자 문자 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_'


--첫번째 문자가 'A''가 아닌 모든 문자열 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[^A]'


--첫번째 문자가 'A'또는'B'또는'C'인 문자열 찾기--
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[ABC]'
SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[A-C]'


- "a"로 시작하고 "o"로 끝나는 ContactName을 가진 모든 고객을 선택
SELECT * FROM Customers WHERE ContactName LIKE 'a%o';


- "a"로 시작하지 않는 CustomerName을 가진 모든 고객을 선택
SELECT * FROM Customers WHERE CustomerName NOT LIKE 'a%';

 

[ IN ]

IN 연산자를 사용하면 여러 값을 지정할 수 있습니다 WHERE .
IN 연산자 다중 대한 속기 OR 조건.
SELECT column_name(s)FROM table_nameWHERE column_name IN (value1, value2, ...); SELECT column_name(s)FROM table_nameWHERE column_name IN (SELECT STATEMENT);
"독일", "프랑스" 또는 "영국"에 있는 모든 고객을 선택 "독일", "프랑스" 또는 "영국"에 있지 않은 모든 고객을 선택
SELECT * FROM CustomersWHERE Country IN ('Germany''France''UK'); SELECT * FROM CustomersWHERE Country NOT IN ('Germany''France''UK');
공급업체와 동일한 국가의 모든 고객을 선택
SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);

 

[ BETWEEN ]

BETWEEN주어진 범위 내에서 운전자가 선택 값. 값은 숫자, 텍스트 또는 날짜일 수 있습니다.
BETWEEN운영자는 포함입니다 : 시작과 끝 값이 포함되어 있습니다.
SELECT column_name(s)FROM table_nameWHERE column_name BETWEEN value1 AND value2;
가격이 10에서 20 사이인 모든 제품을 선택 Carnarvon TigersMozzarella di Giovanni 사이에 ProductName이 있는 모든 제품을 선택
SELECT * FROM ProductsWHERE Price BETWEEN 10 AND 20; SELECT * FROM ProductsWHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'ORDER BY ProductName;
OrderDate'01-July-1996''31-July-1996' 사이에 있는 모든 주문을 선택
SELECT * FROM OrdersWHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#; SELECT * FROM OrdersWHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';

 

[ NOT BETWEEN ]

NOT BETWEEN SELECT * FROM ProductsWHERE Price NOT BETWEEN 10 AND 20;
가격이 10에서 20 사이인 모든 제품을 선택합니다. CategoryID1,2 또는 3인 제품을 표시하지 마십시오. Carnarvon TigersMozzarella di Giovanni 사이가 아닌 ProductName이 있는 모든 제품을 선택
SELECT * FROM ProductsWHERE Price BETWEEN 10 AND 20AND CategoryID NOT IN (1,2,3); SELECT * FROM ProductsWHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'ORDER BY ProductName;

[ Aliases ] 별칭이 생성

SQL Aliases은 테이블이나 테이블의 열에 임시 이름을 지정하는 데 사용됩니다.
Aliases은 종종 열 이름을 더 읽기 쉽게 만드는 데 사용됩니다.
Aliases은 해당 쿼리 기간 동안에만 존재합니다.
AS키워드로 별칭이 생성됩니다 .
열 구문 테이블 구문
SELECT column_name AS alias_nameFROM table_name; SELECT column_name(s)FROM table_name AS alias_name;

 

Aliases -

CustomerID 열과 CustomerName 열에 대해 하나씩 두 개의 별칭 CustomerName 열과 ContactName 열에 대해 하나씩 두 개의 별칭
참고: 별칭 이름에 공백이 포함된 경우 큰따옴표 또는 대괄호가 필요.
SELECT CustomerID AS ID, CustomerName AS CustomerFROM Customers; SELECT CustomerName AS Customer, ContactName AS [Contact Person]FROM Customers;
개의 열(Address, PostalCode, City Country)을 결합하는 "Address"라는 별칭 만듬
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS AddressFROM Customers;

 

Aliases - 테이블

CustomerID=4(Around Horn)인 고객의 모든 주문을 선택합니다. "Customers" "Orders" 테이블을 사용하고 각각 "c" "o"의 테이블 별칭을 제공
SELECT o.OrderID, o.OrderDate, c.CustomerNameFROM Customers AS c, Orders AS oWHERE c.CustomerName='Around the Horn' AND c.CustomerID=o.CustomerID;

 

 

'WEB > 기타' 카테고리의 다른 글

[SQL] INSERT INTO, UPDATE, DELETE  (0) 2024.01.19
[SQL] JOIN  (0) 2024.01.19
중요한 SQL 명령  (0) 2024.01.19
이클립스 yml , jsp 파일 메모장으로 열릴때  (0) 2021.09.26
[Mysql] DB 생성  (0) 2021.09.26
댓글