[알고리즘]_SQL 기본 문법

hanseungjune·2023년 3월 16일
0

알고리즘

목록 보기
6/33
post-thumbnail

📌 SELECT

데이터베이스에서 데이터를 조회할 때 사용하는 구문입니다. 테이블에서 원하는 열(column)을 선택하여 가져올 수 있습니다.

SELECT column1, column2, ...
FROM table_name;

예를 들어, employee 테이블에서 name, age, salary 열을 선택하여 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee;

📌 WHERE

WHERE 구문은 SELECT 구문에서 조회할 조건을 지정할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
WHERE condition;

예를 들어, employee 테이블에서 salary 열이 50000 이상인 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
WHERE salary >= 50000;

📌 ORDER BY

ORDER BY 구문은 SELECT 구문에서 결과를 정렬할 때 사용합니다. 오름차순(ASC) 또는 내림차순(DESC)으로 정렬할 수 있습니다.

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name ASC|DESC;

예를 들어, employee 테이블에서 salary 열을 오름차순으로 정렬하여 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
ORDER BY salary ASC;

📌 GROUP BY

GROUP BY 구문은 특정 열을 기준으로 그룹화할 때 사용합니다.

SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1;

예를 들어, employee 테이블에서 department 별로 그룹화하여 인원 수를 조회하는 SQL 구문은 다음과 같습니다.

SELECT department, COUNT(*)
FROM employee
GROUP BY department;

📌 JOIN

JOIN 구문은 두 개 이상의 테이블에서 데이터를 연결하여 조회할 때 사용합니다.

SELECT column1, column2, ...
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;

예를 들어, employee 테이블과 department 테이블을 department_id 열로 연결하여 조회하는 SQL 구문은 다음과 같습니다.

SELECT employee.name, employee.age, department.name
FROM employee
JOIN department
ON employee.department_id = department.id;

📌 SUBQUERY

SUBQUERY 구문은 SELECT 구문 안에 또 다른 SELECT 구문을 사용하는 방식으로, 한 번의 쿼리로 여러 개의 데이터를 조회할 수 있습니다.

SELECT column1, column2, ...
FROM table_name
WHERE column_name operator
(SELECT column_name
FROM table_name
WHERE condition);

예를 들어, employee 테이블에서 salary가 평균 이상인 직원들의 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
WHERE salary >=
(SELECT AVG(salary)
FROM employee);

📌 UNION

UNION 구문은 두 개 이상의 SELECT 구문의 결과를 결합하여 하나의 결과를 만듭니다.

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

예를 들어, employee 테이블과 customer 테이블에서 이름과 나이를 결합하여 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age
FROM employee
UNION
SELECT name, age
FROM customer;

📌 COUNT

COUNT 함수는 테이블에서 특정 열의 값의 개수를 세는 함수입니다.

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

예를 들어, employee 테이블에서 salary 값이 50000 이상인 데이터의 개수를 조회하는 SQL 구문은 다음과 같습니다.

SELECT COUNT(*)
FROM employee
WHERE salary >= 50000;

📌 MAX, MIN, AVG, SUM

MAX, MIN, AVG, SUM 함수는 각각 최댓값, 최솟값, 평균값, 합계를 구하는 함수입니다.

SELECT MAX(column_name)
FROM table_name
WHERE condition;

SELECT MIN(column_name)
FROM table_name
WHERE condition;

SELECT AVG(column_name)
FROM table_name
WHERE condition;

SELECT SUM(column_name)
FROM table_name
WHERE condition;

예를 들어, employee 테이블에서 salary 값의 최댓값, 최솟값, 평균값, 합계를 조회하는 SQL 구문은 다음과 같습니다.

SELECT MAX(salary), MIN(salary), AVG(salary), SUM(salary)
FROM employee;

📌 LIKE

LIKE 연산자는 문자열 패턴을 검색할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;

예를 들어, employee 테이블에서 이름이 "홍길동"인 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
WHERE name LIKE '홍길동';

📌 IN

IN 연산자는 열 값의 범위를 검색할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);

예를 들어, employee 테이블에서 부서가 1 또는 2인 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
WHERE department_id IN (1, 2);

📌 HAVING

HAVING 구문은 GROUP BY 구문으로 그룹화된 데이터에서 조건에 맞는 데이터를 검색할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
GROUP BY column1, column2, ...
HAVING condition;

예를 들어, employee 테이블에서 부서별 평균 급여가 50000 이상인 부서의 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT department_id, AVG(salary)
FROM employee
GROUP BY department_id
HAVING AVG(salary) >= 50000;

📌 DISTINCT

DISTINCT 키워드는 중복 값을 제거하여 조회할 때 사용합니다

SELECT DISTINCT column_name
FROM table_name;

예를 들어, employee 테이블에서 중복되지 않은 부서 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT DISTINCT department_id
FROM employee;

📌 LIMIT

LIMIT 구문은 조회할 데이터의 개수를 제한할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
LIMIT count;

예를 들어, employee 테이블에서 상위 5개의 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
LIMIT 5;

📌 EXISTS

EXISTS 구문은 서브쿼리에서 반환된 결과가 존재하는지 여부를 검사할 때 사용합니다.

SELECT column1, column2, ...
FROM table_name
WHERE EXISTS (SELECT column1 FROM table_name WHERE condition);

예를 들어, employee 테이블에서 salary가 50000 이상인 데이터가 존재하는 부서의 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT department_id, name
FROM department
WHERE EXISTS (SELECT * FROM employee WHERE employee.department_id = department.id AND employee.salary >= 50000);

