SQL(Structured Query Language)은 데이터베이스 관리 및 조작을 위한 표준 언어입니다.
`SELECT`
데이터베이스에서 데이터를 조회하는 명령어입니다.
# SELECT column1, column2 FROM table_name;
SELECT first_name, last_name FROM employees;
이 명령어는 `employees` 테이블에서 `first_name`과 `last_name`을 조회합니다.
`INSERT`
새 데이터를 테이블에 삽입합니다.
# INSERT INTO table_name (column1, column2) VALUES (value1, value2);
INSERT INTO employees (first_name, last_name, age) VALUES ('John', 'Doe', 30);
이 명령어는 `employees` 테이블에 새로운 직원 데이터를 삽입합니다.
`UPDATE`
기존 데이터를 수정합니다.
# UPDATE table_name SET column1 = value1 WHERE condition;
UPDATE employees SET age = 31 WHERE first_name = 'John' AND last_name = 'Doe';
이 명령어는 `employees` 테이블에서 `John Doe`의 나이를 31로 업데이트합니다.
`DELETE`
데이터를 삭제합니다.
# DELETE FROM table_name WHERE condition;
DELETE FROM employees WHERE first_name = 'John' AND last_name = 'Doe';
이 명령어는 `employees` 테이블에서 `John Doe`의 데이터를 삭제합니다.
`CREATE TABLE`
새로운 테이블을 생성합니다.
# CREATE TABLE table_name (
# column1 datatype,
# column2 datatype,
# ...
# );
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
age INT
);
CREATE TABLE employees | 이 명령어는 `employees` 테이블을 생성합니다. CREATE TABLE 명령어는 새로운 테이블을 데이터베이스에 생성할 때 사용되며 employees는 생성될 테이블의 이름입니다. |
id INT PRIMARY KEY | id는 테이블의 첫 번째 열이며, 이 열은 각 직원의 고유 식별자를 나타냅니다. INT는 이 열이 정수형 데이터 타입임을 나타냅니다. PRIMARY KEY는 이 열이 테이블의 기본 키(primary key)로 설정됨을 의미합니다. 기본 키는 테이블 내에서 각 행을 고유하게 식별하며, 각 값은 유일해야 하고 NULL 값을 가질 수 없습니다. |
first_name VARCHAR(50) | first_name은 테이블의 두 번째 열이며, 각 직원의 이름을 나타냅니다. VARCHAR(50)는 이 열이 최대 50자의 가변 길이 문자열을 저장할 수 있음을 나타냅니다. |
last_name VARCHAR(50) | last_name은 테이블의 세 번째 열이며, 각 직원의 성을 나타냅니다. VARCHAR(50)는 이 열이 최대 50자의 가변 길이 문자열을 저장할 수 있음을 나타냅니다. |
age INT | age는 테이블의 네 번째 열이며, 각 직원의 나이를 나타냅니다. INT는 이 열이 정수형 데이터 타입임을 나타냅니다. |
`ALTER TABLE`
기존 테이블을 수정합니다.
# ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE employees ADD email VARCHAR(100);
이 명령어는 `employees` 테이블에 `email` 열을 추가합니다.
`DROP TABLE`
테이블을 삭제합니다.
# DROP TABLE table_name;
DROP TABLE employees;
이 명령어는 `employees` 테이블을 삭제합니다.
`CREATE INDEX`
테이블의 특정 열에 인덱스를 생성합니다.
# CREATE INDEX index_name ON table_name (column_name);
CREATE INDEX idx_last_name ON employees (last_name);
이 명령어는 `employees` 테이블의 `last_name` 열에 인덱스를 생성합니다.
`JOIN`
두 개 이상의 테이블을 결합하여 데이터를 조회합니다.
# SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
SELECT employees.first_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
이 명령어는 `employees` 테이블과 `departments` 테이블을 결합하여 각 직원의 이름과 부서명을 조회합니다.
SELECT employees.first_name, departments.department_name | SELECT 명령어는 데이터베이스에서 특정 열을 조회할 때 사용됩니다. employees.first_name은 employees 테이블에서 각 직원의 이름을 조회합니다. departments.department_name은 departments 테이블에서 각 부서의 이름을 조회합니다. |
FROM employees | 조회할 데이터의 기본 테이블을 employees로 지정합니다. |
INNER JOIN departments |
INNER JOIN 명령어는 두 테이블을 결합할 때 사용됩니다. 여기서는 employees와 departments 테이블을 결합합니다. INNER JOIN은 두 테이블에서 조인 조건에 맞는 행만 결합합니다. |
ON employees.department_id = departments.id: |
ON 절은 조인 조건을 지정합니다. employees 테이블의 department_id 열과 departments 테이블의 id 열이 일치하는 행들만 결합합니다. 이 조건을 만족하는 행들만 결합하여 결과 집합에 포함됩니다. |
요약하면, 이 쿼리는 employees 테이블과 departments 테이블을 department_id와 id를 기준으로 내부 조인하여, 각 직원의 이름(first_name)과 해당 직원이 속한 부서의 이름(department_name)을 조회합니다. 결합된 결과는 각 직원의 이름과 그 직원이 속한 부서 이름을 포함하는 테이블 형태로 반환됩니다.
`GROUP BY`
데이터를 그룹화하여 집계합니다.
# SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id;
이 쿼리는 employees 테이블에서 각 department_id별로 그룹화한 후, 각 그룹(부서)에 속한 직원 수를 세어 부서 ID와 해당 부서의 직원 수를 반환합니다. 결과는 각 부서의 ID와 해당 부서에 속한 직원 수로 이루어진 테이블 형태로 나타납니다.
SELECT department_id, COUNT(*) | SELECT 명령어는 데이터베이스에서 데이터를 조회할 때 사용됩니다. department_id는 조회할 열로, 각 직원이 속한 부서의 ID를 나타냅니다. COUNT(*)는 각 그룹에 속한 행(row)의 수를 셉니다. 여기서 *는 모든 열을 의미하며, 즉 각 부서에 속한 전체 직원 수를 계산합니다. |
FROM employees | 이 부분은 employees 테이블에서 데이터를 조회할 것임을 지정합니다. |
GROUP BY department_id | GROUP BY 명령어는 결과를 특정 열을 기준으로 그룹화할 때 사용됩니다. department_id를 기준으로 그룹화하여, 동일한 department_id를 가진 행들을 하나의 그룹으로 묶습니다. 그룹화된 각 그룹에 대해 COUNT(*)가 적용되어, 각 부서에 속한 직원 수를 계산합니다. |
'Programming' 카테고리의 다른 글
AJAX란? (0) | 2024.06.21 |
---|---|
AJS: Atlassian JavaScript Library (0) | 2024.06.21 |
리눅스 명령어 (E) (0) | 2024.06.20 |
리눅스 기본명령어 (D) (0) | 2024.06.20 |
리눅스 기본명령어 (C) (0) | 2024.06.20 |