1. 데이터베이스(Database)와 테이블(Table)
- 데이터베이스(Database): 여러 테이블을 포함하는 큰 틀
- 테이블(Table): 데이터가 행(row)과 열(column)로 구성된 구조로 저장되는 곳.
- 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타냄.
2. SQL 기본 명령어
SQL에서는 데이터베이스와 테이블을 생성하고, 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행.
2.1. 데이터베이스 생성
데이터베이스를 새로 생성할 때는 CREATE DATABASE 명령어를 사용.
CREATE DATABASE 데이터베이스이름;
2.2. 테이블 생성
테이블을 생성할 때는 CREATE TABLE 명령어를 사용.
CREATE TABLE 테이블이름 (
컬럼1 데이터타입,
컬럼2 데이터타입,
...
);
예시:
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT
);
해석 : students 라는 이름의 테이블을 생성합니다. 이 테이블에는 세 개의 열이 있습니다:
- id: 정수형 데이터를 저장하는 열 (INT).
- name: 최대 50자까지의 문자열을 저장할 수 있는 열 (VARCHAR(50)).
- age: 정수형 데이터를 저장하는 열 (INT).
2.3. 데이터 조회 (SELECT)
테이블에서 데이터를 조회할 때는 SELECT 명령어를 사용.
SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
예시:
SELECT name, age FROM students;
//students 테이블에서 name과 age 열의 데이터를 조회합니다.
- WHERE 절: 특정 조건에 맞는 데이터만 조회합니다.
- SELECT name, age FROM students WHERE age > 20;
//students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
- SELECT name, age FROM students WHERE age > 20;
- ORDER BY 절: 조회한 데이터를 정렬합니다.
- SELECT name, age FROM students ORDER BY age DESC;
//students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다. 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
- SELECT name, age FROM students ORDER BY age DESC;
- LIMIT 절: 조회할 데이터의 개수를 제한합니다.
- SELECT name, age FROM students LIMIT 5;
//students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.
- SELECT name, age FROM students LIMIT 5;
2.4. 데이터 삽입 (INSERT)
테이블에 새로운 데이터를 추가할 때는 INSERT INTO 명령어를 사용.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)
//예시
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);
2.5. 데이터 수정 (UPDATE)
기존 데이터를 수정할 때는 UPDATE 명령어를 사용합니다.
UPDATE 테이블이름 SET 컬럼1 = 값1, 컬럼2 = 값2 WHERE 조건;
//예시
UPDATE students SET age = 24 WHERE id = 1;
//students 테이블에서 id가 1인 학생의 age 값을 24로 수정
2.6. 데이터 삭제 (DELETE)
테이블에서 데이터를 삭제할 때는 DELETE FROM 명령어를 사용합니다.
DELETE FROM 테이블이름 WHERE 조건;
예시:
DELETE FROM students WHERE id = 1
//students 테이블에서 id가 1인 행을 삭제
3. 기본 키와 외래 키
- 기본 키(Primary Key): 테이블에서 각 행을 고유하게 식별하는 열(또는 열의 조합).
- 외래 키(Foreign Key): 다른 테이블의 기본 키를 참조하는 열로, 테이블 간의 관계.
예시:
CREATE TABLE orders (
order_id INT PRIMARY KEY,
student_id INT,
FOREIGN KEY (student_id) REFERENCES students(id)
);
해석 : orders 라는 이름의 테이블을 생성합니다. 이 테이블에는 두 개의 열이 있습니다:
- order_id: 정수형 데이터를 저장하는 열로, 이 열이 기본 키(PRIMARY KEY)입니다. 즉, orders 테이블의 각 행을 고유하게 식별합니다.
- student_id: 정수형 데이터를 저장하는 열로, students 테이블의 id를 참조하는 외래 키(FOREIGN KEY)입니다. 이를 통해 orders 테이블의 각 주문이 어떤 학생과 관련이 있는지를 나타낼 수 있습니다.
4. 집계 함수(Aggregate Functions)
집계 함수는 여러 행의 값을 계산하여 하나의 결과를 반환하는 함수.
- COUNT(): 행의 개수를 셉니다.
- SELECT COUNT(*) FROM students;
- SUM(): 숫자 값의 합을 계산합니다.
- SELECT SUM(age) FROM students;
- AVG(): 숫자 값의 평균을 계산합니다.
- SELECT AVG(age) FROM students;
- MAX(): 최대 값을 찾습니다.
- SELECT MAX(age) FROM students;
- MIN(): 최소 값을 찾습니다.
- SELECT MIN(age) FROM students;
5. SQL 조건문
- AND: 두 조건이 모두 참일 때 사용합니다.
- SELECT * FROM students WHERE age > 20 AND name = 'Alice';
- OR: 두 조건 중 하나만 참이면 사용합니다.
- SELECT * FROM students WHERE age > 20 OR name = 'Bob';
- NOT: 조건이 거짓일 때 사용합니다.
- SELECT * FROM students WHERE NOT age > 20;
마무리 말
오늘은 Dbeaver를 다운로드 받고 기본적인 SQL 기초 명령어를 공부하는 날이었습니다.
Dbeaver를 실행해보고 데이터 불러오기까지는 성공하였으나, 명령어 입력 방법을 몰라서 헤매었습니다.
아직 SQL 기초 강의를 시청하지 못한 상태이기 때문에 시청 후엔 활용 가능하다고 생각합니다.
아쉽게도 오늘은 쿼리를 작성하지 못했지만, 내일은 완성작을 가져와서 포스팅 하도록 하겠습니다.
감사합니다!
'🔥 공부 > SQL 공부' 카테고리의 다른 글
[SQL] 내일배움캠프 퀘스트 5일차_ 3)과 4) (3) | 2024.11.15 |
---|---|
[SQL] 내일배움캠프 퀘스트 4일차_ 2) 이제 좀 벌었으니 flex 한 번 해볼까요?! (1) | 2024.11.14 |
[SQL] 내일배움캠프 퀘스트 3일차_ 1) 돈을 벌기 위해 일을 합시다! (1) | 2024.11.14 |
[SQL] 내일배움캠프 퀘스트 2일차_AI 용어 정리 (7) | 2024.11.12 |
[SQL] 내일배움캠프 퀘스트 1일차_스타터 노트 작성 (0) | 2024.11.12 |