데이터베이스에서 데이터를 조회할 때 사용하는 구문입니다. 테이블에서 원하는 열(column)을 선택하여 가져올 수 있습니다.
SELECT column1, column2, ...
FROM table_name;
예를 들어, employee 테이블에서 name, age, salary 열을 선택하여 조회하는 SQL 구문은 다음과 같습니다.
SELECT name, age, salary
FROM employee;
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 구문은 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 구문은 특정 열을 기준으로 그룹화할 때 사용합니다.
SELECT column1, COUNT(column2)
FROM table_name
GROUP BY column1;
예를 들어, employee 테이블에서 department 별로 그룹화하여 인원 수를 조회하는 SQL 구문은 다음과 같습니다.
SELECT department, COUNT(*)
FROM employee
GROUP BY department;
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 구문은 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 구문은 두 개 이상의 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 함수는 테이블에서 특정 열의 값의 개수를 세는 함수입니다.
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
예를 들어, employee 테이블에서 salary 값이 50000 이상인 데이터의 개수를 조회하는 SQL 구문은 다음과 같습니다.
SELECT COUNT(*)
FROM employee
WHERE salary >= 50000;
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 연산자는 문자열 패턴을 검색할 때 사용합니다.
SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;
예를 들어, employee 테이블에서 이름이 "홍길동"인 데이터를 조회하는 SQL 구문은 다음과 같습니다.
SELECT name, age, salary
FROM employee
WHERE name LIKE '홍길동';
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 구문은 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 키워드는 중복 값을 제거하여 조회할 때 사용합니다
SELECT DISTINCT column_name
FROM table_name;
예를 들어, employee 테이블에서 중복되지 않은 부서 정보를 조회하는 SQL 구문은 다음과 같습니다.
SELECT DISTINCT department_id
FROM employee;
LIMIT 구문은 조회할 데이터의 개수를 제한할 때 사용합니다.
SELECT column1, column2, ...
FROM table_name
LIMIT count;
예를 들어, employee 테이블에서 상위 5개의 데이터를 조회하는 SQL 구문은 다음과 같습니다.
SELECT name, age, salary
FROM employee
LIMIT 5;
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
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 구문은 두 개 이상의 테이블에서 데이터를 결합할 때 사용합니다.
SELECT column1, column2, ...
FROM table1
JOIN table2
ON table1.column = table2.column;
예를 들어, employee 테이블과 department 테이블에서 부서별 직원 정보를 조회하는 SQL 구문은 다음과 같습니다.
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은 왼쪽 테이블의 데이터를 모두 포함하고, 오른쪽 테이블의 데이터가 없는 경우 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은 왼쪽 테이블의 데이터가 없는 경우 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 table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
예를 들어, employee 테이블에서 name이 '홍길동'인 직원의 salary 값을 60000으로 수정하는 SQL 구문은 다음과 같습니다.
UPDATE employee
SET salary = 60000
WHERE name = '홍길동';
DELETE 구문은 테이블에서 데이터를 삭제할 때 사용합니다.
DELETE FROM table_name
WHERE condition;
예를 들어, employee 테이블에서 salary 값이 50000 미만인 데이터를 삭제하는 SQL 구문은 다음과 같습니다.
DELETE FROM employee
WHERE salary < 50000;
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 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 table_name;
예를 들어, employee 테이블을 삭제하는 SQL 구문은 다음과 같습니다.
DROP TABLE employee;
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 TABLE table_name;
예를 들어, employee 테이블의 모든 데이터를 삭제하는 SQL 구문은 다음과 같습니다.
TRUNCATE TABLE employee;
두 값 사이에 속하는 값을 검색할 때 사용되는 연산자입니다.
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;