백엔드&컴퓨터사이언스

[데이터베이스] SQL 문법

이채야채 2021. 12. 16. 15:29

 

 

 

예시 샘플

SELECT : 특성을 적음. 데이터선택(중복 ok)

FROM : 프롬 뒤에는 무조건 테이블명.

  • 데이터베이스에서 데이터 선택시 사용
    SELECT column1, column2, ...
    FROM table_name;
    예시 : SELECT city FROM Customers // Customers란 테이블에 city(column)을 선택
    
    SELECT * FROM table_name;
    예시 : SELECT * FROM Customers // Customers란 테이블에 모든것들을 
    
    SELECT DISTINCT 
    예시 : SELECT DISTINCT Country FROM Customers; //coutry빼고 나머지
  • 셀릭트 문에서는 중복여부에 관계없이 모든 데이터를 가져온다. 
  • 열에 있는 이름을 선택. column이름~! :Address, City, PostalCode 등등 맨위에 데이터를 나타내는 이름.
  • DISTINCT ? 별개의 뚜렷한 이란 사전적 의미처럼 :  중복을 제거해줌!!

 

WHERE : 필터역할

 

더보기

SELECT column1, column2, ...
FROM table_name
WHERE condition; (조건 적어주셈)

 

 

//필터 : 베를린 , 베를린으로 되어있는 모든것을 선택한다는 의미 
SELECT * FROM Customers
WHERE City = 'Berlin' 

//필터 : 베를린빼고, 나머지 선택할래
SELECT * FROM Customers
WHERE NOT City = 'Berlin'

where not city ='berlin'이랑 where city <> 'berlin' 같은 의미다!
  • 텍스트는 따옴표 필요, 숫자는 필요없다. ex) city = 'berlin' ,  id = 32
  • 연산자도 가능하다. AND OR ~!
//두가지 모두 충족되는값을 필터링하고싶을시
SELECT * FROM Customers
WHERE City = 'Berlin'
AND PostalCode = 12209;
  • i

ORDER BY : 정렬 !! 오름차순 혹은 내림차순

더보기

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

  • order by 기본이 오름차순 반대로하고싶으면 ?  DESC
    • order by city,country <= city정돈되구 그다음에 country정돈됨
//오름차순(알파벳)으로 시티를 정돈
SELECT * FROM Customers
ORDER BY City

//알파벳 역순으로 시티 정돈
SELECT * FROM Customers
ORDER BY City DESC

INSERTION INTO : 새로운거 추가하고싶을때 

 

구체적으로 추가 : column1, colum2로 지정

더보기

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

구체적이지 않게 추가 : column이 비어있으면? <= Null이 들어온다.

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

 

IS NULL / IS NOT NULL  

 

NULL : 0이나 공백이 아니고 그냥 생성중에 레코드가 비어있는 레코드. 

더보기

SELECT column_names
FROM table_name
WHERE column_name IS (NOT) NULL;

SELECT * FROM Customers
WHERE PostalCode IS NOT NULL

UPDATE : 테이블의 데이터를 수정. 

더보기

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;

//where로 필터링 된 1값의 colum,<= contactname의 값이 수정! (update 문법!)'

 

  • where을 까먹으면..전부 업데이트가되버림 (contactName = 'Juan') <= 이라고 설정했을시에..



DELETE

더보기
DELETE FROM table_name WHERE condition;

MIN() and MAX() Functions

 

MIN()  : 작은값구하기

더보기

SELECT MIN(column_name)
FROM table_name
WHERE condition;

MAX() : 맥스값 구하기

더보기

SELECT MAX(column_name)
FROM table_name
WHERE condition;

 

 

 

위의 값을 아래와 같이 적용하면 MIN AS/ MAX AS

SELECT MIN(Price) AS(Smallest Price)
FROM Products

 

이렇게 smallestPrice라는 컬럼으로 이름이 바뀌고 딱 하나만 나오게된다.!!

 

COUNT (): 말그대로 갯수 세주는거 / AVG()/SUM()

 

count

더보기

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

AVG

더보기

SELECT AVG(column_name)
FROM table_name
WHERE condition;

SUM

더보기

SELECT SUM(column_name)
FROM table_name
WHERE condition;

아래와 같이 입력해보면

MIn() Max()처럼 하나만 툭! 뱉어낸다.

SELECT AVG(Price)
FROM Products;

 LIKE : WHERE문 안에서 사용하는거!

  •  The percent sign (%) represents zero, one, or multiple characters : %는 제로,하나, 멀티플 캐릭터를 의미한다.
     The underscore sign (_) represents one, single character : __는 단일문자를 사용한다는말이며
더보기

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

IN : WHERE문 안에서 사용하며 여러가지 선택가능 (OR기능 수행)

SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');

BETWEEN : 시작 및 끝값 포함

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;