[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%";
// 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;
// 조건을 안 적으면 테이블에 존재하는 모든 레코드 삭제 (테이블이 사라지는건 아님!!)
참고 자료
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
블로그의 정보
공부 기록
너나나