본문 바로가기
Database/SQL

MariaDB /SQL - 문법 모음

by 재성스 2023. 10. 13.
반응형

AND, OR 

-- suppliers의 country가 'sweden'이거나 'italy'만 조회
SELECT * FROM suppliers WHERE Country = 'sweden' OR Country ='Italy';

-- employees의 birthDate가 1963-08-01 ~ 1963-08-31 사이만 조회
SELECT * FROM employees WHERE BirthDate >= '1963-08-01' AND BirthDate <= '1963-08-31';

-- products의 price가 100.0~200.0 사이 조회
SELECT * FROM products WHERE Price >= 100.0 AND Price <= 200.0;

-- 여러 연산자 조합시 () 사용해서 우선순위 결정

-- 예) 10달러 미만, 100달러 이상 그리고 카테고리 id가 1인 것 조회
SELECT * FROM products WHERE (Price < 10 OR Price >= 100) AND (CategoryID = 1);

BETWEEN 

-- price 30~40 사이 조회
SELECT * FROM products WHERE Price BETWEEN 30 AND 40;

-- birthdate '1958-09-01'~'1958-09-31'조회
SELECT * FROM employees WHERE BirthDate BETWEEN '1958-09-01' AND '1958-09-31';

-- 값을 직접 입력할 수 있음
SELECT * FROM products WHERE Price BETWEEN ? AND ?;

IN : IN 파라미터 안에 값이 하나라도 같으면 반환

-- OR 연산을 사용
SELECT * FROM customers WHERE Country = 'UK' OR Country = 'spain' OR Country = 'Italy';

-- IN으로 묶어서 사용 위와 같은 결과
SELECT * FROM customers WHERE Country IN('UK','spain','Italy');

-- 예) 카테고리 3, 4에 속한 상품들
SELECT * FROM products WHERE CategoryID IN(3,4);

-- 예) 1996년 7월 4일,5일에 주문한 주문들
SELECT * FROM orders WHERE OrderDate IN('1996-07-04','1996-07-05');

-- 예) london이나 madrid, sevilla에 있는 고객들
SELECT * FROM customers WHERE City IN('madrid', 'sevilla');

CONCAT 문자열 결합, 날짜 연산(ADDDATE(증감), DATE_SUB(가감)) 

-- CONCAT: 문자열 결합, Firtname과 LastName을 결합하여 반환
SELECT EmployeeID, CONCAT(FirstName, ' ', LastName) FROM employees;

-- ADDDATE: 날짜 더하기 연산, 파라미터 첫 번째에는 피연산 할 날짜 지정, 두 번째에는 연산 조건 지정
-- DATE_SUB: 날짜 빼기 연산, 파라미터 첫 번째에는 피연산 할 날짜 지정, 두 번째에는 연산 조건 지정
SELECT BirthDate,							   -- 1968년
       ADDDATE(BirthDate, INTERVAL +10 YEAR ), -- 1978년 10 증감
       DATE_SUB(BirthDate, INTERVAL +10 YEAR ) -- 1958년 10 가감
FROM employees WHERE EmployeeID =1;

AS : 별칭 (테이블명 또는 컬럼명 사용자 지정 변경)

-- 컬럼명에 alias 추가
SELECT EmployeeID, CONCAT(FirstName, ' ',LastName) AS fullname FROM employees;

-- 테이블명에 Alias 추가
SELECT p.ProductName FROM products p;

-- JOIN 예제
SELECT p.ProductName, c.CategoryID
FROM products AS p JOIN categories AS c ON p.CategoryID = c.CategoryID;

ORDER BY (DESC, ASC) - 레코드 정렬 

-- 오름차순 (기본 값) 생략가능
SELECT * FROM products ORDER BY  CategoryID ASC;

-- 내림차순 DESC
SELECT * FROM products ORDER BY  CategoryID DESC;

LIMIT - 조회 레코드의(행,  row)를 제한 (페이징 기법으로 많이 사용됨.)

-- 내림차순 정렬 후 행의 갯수 10개로 제한하여 반환
SELECT * FROM products
ORDER BY Price DESC
LIMIT 10;

-- 0번 부터 3개
SELECT ProductName, Price
FROM products
order by Price
LIMIT 0, 3;

-- 1번 부터 3개
SELECT ProductName, Price
FROM products
order by Price
LIMIT 1, 3;

-- 2번 부터 3개
SELECT ProductName, Price
FROM products
order by Price
LIMIT 2, 3;

LIKE - 특정 조건의 레코드를 검색
- %, _ 기호와 함께 사용 됨

% 기호 - 특정 문자 조건

-- % 기호
SELECT * FROM customers
WHERE CustomerName LIKE 'ch%';  -- ch로 시작하는 0개이상 문자

SELECT * FROM customers
WHERE CustomerName LIKE '%ch';  -- ch로 끝나는 0개이상 문자
SELECT * FROM customers
WHERE CustomerName LIKE '%er';  -- er로 끝나는 0개이상 문자

SELECT * FROM customers
WHERE CustomerName LIKE '%er%';  -- 중간에 er이 있는 0개이상 문자

_ 기호 - 문자 개수 조건

 _ 기호
SELECT * FROM employees
WHERE FirstName LIKE '_____';   -- _: 언더스코어 갯수만큼의 글자 (여기서 5개)

SELECT * FROM employees
WHERE LastName LIKE '____';   -- _: 4개의 문자 아무거나

SELECT * FROM employees
WHERE LastName LIKE '_e%';  -- 두 번째 글자가 e인 문자열(여기서는 아무글자 뒤에 2번째가 e만 붙으면됨.(두글자 x))
반응형

'Database > SQL' 카테고리의 다른 글

정규화 Normalization (제 1~3 정규화)  (0) 2023.10.13
서브 쿼리 - MariaDB/SQL  (0) 2023.10.13
상관쿼리와 비상관쿼리 - MariaDB/SQL  (2) 2023.10.13