1. 비교연산자 : 특정 컬럼이 특정 값을 가지는 데이터만 불러오기 위해서 사용
=, <>, >=, <=, >, <
SELECT * FROM Customers
WHERE CustomerID < 5
2. 아래처럼 WHERE 조건을 주면
CustomerNAME이 B이하로 시작하는 사람, 즉 CustomerNAME이 A로 시작하는 사람만 필터링한다.
SELECT * FROM Customers
WHERE CustomerNAME < 'B'
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
3. WHERE에 조건을 여러개 줄 수도 있다.
AND는 그리고, OR는 또는이다.
SELECT * FROM Customers
WHERE CustomerNAME < 'B' AND Country = 'Germany'
SELECT * FROM Customers
WHERE CustomerNAME < 'B' OR Country = 'Germany'
4. LIKE
4-1
WHERE 뒤에 필터를 걸어주고 싶은 컬럼명을 쓰고 LIKE 뒤에 조건을 걸어준다.
'Br%'는 Br로 시작하는 모든 문자라는 뜻이다.
SELECT * FROM Customers
WHERE Country LIKE 'Br%'
LIMIT 3
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
15 | Comércio Mineiro | Pedro Afonso | Av. dos Lusíadas, 23 | São Paulo | 05432-043 | Brazil |
21 | Familia Arquibaldo | Aria Cruz | Rua Orós, 92 | São Paulo | 05442-030 | Brazil |
31 | Gourmet Lanchonetes | André Fonseca | Av. Brasil, 442 | Campinas | 04876-786 | Brazil |
4-2
'%r%'은 Country 칼럼에서 r들어가는 모든 문자를 필터링 한다는 뜻이다.
SELECT * FROM Customers
WHERE Country LIKE '%r%'
LIMIT 5
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
6 | Blauer See Delikatessen | Hanna Moos | Forsterstr. 57 | Mannheim | 68306 | Germany |
7 | Blondel père et fils | Frédérique Citeaux | 24, place Kléber | Strasbourg | 67000 | France |
9 | Bon app' | Laurence Lebihans | 12, rue des Bouchers | Marseille | 13008 | France |
12 | Cactus Comidas para llevar | Patricio Simpson | Cerrito 333 | Buenos Aires | 1010 | Argentina |
4-3
'_'는 한 글자를 뜻한다. 'B_____'로 '_'를 5개 썼는데 B로 시작하고 뒤에 5개의 글자가 오는 Country를 필터링한다.
SELECT * FROM Customers
WHERE Country LIKE 'B_____'
4-4
'50\%'는 50% discount 받는 데이터를 출력한다는 뜻이다.
'%'를 LIKE 예약어가 아닌 그대로 쓰고 싶으면 '\%'처럼 앞에 역슬래쉬를 붙여야 된다.
SELECT * FROM Customers
WHERE discount LIKE '50\%'
두 자릿수 discount를 받는 데이터를 출력한다
SELECT * FROM Customers
WHERE discount LIKE '__\%'
4-5
NOT LIKE을 사용하면 조건에 부합하는 데이터는 빼고 고를 수 있다. 아래 쿼리는 모음으로 시작하거나 끝나는 데이터를 제외하고 출력하는 쿼리문이다.
SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT LIKE 'a%'
AND CITY NOT LIKE 'i%'
AND CITY NOT LIKE 'e%'
AND CITY NOT LIKE 'o%'
AND CITY NOT LIKE 'u%'
AND CITY NOT LIKE '%a'
AND CITY NOT LIKE '%i'
AND CITY NOT LIKE '%e'
AND CITY NOT LIKE '%o'
AND CITY NOT LIKE '%u'
5. IN
Country칼럼이 UK이거나 Mexico인 행으로 필터링한다.
SELECT * FROM Customers
WHERE Country IN('UK', 'Mexico')
LIMIT 4
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
11 | B's Beverages | Victoria Ashworth | Fauntleroy Circus | London | EC2 5NT | UK |
5. BETWEEN AND
CutomerID가 3과 5사이로 필터링한다.
SELECT * FROM Customers
WHERE CustomerID BETWEEN 3 AND 5
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
위의 퀴리와 아래의 쿼리는는 동일한 기능을 한다.
SELECT * FROM Customers
WHERE CustomerID >= 3 AND CustomerID <= 5
6. IS NULL
CutomerID에서 NULL인 행을 출력하는 코드이다.
SELECT * FROM Customers
WHERE CustomerID IS NULL
7. ORDER BY
ORDER BY는 ASC(오름차순)이 디폴트이다. 데이터베이스 자체를 변경하지 않는다.
SELECT *
FROM Customers
WHERE Country = 'Germany'
ORDER BY customerID
SELECT *
FROM Customers
WHERE Country = 'Germany'
ORDER BY customerID DESC
8. 문자열 자르기
1. LEFT(컬럼명 또는 문자열, 문자열의 길이)
ex) SELECT LEFT('20140323', 4) => 2014
2. RIGHT(컬럼명 또는 문자열, 문자열의 길이)
ex) SELECT RIGHT('20140323', 4) => 0323
3. SUBSTR(컬럼명 또는 문자열, 시작위치, 길이)
ex) SUBSTR('20140323', 1, 4) => 2014
ex) SUBSTR('20140323', 5) => 0323
9. 소수점처리
1. CEIL() : 올림
ex) SELECT CEIL(5.5) => 6
2. FLOOR() : 내림
ex) SELECT FLOOR(5.5) => 5
3. ROUND() : 반올림
ex) ROUND(5.556901, 4) => 5.5569
정규표현식 (0) | 2022.08.12 |
---|---|
서브쿼리 (0) | 2022.08.01 |
집계함수, GROUP BY, HAVING (0) | 2022.07.26 |
WHERE, ORDER BY (1) | 2022.07.26 |
MySQL 이론2 (0) | 2022.07.18 |
댓글 영역