📌 CASE

CASE 구문은 특정 조건을 검사하여 값을 반환할 때 사용합니다.

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END;

예를 들어, employee 테이블에서 salary 값에 따라 등급을 지정하는 SQL 구문은 다음과 같습니다.

SELECT name, salary,
CASE
    WHEN salary >= 100000 THEN 'A'
    WHEN salary >= 70000 THEN 'B'
    WHEN salary >= 50000 THEN 'C'
    ELSE 'D'
END AS grade
FROM employee;

📌 JOIN

JOIN 구문은 두 개 이상의 테이블에서 데이터를 결합할 때 사용합니다.

SELECT column1, column2, ...
FROM table1
JOIN table2
ON table1.column = table2.column;

예를 들어, employee 테이블과 department 테이블에서 부서별 직원 정보를 조회하는 SQL 구문은 다음과 같습니다.

📌 INNER JOIN

INNER JOIN은 JOIN 구문과 동일하게 두 개 이상의 테이블에서 데이터를 결합하지만, 교집합에 해당하는 데이터만 반환합니다.

SELECT column1, column2, ...
FROM table1
INNER JOIN table2
ON table1.column = table2.column;

예를 들어, employee 테이블과 department 테이블에서 직원 정보와 부서 정보가 모두 존재하는 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT employee.name, employee.salary, department.name
FROM employee
INNER JOIN department
ON employee.department_id = department.id;

📌 LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 데이터를 모두 포함하고, 오른쪽 테이블의 데이터가 없는 경우 NULL 값을 반환합니다.

SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;

예를 들어, employee 테이블과 department 테이블에서 모든 직원 정보와 부서 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT employee.name, employee.salary, department.name
FROM employee
LEFT JOIN department
ON employee.department_id = department.id;

📌 RIGHT JOIN

RIGHT JOIN은 왼쪽 테이블의 데이터가 없는 경우 NULL 값을 반환하고, 오른쪽 테이블의 데이터를 모두 포함합니다.

SELECT column1, column2, ...
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;

예를 들어, employee 테이블과 department 테이블에서 모든 부서 정보와 직원 정보를 조회하는 SQL 구문은 다음과 같습니다.

SELECT employee.name, employee.salary, department.name
FROM employee
RIGHT JOIN department
ON employee.department_id = department.id;

📌 UPDATE

UPDATE 구문은 테이블의 데이터를 수정할 때 사용합니다.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

예를 들어, employee 테이블에서 name이 '홍길동'인 직원의 salary 값을 60000으로 수정하는 SQL 구문은 다음과 같습니다.

UPDATE employee
SET salary = 60000
WHERE name = '홍길동';

📌 DELETE

DELETE 구문은 테이블에서 데이터를 삭제할 때 사용합니다.

DELETE FROM table_name
WHERE condition;

예를 들어, employee 테이블에서 salary 값이 50000 미만인 데이터를 삭제하는 SQL 구문은 다음과 같습니다.

DELETE FROM employee
WHERE salary < 50000;

📌 INSERT INTO

INSERT INTO 구문은 테이블에 새로운 데이터를 추가할 때 사용합니다.

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

예를 들어, employee 테이블에 새로운 직원 정보를 추가하는 SQL 구문은 다음과 같습니다.

INSERT INTO employee (name, age, salary, department_id)
VALUES ('김철수', 30, 55000, 2);

📌 CREATE TABLE

CREATE TABLE 구문은 새로운 테이블을 생성할 때 사용합니다.

CREATE TABLE table_name (
    column1 datatype1 constraints,
    column2 datatype2 constraints,
    ...
);

예를 들어, employee 테이블을 생성하는 SQL 구문은 다음과 같습니다.

CREATE TABLE employee (
    id INT PRIMARY KEY,
    name VARCHAR(255),
    age INT,
    salary INT,
    department_id INT,
    FOREIGN KEY (department_id) REFERENCES department(id)
);

📌 DROP TABLE

DROP TABLE 구문은 테이블을 삭제할 때 사용합니다.

DROP TABLE table_name;

예를 들어, employee 테이블을 삭제하는 SQL 구문은 다음과 같습니다.

DROP TABLE employee;

📌 ALTER TABLE

ALTER TABLE 구문은 테이블의 구조를 수정할 때 사용합니다.

ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name
DROP COLUMN column_name;

ALTER TABLE table_name
ALTER COLUMN column_name datatype;

예를 들어, employee 테이블에 새로운 열을 추가하는 SQL 구문은 다음과 같습니다.

ALTER TABLE employee
ADD email VARCHAR(255);

📌 TRUNCATE

TRUNCATE 구문은 테이블의 모든 행을 삭제합니다. 테이블 구조는 그대로 유지됩니다.

TRUNCATE TABLE table_name;

예를 들어, employee 테이블의 모든 데이터를 삭제하는 SQL 구문은 다음과 같습니다.

TRUNCATE TABLE employee;

📌 BETWEEN

두 값 사이에 속하는 값을 검색할 때 사용되는 연산자입니다.

SELECT column1, column2, ...
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

예를 들어, employee 테이블에서 salary 값이 30000 이상 50000 이하인 데이터를 조회하는 SQL 구문은 다음과 같습니다.

SELECT name, age, salary
FROM employee
WHERE salary BETWEEN 30000 AND 50000;

📌

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글