select는 데이터를 조회하거나 산술식, 함수 등을 실행할 때 사용된다. SQL은 대소문자를 가리지 않지만, 구문에 해당되는 것은 대문자로만 적는다.
*(에스터리스크, 별표)
는 모든 항목을 다 출력할 때 사용함.
SELECT * FROM Customers;
여기서 원하는 컬럼만 출력하고 싶을 때에는 아래와 같이 사용함.
SELECT CustomerName, City FROM Customers;
DISTINCT는 중복값을 제거합니다. 넘파이의 Unique() 함수와 기능이 동일.
SELECT DISTINCT Country FROM Customers;
출력 결과 정렬.
SELECT * FROM Customers ORDER BY CustomerID DESC;
SELECT * FROM Customers ORDER BY CustomerName ASC;
별칭을 정한다. 기존 Table의 값은 변하지 않음.
SELECT CustomerID AS 회원이름
FROM Customers;
SELECT CustomerID AS 회원이름, Country AS 나라
FROM Customers;
SELECT Country || ' ' || City || ' ' || Address AS 주소 FROM Customers
실행결과
각 열의 데이터를 공백을 기준으로 합침. CONCAT과 상이함.
SELECT *
FROM Customers
WHERE CustomerID LIKE '1%'
AND City = 'London';
SELECT *
FROM Customers
WHERE CustomerID LIKE '1%'
AND (City = 'London' OR City = 'Berlin');
A AND B : A와 B를 포함한 사이의 값
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerID BETWEEN 30 AND 50;
실행결과: Customers 데이터에서 가져온 CutomerID가 30이상 50이하에 해당하는 CustomerID, CustomerName
IN A : A안에 값과 일치하는 값을 조회
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerID IN (10, 20, 30);
실행결과: Customers 데이터에서 가져온 CutomerID가 10, 20, 30에해당하는 CustomerID, CustomerName
대소문자를 안가림
만약 데이터가 Paullab, Paultest, Paulcode가 있다 하자.
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerName LIKE 'Paul___';
결과: Paullab만 검색. 언더바(_)는 모든 문자를 의미함.
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerName LIKE 'Paul%';
결과: Paullab, Paultest, Paulcode 전부 검색. %는 뒤에 어떤 문자열이 와도 되고, 문자 자체가 없어도 됨.
Paul이 들어가는 모든 값
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerName LIKE '%Paul%';
NULL 값을 갖는 값.
SELECT CustomerID, CustomerName
FROM Customers
WHERE CustomerID IS NULL;
SELECT *
FROM Customers
WHERE CustomerID > 80 AND Country='France';
결과: Customers에서 가져온 데이터 중, CustomerID가 80보다 크고, Country가 France인 모든 컬럼 검색.
새로운 행을 추가함. 파이썬의 append 함수와 상이함. 만약 컬럼이 부족하다면 부족한 컬럼은 null로 추가됨.
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('leehojun', 'jejusi', 'korea');
코드의 의미: Customers 테이블에 CustomerName, City, Country 열에 'leehojun', 'jejusi', 'korea'란 값을 넣는다. 다른 나머지 열은 null으로 추가됨.
값을 수정, 변경하는 함수. 한 번 바꾸면 다시 되돌릴 수 없으니 신중히 해야함.
UPDATE Customers
SET CustomerName='하르방', City='한라산', Country='선계'
WHERE CustomerID = 1;
코드의 의미: Customers 테이블에 CustomerID가 1인 행에 CustomerName란 열에 '하르방', City란 열에 '한라산', Country란 열에는 '선계'란 값으로 수정한다.
WHERE 구문을 적지 않으면 모든 데이터가 삭제됨.
DELETE FROM Customers WHERE CustomerName='hojun';
코드의 의미: CustomerName이 hojun인 행 삭제.