[SQL] #1 기본 쿼리문 - 테이블 내 데이터(SELECT, WHERE, INSERT, UPDATE, DELETE)

3 분 소요

[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;


참고 https://www.w3schools.com/sql/

댓글남기기