상세 컨텐츠

본문 제목

MySQL 이론1

SQL/MySQL 이론

by 관재탑 2022. 7. 18. 15:02

본문

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

 

 

'SQL > MySQL 이론' 카테고리의 다른 글

정규표현식  (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

관련글 더보기

댓글 영역