데이터 추가
-- Customers의 Column 순서대로 저장
INSERT INTO Customers
VALUES ('Hekkan Burger', 'Gateveien 15', 'Sandnes', '4306', 'Norway');
-- Customers의 CustomerName, Address를 저장
-- 나머지는 기본값이나 Null로 저장
INSERT INTO Customers (CustomerName, Address)
VALUES ('Hekkan Burger', 'Gateveien 15');
데이터 수정
-- 모든 데이터의 City를 Oslo로 Country를 Norway로 변경
UPDATE Customers SET City = 'Oslo', Country = 'Norway';
-- Country가 Norway인 데이터의 City를 Oslo로 변경
UPDATE Customers SET City = 'Oslo'
WHERE Country = 'Norway';
데이터 삭제
-- Country가 Norway인 데이터를 삭제
DELETE FROM Customers
WHERE Country = 'Norway';
-- Customers 테이블에 있는 모든 데이터 삭제
DELETE FROM Customers; -- 한줄씩 삭제(시간 긺), ROLLBACK 가능
TRUNCATE TABLE Customers; -- 처음 만들었을 떄 상태로 되돌림
DROP TABLE Customers; -- 없었던 상태로 되돌림
-- Rollback
ROLLBACK;
COMMIT;
기본적인 데이터 조회
-- Customers 테이블의 모든 Column 조회
SELECT * FROM Customers;
-- Customers 테이블의 NAME, SEX Column 조회
SELECT NAME, SEX FROM Customers;
-- Customers 테이블의 Country Column (곂치는 것은 한번만) 조회
-- 여러개를 사용할 경우, 조합 중 1개만 조회
SELECT DISTINCT Country FROM Customers;
조건문
-- City가 Berlin인 데이터 조회
SELECT * FROM Customers
WHERE City = 'Berlin';
-- City가 Berlin이 아닌 데이터 조회
SELECT * FROM Customers
WHERE NOT City = 'Berlin';
-- PostalCode가 Null인 데이터 조회
SELECT * FROM Customers
WHERE PostalCode IS NULL;
-- City가 Berlin이고 PostalCode가 12209인 데이터 조회
SELECT * FROM Customers
WHERE City = 'Berlin' AND PostalCode = 12209;
-- City가 Berlin이거나 PostalCode가 12209인 데이터 조회
SELECT * FROM Customers
WHERE City = 'Berlin' OR City = 'London';
-- 위에 있는 변수 사용사. HAVING 사용
SELECT
NAME,
COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT > 1
ORDER BY NAME;
정렬
-- City 오름차순(A-Z) 조회
SELECT * FROM Customers
ORDER BY City;
-- City 내림차순(Z-A) 조회
SELECT * FROM Customers
ORDER BY City DESC;
-- Country, City 순서로 오름차순(A-Z) 조회
SELECT * FROM Customers
ORDER BY Country, City;
특정 문자
-- City가 a로 시작하는 데이터 조회
SELECT * FROM Customers
WHERE City LIKE 'a%';
-- City가 a로 시작하지 않는 데이터 조회
SELECT * FROM Customers
WHERE City NOT LIKE 'a%';
-- City에 a가 들어가는 데이터 조회
SELECT * FROM Customers
WHERE City LIKE '%a%';
-- City가 a에서 시작해서 b로 끝나는 데이터 조회
SELECT * FROM Customers
WHERE City LIKE 'a%b';
-- City가 두번쨰 문자가 a인 데이터 조회
WHERE City LIKE '_a%';
-- City가 첫번쨰 문자가 a,c,s중 하나인 데이터 조회
WHERE City LIKE '[acs]%';
-- City가 첫번쨰 문자가 a,c,s가 아닌 데이터 조회
WHERE City LIKE '[!acs]%';
-- City가 첫번쨰 문자가 a에서 f 사이인 데이터 조회
WHERE City LIKE '[a-f]%';
특정 범위
-- Price가 10 ~ 20 인 데이터 조회
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
-- Price가 10 ~ 20 가 아닌 데이터 조회
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
-- ProductName이 'Geitost', 'Pavlova' 사이인 데이터 조회
SELECT * FROM Products
WHERE ProductName BETWEEN 'Geitost' AND 'Pavlova';
개수 제한
-- 최대 200개 조회
SELECT * FROM 테이블_이름
LIMIT 200
MAX, MIN
-- 시간이 최소값인 데이터 출력
SELECT MIN(DATETIME) AS "시간" FROM ANIMAL_INS;
-- 시간이 최대값인 데이터 출력
SELECT MAX(DATETIME) AS "시간" FROM ANIMAL_INS;
SUM
-- 평균을 계산
SELECT AVG(MONEY) FROM TABLE;
COUNT
-- NAME이 null이 아닌 데이터 개수 조회
SELECT COUNT(NAME) FROM ANIMAL_INS;
-- ANIMAL_TYPE의 종류의 개수 조회
SELECT COUNT(DISTINCT ANIMAL_TYPE) FROM ANIMAL_INS;
-- 테이블 안의 있는 데이터 개수 조회
SELECT COUNT(*) FROM ANIMAL_INS;
-- GROUP화를 시켜 COUNT를 나누어 할 수 있음
SELECT
ANIMAL_TYPE,
COUNT(*) AS "count"
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;
SELECT
restaurant_id AS table_number,
time,
CASE
WHEN num_customer < 3 THEN 'kang'
WHEN num_customer < 5 THEN 'kim'
ELSE 'lee'
END AS server
FROM reservation
WHERE id < 300;
INNER JOIN
SELECT 조회할 컬럼 FROM 테이블1, 테이블2
[WHERE 조건문]
SELECT 조회할 컬럼 FROM 테이블1
(INNER) JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼
[WHERE 추가조건]
LEFT JOIN (= LEFT OUTER JOIN)
SELECT 조회할 컬럼 FROM 테이블1
LEFT (OUTER) JOIN 기준테이블2
ON 조건문
[WHERE 추가조건문]
RIGHT JOIN (= RIGHT OUTER JOIN)
SELECT 조회할 컬럼 FROM 테이블1
RIGHT (OUTER) JOIN 기준테이블2
ON 조건문
[WHERE 추가조건문]