[DB] SQL - 1

[DB] SQL - 1

728x90

SQL 정리

SELECT : 무엇 ( 어떤 열 ) 을 가져올지

FROM : 어디서 가져올지

WHERE : 어떤 조건으로 필터링할 것인지

1) SELECT

SELECT column1, column2, … FROM table_name;

ex) SELECT CustomerName, City FROM Customers;

SELECT 뒤에 DISTINCT를 넣으면 중복 제거

ex) SELECT DISTINCT City FROM Customers;

SELECT COUNT(DISTINCT City) FROM Customers;

SELECT COUNT(*) AS DistinctCountry FROM (SELECT DISTINCT Country FROM Customers);

2) WHERE

ex) SELECT * FROM Customers WHERE Country='UK';

<>: 같지 않음(!=)

ex) SELECT * FROM Products WHERE SupplierID <> 1

BETWEEN: 특정 범위 사이

ex) SELECT * FROM Products WHERE price BETWEEN 10 AND 30

// 10, 30도 포함

LIKE: 특정한 패턴을 찾음

ex) SELECT * FROM Customers WHERE City LIKE "s%";

// City가 s로 시작하는 애들. %s면 s로 끝나는 애들이고 _s%이면 s가 두번째인 애들 %는 문자열, _는 문자

IN: 여러 조건(OR같은 친구)

ex) SELECT * FROM Customers WHERE Country IN ('Mexico', 'France');

// Country가 Mexico나 France인 애들

AND, OR로 WHERE에 여러 조건 사용 가능, NOT

ex) SELECT * FROM Customers WHERE City='Berlin' AND Country='Germany';

// City가 Berlin이고 Country가 Germany인 애들

ex) SELECT * FROM Customers WHERE City="Berlin" OR Country="France";

ex) SELECT * FROM Customers WHERE NOT City="Berlin";

// City가 Berlin이 아닌 애들

3) ORDER BY

순서대로 정렬, 내림차순으로 정렬하고 싶으면 DESC

ex) SELECT * FROM Customers ORDER BY Address;

ex) SELECT * FROM Customers ORDER BY City DESC;

ORDER BY에 여러 개 속성을 넣을 수 있음

-> 첫번째 기준으로 정렬했을 때 같은 애들이 있으면 두번째 기준으로 정렬

ex) SELECT * FROM Customers ORDER BY Country, CustomerName;

// Country로 정렬하고 얘네가 같은 애들은 Name

순으로 정렬

ex) SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC;

// Country를 기준으로 오름차순 정렬하고 country가 같은 애들은 이름을 내림차순으로 정렬

4) INSERT INTO: 테이블에 새로운 레코드 추가

INSERT INTO table_name (column1, column2, …) VALUES (value1, value2, …)

// column1 속성에 value1을 가진 레코드 추가)

ex) INSERT INTO Customers (CustomerID, CustomerName, City) VALUES ("92", "Kim", "Busan");

// 채우지 않은 attribute은 null이 들어감

INSERT INTO table_name VALUES (value1, value2, value3, …)

// table의 모든 속성에 value를 가진 레코드 추가

ex) Insert INTO Customers Values (93, "Kim", "Kim", "ABC", "Busan", "123456", "Korea");

5) IS NULL/IS NOT NULL

=, <, <> 이런 애들로 Null value를 test 할 수 없음

대신 IS NULL, IS NOT NULL로 null값 찾을 수 있음

ex) SELECT CustomerName, Address FROM Customers WHERE Address IS NULL;

// address가 null값인 레코드의 CustomerName, Address 가져옴

ex) SELECT CustomerName, Address FROM Customers WHERE Address IS NOT NULL;

// address가 null값이 아닌 레코드의 CustomerName, Address 가져옴

6) UPDATE: 테이블에 이미 존재하는 레코드를 수정

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

ex) UPDATE Customers SET CustomerName="Ohhh", City="New City" WHERE CustomerID=1;

// CustomerID가 1인 애의 CustomerName과 City를 수정

ex) UPDATE Customers SET CustomerName="OTL", Address="MUINDO" WHERE Country="Mexico";

// Country가 Mexico인 애들 모두 CustomerName과 Address를 바꿈

7) DELET: 테이블에 존재하는 레코드 삭제

DELETE FROM table_name WHERE condition;

ex) DELETE FROM Customers WHERE CustomerName="OTL";

// CustomerName이 OTL인 애들 삭제

ex) DELETE FROM Customers;

// 조건을 안 적으면 테이블에 존재하는 모든 레코드 삭제 (테이블이 사라지는건 아님!!)

참고 자료

https://www.w3schools.com/sql

from http://guiyum.tistory.com/111 by ccl(A) rewrite - 2021-11-17 20:02:41