공부 기록

[DB] SQL - 1

by 너나나

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%";

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

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

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

// CountryMexicoFrance인 애들

 

AND, ORWHERE에 여러 조건 사용 가능, NOT

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

// CityBerlin이고 CountryGermany인 애들

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

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

// CityBerlin이 아닌 애들

 

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");

// 채우지 않은 attributenull이 들어감

 

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

 

SQL Tutorial

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com:443

 

블로그의 정보

공부 기록

너나나

활동하기