MakerHyeon

[SQL Tutorial] SQL 기본명령어-4 본문

MySQL

[SQL Tutorial] SQL 기본명령어-4

유쾌한고등어 2023. 5. 25. 13:06

[SQL Tutorial] SQL 기본명령어-4

 

● GROUP BY

- 동일한 값을 가진 행을 요약 행으로 그룹화

- 집계 함수( COUNT(), MAX(), MIN(), SUM(), AVG())와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

 

● HAVING

- WHERE 절에서는 집계함수를 사용 할 수 없기때문에, HAVING 절은 집계함수를 가지고 조건비교를 할 때 사용
- HAVING절은 GROUP BY절과 함께 사용됨

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

 

● EXISTS

- 연산자 EXISTS는 하위 쿼리에 레코드가 있는지 테스트하는 데 사용됨

- EXISTS 하위 쿼리가 하나 이상의 레코드를 반환하면 연산자는 TRUE를 반환

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

 

● ANY

- 결과로 부울 값을 반환
- 하위 쿼리 값 중 하나라도 조건을 충족하면 TRUE를 반환

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
  FROM table_name
  WHERE condition);

 

● ALL

- 결과로 부울 값을 반환합니다.
- 모든 하위 쿼리 값이 조건을 충족하면 TRUE를 반환
- SELECT, WHERE및 HAVING문과 함께 사용

SELECT ALL column_name(s)
FROM table_name
WHERE condition;
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
  (SELECT column_name
  FROM table_name
  WHERE condition);

 

● SELECT INTO

- 한 테이블의 데이터를 새 테이블로 복사

SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

 

● INSERT INTO SELECT

- 한 테이블에서 데이터를 복사하여 다른 테이블에 삽입
- 이때, 소스 및 대상 테이블의 데이터 유형이 일치해야 함
- 대상 테이블의 기존 레코드는 영향을 받지 않음.

!-- 한 테이블의 모든 열을 다른 테이블로 복사
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
!-- 한 테이블에서 다른 테이블로 일부 열만 복사
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

 

CASE

- 조건을 통과하고 첫 번째 조건이 충족되면 값을 반환합니다(예: if-then-else 문)

- 조건이 참이면 읽기를 중지하고 결과를 반환합니다. 참인 조건이 없으면 절의 값을 반환 ELSE

- 부분이 없고 ELSE조건이 참이면 NULL을 반환

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

 

NULL

- IFNULL() or COALESCE(): 표현식이 NULL인 경우 대체 값을 반환

SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

 

● STORE PROCEDURE 

- 저장할 수 있는 준비된 SQL 코드로, 코드를 반복해서 재사용할 수 있음

- 반복해서 작성하는 SQL 쿼리가 있는 경우, 저장 프로시저로 저장한 다음 호출하여 실행하면 됨

- 저장 프로시저가 전달된 매개 변수 값에 따라 작동할 수 있도록 매개 변수를 저장 프로시저에 전달할 수도 있음

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
EXEC procedure_name;

 

- EXAMPLE

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

 

위의 저장 프로시저를 다음과 같이 실행

EXEC SelectAllCustomers;

 

● SQL OPERATER 는 아래를 참고

https://www.w3schools.com/sql/sql_operators.asp

 

SQL Operators

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

 

'MySQL' 카테고리의 다른 글

[SQL Tutorial] SQL 기본명령어-3  (0) 2023.05.17
[SQL Tutorial] SQL 기본명령어-2  (0) 2023.05.09
[SQL Tutorial] SQL 기본명령어-1  (0) 2023.05.04
Comments