[SQL] #1 기본 쿼리문 - 테이블 내 데이터(SELECT, WHERE, INSERT, UPDATE, DELETE)
[SQL] #1 기본 쿼리문 - 테이블 내 데이터
📌 SELECT
데이터베이스를 불러오는 기능
형식 :
SELECT column_name1, column_name2, ...
FROM table_name;
- table_name 안에 있는 column_name을 불러온다.
예시 :
SELECT *
FROM table_name;
- table_name 의 정보를 모두 불러온다.
📌 DISTINCT
SELECT 와 함께 사용되며, 중복되지 않는 유일한 값만 불러온다.
형식 :
SELECT DISTINCT column_name1, column_name2, ...
FROM table_name;
예시 : Customers 테이블에서 중복되지 않은 도시의 수는?
SELECT COUNT(DISTINCT Country) FROM Customers;
📌 WHERE
SELECT 와 함께 사용되며, 특정하게 지정된 값을 불러온다.(조건)
형식 :
SELECT column_name1, column_name2, ... FROM table_name
WHERE condition;
예시 :
- Text Fields vs Numeric Fields
SELECT * FROM customers
WHERE Country = 'KOR';
SELECT * FROM customers
WHERE CustomersID = 1;
📌 SQL 특수 비교 연산자 (WHERE 과 함께 사용)
- BETWEEN : 사이의 값을 불러오는 연산자
형식 :
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
예시 :
참고 ) 이상~이하 (MySQL기준),DATETIME은 다를수있다# 상품의 가격이 ( 10 <= Price <= 20 )인 상품 출력 SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; # ( price < 10 or price > 20 ) SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20; # Text Values SELECT * FROM Products WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella' ORDER BY ProductName; # Date Values SELECT * FROM Orders WHERE OrderDate BETWEEN '2022-01-02' AND '2022-03-04'; #1 WHERE OrderDate BETWEEN #02/01/2022# AND #04/03/2022#; #2
- LIKE
형식 :
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;
예시 :
# 'a'로 시작하는 CustomerName SELECT * FROM Customers WHERE CustomerName LIKE 'a%'; #' a'로 끝나는 CustomerName SELECT * FROM Customers WHERE CustomerName LIKE '%a'; # 'or'이 들어가 있는 CustomerName SELECT * FROM Customers WHERE CustomerName LIKE '%or%'; # 두번째 위치에 'r'이 들어가 있는 이름 SELECT * FROM Customers WHERE CustomerName LIKE '_r%'; # 'a'로 시작하고, 적어도 3글자인 이름 SELECT * FROM Customers WHERE CustomerName LIKE 'a__%'; # 'a'로 시작하고, 'o'로 끝나는 이름 SELECT * FROM Customers WHERE CustomerName LIKE 'a%o'; # 'a'로 시작하지 않는 CustomerName SELECT * FROM Customers WHERE CustomerName NOT LIKE 'a%'; # 'b','s','p' 중의 글자로 시작하는 도시 SELECT * FROM Customers WHERE City LIKE '[bsp]%'; # 'a,b,c' 중의 글자로 시작하는 도시 SELECT * FROM Customers WHERE City LIKE '[a-c]%'; # 'b','s','p' 중의 글자로 시작하지 않는 도시 SELECT * FROM Customers WHERE City LIKE '[!bsp]%'; # 1 WHERE City NOT LIKE '[bsp]%'; # 2
- IN
형식 :
SELECT column_name(s) FROM tabel_name WHERE column_name IN (value1, value2, ...); # or SELECT column_name(s) FROM tabel_name WHERE column_name IN (SELECT STATEMENT);
예시 :
# ( ) 안에 있는 도시에 사는 고객들을 출력 SELECT * FROM Customers WHERE Country IN ('Germany','France','UK'); # ( ) 안에 있는 도시에 사는 고객을 제외하고 출력 SELECT * FROM Customers WHERE Country NOT IN ('Germany','France','UK'); # Suppliers Table에 있는 도시에 속하는 곳에 사는 고객 출력 SELECT * FROM Customers WHERE Country IN (SELECT Country FROM Suppliers);
- AND, OR, NOT : 조건들이 모두 참일 때 AND, 조건 중 하나라도 참일 때 OR, 조건의 반대일때 NOT
형식 :
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...; WHERE condition1 OR condition2 OR condition3 ...; WHERE NOT condition;
예시 :
SELECT * FROM Customers WHERE Country='Germany' AND (City='Berlin' OR City='Munchen'); WHERE NOT Country='Germany' AND NOT Country='USA';
- IS NULL , IS NOT NULL : empty value 인지 확인하기 위해 사용
📌 ORDER BY
데이터를 정렬할 때 사용, 기본은 오름차순
형식 :
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... (DESC);
- 내림차순 : DESC
📌 INSERT INTO
테이블에 새로운 데이터를 삽일할 때 사용
형식 :
# 모든 column 값의 데이터를 추가하는 경우
INSERT INTO table_name
VALUES ('val1','val2', ... );
# 일부 column 값의 데이터를 추가하는 경우
INSERT INTO table_name (column1, column2, ... )
VALUES ('val1','val2', ... );
예시 :
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal','Stavanger','Norway');
📌 UPDATE - SET
테이블 안의 데이터를 수정할 때 사용
형식 :
UPDATE table_name
SET column1=value1, column2=value2, ...
WHERE condition;
예제 :
UPDATE Customers
SET ContactName = 'Juan', City='Frankfurt'
WHERE CustomersID = 1;
📌 DELETE
테이블 안의 데이터를 삭제할 때 사용
형식 :
DELETE FROM table_name
WHERE condition;
예제 :
DELETE FROM Customers
WHERE CustomerName='Futterkiste' AND ContactName='Maria';
# 모든 데이터 지우기
DELETE FROM tabel_name;
댓글남기기