본문 바로가기
Programming

SQL 명령어

by 느리게 걷는 즐거움 2024. 6. 20.
반응형


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' 카테고리의 다른 글

UML - ER Diagram  (0) 2024.06.21
UML - Class Diagram  (0) 2024.06.21
리눅스 명령어 (E)  (0) 2024.06.20
리눅스 기본명령어 (D)  (0) 2024.06.20
리눅스 기본명령어 (C)  (0) 2024.06.20