1. order by
order by는 정렬을 하게 하는 함수입니다.
사용방식은 select * from 테이블 조건문 order by 기준칼럼 asc(오름차순)/desc(내림차순); 으로 사용합니다.
ex) id 기준 asc(오름차순) 사용
ex2) id 기준 desc(내림차순) 사용
2. like
like는 특정문자를 가진 내용을 찾는 함수입니다.
사용방식은 select * from 테이블명 where 기준칼럼 like '찾을문자'; 으로 사용하며
%는 모든 내용을 의미합니다. 따라서 '%주%' 로 검색을 하면 글자사이에 '주'가 있는 모든 글자를 검색합니다.
'%주' 로 검색하면 마지막글자가 '주'인 내용만 나옵니다.
3. IN
IN은 특정 값이 주어진 목록에 속하는지 여부를 확인하는 데 사용되는 연산자입니다. IN 연산자를 사용하여 특정 열 값을 다른 값들과 비교할 수 있습니다.
IN 연산자의 기본 구문은 다음과 같습니다:
SELECT 열 FROM 테이블 WHERE 열 IN (값1, 값2, 값3, ...)
여기서 열은 비교하려는 열의 이름을 나타내고, 테이블은 데이터를 가져올 테이블의 이름입니다. 값1, 값2, 값3은 비교할 값들을 나타냅니다.
예를 들어, "Customers" 테이블에서 "Country" 열의 값이 'USA', 'Canada', 'Mexico' 중 하나인 고객을 선택하려면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT * FROM Customers WHERE Country IN ('USA', 'Canada', 'Mexico')
이 쿼리는 "Customers" 테이블에서 "Country" 열의 값이 'USA', 'Canada', 'Mexico' 중 하나인 모든 행을 선택합니다.
반대로 "Country" 열의 값이 'USA', 'Canada', 'Mexico' 이 아닌 모든 값을 선택하려면 IN 앞에 NOT을 붙이면 됩니다.
IN 연산자를 사용하면 여러 값들과의 비교를 간단하게 할 수 있으며, 많은 조건문을 작성하는 대신 하나의 쿼리로 처리할 수 있습니다. 이를 통해 효율적인 데이터 추출이 가능해집니다.
4. join
MySQL에서 조인은 두 개 이상의 테이블을 연결하여 관련된 데이터를 결합하는 데 사용되는 기능입니다. 조인을 사용하면 데이터를 효율적으로 검색하고 조작할 수 있습니다. MySQL에서는 여러 종류의 조인을 지원합니다.
1) INNER JOIN
INNER JOIN은 두 개의 테이블에서 일치하는 행만 선택합니다. INNER JOIN의 기본 구문은 다음과 같습니다:
SELECT 열 FROM 첫번째테이블
INNER JOIN 두번째테이블
ON 첫번째테이블.열 = 두번째테이블.열
여기서 첫번째테이블과 두번째테이블은 조인할 테이블의 이름을 나타냅니다. 열은 두 테이블 간의 관계를 맺을 열의 이름입니다.
예를 들어, "Customers" 테이블과 "Orders" 테이블에서 고객과 그들의 주문을 조인하여 고객 이름과 주문 번호를 선택하려면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT Customers.CustomerName, Orders.OrderNumber
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
이 쿼리는 "Customers" 테이블과 "Orders" 테이블을 CustomerID 열을 기준으로 조인하고, 일치하는 고객의 이름과 주문 번호를 선택합니다.
1] 2개의 테이블 정보를 하나의 테이블로 통합
INSERT INTO 통합할 테이블 (column1, column2, column3, ...)
SELECT 첫번째 테이블.column1, 첫번째 테이블.column2, 두번째 테이블.column3, ...
FROM 첫번째 테이블
INNER JOIN 두번째 테이블 ON 첫번째 테이블.uid = 두번째 테이블.uid;
2) LEFT JOIN
MySQL에서 LEFT JOIN은 왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 조인하는 기능입니다. 왼쪽 테이블의 모든 행이 결과에 포함되며, 오른쪽 테이블에서 일치하는 행이 있을 경우 해당 행의 데이터도 함께 가져옵니다.
LEFT JOIN의 기본 구문은 다음과 같습니다:
SELECT 열 FROM 왼쪽테이블
LEFT JOIN 오른쪽테이블
ON 왼쪽테이블.열 = 오른쪽테이블.열
여기서 왼쪽테이블과 오른쪽테이블은 조인할 테이블의 이름을 나타냅니다. 열은 두 테이블 간의 관계를 맺을 열의 이름입니다.
예를 들어, "Customers" 테이블과 "Orders" 테이블을 CustomerID 열을 기준으로 LEFT JOIN하여 고객과 그들의 주문을 선택하려면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT Customers.CustomerName, Orders.OrderNumber
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
이 쿼리는 "Customers" 테이블의 모든 고객을 선택하고, CustomerID가 일치하는 경우 "Orders" 테이블에서 해당 고객의 주문 번호를 함께 가져옵니다. 만약 오른쪽 테이블인 "Orders"에 일치하는 데이터가 없을 경우에도 왼쪽 테이블의 데이터는 결과에 포함됩니다. 다시 말해, "Customers" 테이블의 행은 모두 선택되며, 오른쪽 테이블의 데이터가 없을 경우에는 NULL 값이 반환됩니다.
LEFT JOIN은 주로 왼쪽 테이블의 모든 데이터를 유지하면서 오른쪽 테이블의 일치하는 데이터를 가져올 때 사용됩니다. 이를 통해 왼쪽 테이블과 오른쪽 테이블 간의 관계를 유지하면서 데이터를 조작하고 분석하는 데 유용합니다.
3) RIGHT JOIN
MySQL에서 RIGHT JOIN은 오른쪽 테이블의 모든 행과 왼쪽 테이블에서 일치하는 행을 조인하는 기능입니다. 오른쪽 테이블의 모든 행이 결과에 포함되며, 왼쪽 테이블에서 일치하는 행이 있을 경우 해당 행의 데이터도 함께 가져옵니다.
RIGHT JOIN의 기본 구문은 다음과 같습니다:
SELECT 열 FROM 왼쪽테이블
RIGHT JOIN 오른쪽테이블
ON 왼쪽테이블.열 = 오른쪽테이블.열
여기서 왼쪽테이블과 오른쪽테이블은 조인할 테이블의 이름을 나타냅니다. 열은 두 테이블 간의 관계를 맺을 열의 이름입니다.
예를 들어, "Customers" 테이블과 "Orders" 테이블을 CustomerID 열을 기준으로 RIGHT JOIN하여 고객과 그들의 주문을 선택하려면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT Customers.CustomerName, Orders.OrderNumber
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
이 쿼리는 "Orders" 테이블의 모든 주문을 선택하고, CustomerID가 일치하는 경우 "Customers" 테이블에서 해당 고객의 이름을 함께 가져옵니다. 오른쪽 테이블인 "Orders"의 모든 행이 결과에 포함되며, 왼쪽 테이블인 "Customers"에서 일치하는 데이터가 없을 경우에는 NULL 값이 반환됩니다.
RIGHT JOIN은 주로 오른쪽 테이블의 모든 데이터를 유지하면서 왼쪽 테이블에서 일치하는 데이터를 가져올 때 사용됩니다. 오른쪽 테이블과 왼쪽 테이블 간의 관계를 유지하면서 데이터를 조작하고 분석하는 데 유용합니다.
4) 부분 조인
MySQL에서 "부분 조인"은 하나 이상의 테이블에서 필요한 행만 선택하여 조인하는 기능을 의미합니다. 부분 조인은 조인 연산을 수행하기 전에 테이블의 일부 행을 선택하여 처리 속도를 향상시키는 데 사용됩니다.
MySQL에서 부분 조인을 수행하는 방법은 여러 가지가 있습니다. 그 중 대표적인 방법은 서브쿼리나 임시 테이블을 사용하는 것입니다.
서브쿼리를 사용한 부분 조인의 예시를 살펴보겠습니다. "Customers" 테이블과 "Orders" 테이블에서 일치하는 고객과 주문을 선택하되, 주문 금액이 특정 금액보다 큰 경우에만 조인하고자 한다면 다음과 같은 쿼리를 사용할 수 있습니다:
SELECT Customers.CustomerName, Orders.OrderNumber
FROM Customers
WHERE Customers.CustomerID IN (
SELECT Orders.CustomerID
FROM Orders
WHERE Orders.OrderAmount > 1000
)
이 쿼리는 서브쿼리를 사용하여 주문 금액이 1000보다 큰 주문의 고객 ID를 먼저 선택한 후, 해당 고객의 정보를 "Customers" 테이블에서 가져옵니다. 이를 통해 조인할 필요가 있는 행만 선택하여 처리 속도를 향상시킬 수 있습니다.
또한, 부분 조인을 위해 임시 테이블을 사용하는 방법도 있습니다. 임시 테이블에 필요한 행을 먼저 저장한 후, 이를 기준으로 조인을 수행합니다. 이를 위해서는 CREATE TEMPORARY TABLE 문과 INSERT INTO 문을 사용하여 임시 테이블을 생성하고 데이터를 저장해야 합니다.
부분 조인은 큰 데이터셋에서 조인 연산을 수행할 때 성능을 향상시키는 유용한 기법 중 하나입니다. 서브쿼리나 임시 테이블을 활용하여 필요한 행을 먼저 선택하고, 그 후에 조인을 수행하는 방식으로 사용할 수 있습니다.
'DATABASE > MySQL & MariaDB' 카테고리의 다른 글
[mysql] 덤프 및 임포트 방법(데이터 이동) (0) | 2024.05.20 |
---|---|
[mysql] 내용 입력, 수정, 삭제 (0) | 2024.05.11 |
[mysql] 테이블 생성, 수정, 삭제 (0) | 2024.05.11 |
mysql 설치 (1) | 2024.05.11 |