select *
from Products
order by Price ASC, ProductID DESC;특정 컬럼을 새로운 별명을 붙여 사용. 주로 연산이나 함수를 통해 새로 나온 컬럼에 붙인다.
컬럼 as 별명
Products 테이블에서 ProductId, SupplierId, CategoryId를 더한 값으로 새로운 컬럼을 만들고 컬럼 이름을 NewId로 정하기
SELECT ProductId, SupplierId, CategoryId, ProductId + SupplierId + CategoryId as NewId FROM Products;
+, *, /, -
숫자 + 숫자 == 산술 연산
문자 + 숫자 == 문자는 0 취급
컬럼1 + 컬럼2 == 컬럼의 모든 행이 연산.
사칙 연산 예제
SELECT 10 + 20;
SELECT 10 * 20;
SELECT 10 / 20;
SELECT 10 - 20;
, <, =, !=
- 결과는 1(참, TRUE), 0(거짓, FALSE)
- 비교 연산 예제
SELECT 10 = 20; SELECT 10 != 20; SELECT 10 > 20; SELECT 10 < 20; SELECT 10 >= 20; SELECT 10 <= 20;
and, or
and : 조건이 여러개 일 때 모두 만족해야 맞다고 보는 연산
or : 조건이 여러개일 때 하나라도 만족하면 맞다고 보는 연산
Customers 테이블에서 CustomerId값이 10 이상이고 CustomerId값이 20 이하인 행만 조회
SELECT *
FROM Customers
where CustomerID >= 10
and CustomerId <= 20;
SELECT *
FROM Customers
where CustomerID <= 20
or CustomerId >= 80;
SELECT *
FROM Customers
where (CustomerID <= 20
or CustomerId >= 80)
and city = 'London';
SELECT *
FROM Customers
where CustomerID BETWEEN 10 AND 20;SELECT *
FROM Customers
WHERE City in ('London', 'Berlin', 'Madrid');그룹핑은 특정 컬럼을 기준으로 그룹을 나누어 모든 행을 하나의 그룹으로 편입시켜 그룹별로 집계를 할 때 사용.
예를 들어 ~별 ~결과를 봐야한다고 하면 그룹핑해야 한다고 생각하면 된다.
ex )
Customer 테이블에서 국가별 회원 수 보기
SELECT Country, COUNT(Country)
FROM Customers
GROUP BY Country
Customer 테이블에서 도시별 회원 수 보기
SELECT Country, City, COUNT(City)
FROM Customers
GROUP BY Country, City
일반적으로 select문은 from > where > group by > having > select > order by 순으로 실행된다.
where가 group by 보다 먼저 실행되기 때문에 group by 이후에 where로 조건을 따질 수 없다. 그래서 having을 사용한다.
Customers 테이블에서 회원수가 5이상인 국가만 보기
SELECT *, country, count(*) cnt FROM Customers
group by country
having cnt > 5
특정 문자로 시작여부, 끝나는지 여부, 포함하는지 여부
찾고자하는 문자열을 %기호와 조합해서 사용. 여기서 %는 나머지 문자를 의미
'A%' : A로 시작하는 문자열
'%A' : A로 끝나는 문자열
'%A%' : A를 포함하는 문자열
Employees 테이블에서 LastName이 D로 시작하는 행만 조회
SELECT * FROM Employees
where LastName like 'D%';
SELECT * FROM Employees
where LastName not like 'D%';
SELECT ROUND(1.2); SELECT ROUND(Price) FROM Products;AVG(컬럼) : 컬럼의 모든 행의 평균값 구하기
MAX(컬럼) : 컬럼의 모든 행중 최대값 구하기
MIN(컬럼) : 컬럼의 모든 행중 최소값 구하기
SUM(컬럼) : 컬럼의 모든 행의 합 구하기
COUNT(컬럼) : 컬럼의 모든 행의 개수를 구하기 (NULL값은 카운팅에서 제외됨)
SELECT count(CategoryName) FROM Categories;
select concat('taejin', ' ','cha') as name;
SELECT EmployeeId, BirthDate, Photo, Notes, concat(LastName, ' ', FirstName) as FullName FROM Employees;select substr('taejincha', 1, 6) as fisrtName;SELECT substr(BirthDate, 1, 4) as `year` FROM Employees대상 문자(컬럼)에 문자열1인 부분을 찾아 문자열2로 치환해주기.
SELECT replace(city, 'B', 'b') FROM Customers;
select datediff('2022-03-21', '2021-03-21'); SELECT DISTINCT Country
FROM Suppliers