https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
SELECT : Data Query Language
INSERT/UPDATE/DELETE : Data Manipulation Language
SELECT / FROM / LIMIT
SELECT *
FROM Customers
LIMIT 5;
SELECT * ➔ 모든 컬럼
FROM Customers ➔ Customers 테이블에서
LIMIT 5 ➔ 5개만 보여달라
비교연산자 WHERE
AND
SELECT *
FROM Customers
WHERE CustomerName < 'B' AND Country="Germany";
CustomerName이 'B' 보다 작고 ➔ A로 시작하는 이름
AND
Country가 "Germany"
LIKE
LIKE로 문자열의 패턴을 찾을 수 있다. (부분 검색)
SELECT *
FROM Customers
WHERE country LIKE '%r%';
% 는 어떤 것이 와도 상관 없다는 의미
LIKE '%r%' ➔ country 중에 r이 들어가는 것만 찾고 싶다.
LIKE 'Br%' ➔ Br로 시작하는 것을 찾고 싶다.
SELECT *
FROM Customers
WHERE country LIKE 'B_____'; --언더바 5개
'_' 는 한 글자를 의미하는 와일드카드이다.
_를 이용해 몇 개의 문자가 들어있는지를 이용해 원하는 데이터를 출력
'B_ _ _ _ _' ➔ B로 시작하고 뒤에는 5글자여야 한다.
SELECT *
FROM Customers
WHERE discount LIKE '50\%';
%는 혼자 쓰면 예약어 기능이라 50%라고 한다면 50으로 시작하는 데이터를 찾게 된다.
\(역슬래쉬)를 %앞에 붙이면 % 기호를 찾을 수 있다.
IN
결과에 포함시키고자 하는 값 목록을 지정할 수 있다.
SELECT *
FROM Customers
WHERE country IN ('Germany','France');
-- WHERE country = 'Germany' OR country = 'France'
BETWEEN
SELECT *
FROM Customers
WHERE CustomerID BETWEEN 3 AND 5;
-- WHERE CustomerID >= 3 AND CustomerID <= 5;
IS NULL
NULL 값인 데이터를 출력
SELECT *
FROM Customers
WHERE CustomerID IS NULL;
HackerRank: Weather Observation Station 6
Query the list of CITY names starting with vowels (i.e., a, e, i, o, or u) from STATION. Your result cannot contain duplicates.
SELECT DISTINCT CITY
FROM STATION
WEHRE CITY LIKE "a%"
OR CITY LIKE "e%"
OR CITY LIKE "i%"
OR CITY LIKE "o%"
OR CITY LIKE "u%"
처음에 WHERE CITY LIKE "a%" OR "e%" OR "i%" OR "o%" OR "u%"; 이렇게 작성했는데 이렇게 하면 안된다!
OR 뒤에 다시 정확하게 조건을 정의해줘야 하는 듯
cannot contain duplicates ➔ 중복은 안되게 결과를 출력해야 하므로 SELECT DINSTINCT CITY 라고 작성해야 한다!