SQL

SQL기초

fw3d 2025. 3. 22. 09:51

SQL 기초

1. 데이터베이스(Database)와 테이블(Table)

데이터베이스(Database): 여러 테이블을 포함하는 큰 틀입니다.
테이블(Table): 데이터가 행(row)과 열(column)로 구성된 구조로 저장되는 곳입니다. 각 행은 하나의 데이터 레코드를 나타내며, 각 열은 데이터의 속성을 나타냅니다.
 

열= 컬럼=필드 

2. SQL 기본 명령어

SQL에서는 데이터베이스와 테이블을 생성하고, 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있습니다.

 

DDL data definition language  : 데이터베이스의 구조를 정의하고 관리하는 명령어이다. 

주요명령어

CREATE 테이블, 데이터베이스, 인덱스 등을 생성한다 

ALTER 기존의 테이블이나 객체를 수정 한다

DROP 테이블, 데이터베이스 등을 삭제한다 (구조까지 삭제)

TRUNCATE 테이블의 데이터를 모두 삭제한다(구조는 유지)

 

 

DML data manipulation language 데이터베이스의 데이터를 조작하는 명령어이다.

주요명령어

INSERT 데이터를 추가한다.

UPDATE 데이터를 수정한다

DELETE 데이터를 행단위로 삭제한다

SELECT 데이터를 조회한다

 

DCL data control language 데이터베이스의 접근 권한을 관리하는 명령어이다. 

GRANT 사용자에게 특정권한을 부여한다.

REVOKE 사용자로부터 권한을 회수한다

 

 

2.1. 데이터베이스 생성

데이터베이스를 새로 생성할 때는 CREATE DATABASE 명령어를 사용합니다.
CREATE DATABASE First_database

예약어, 숫자로시작, 공백    불가

 

2.2. 테이블 생성

테이블을 생성할 때는 CREATE TABLE 명령어를 사용합니다.
CREATE TABLE 테이블이름 ( 컬럼1 데이터타입, 컬럼2 데이터타입, ... );
SQL
복사
예시:
CREATE TABLE students ( id INT, name VARCHAR(50), age INT );
SQL
복사
해석 : students 라는 이름의 테이블을 생성합니다. 이 테이블에는 세 개의 열이 있습니다:
id: 정수형 데이터를 저장하는 열 (INT).
name: 최대 50자까지의 문자열을 저장할 수 있는 열 (VARCHAR(50)).
age: 정수형 데이터를 저장하는 열 (INT).
 

AUTO_INCREMENT  자동으로 고유한값이 증가하여 행에추가된다.

order_id INT AUTO INCREMENT,

 

2.3. 데이터 조회 (SELECT)

테이블에서 데이터를 조회할 때는 SELECT 명령어를 사용합니다.
SELECT 컬럼1, 컬럼2, ... FROM 테이블이름;
SQL
복사
예시:
SELECT name, age FROM students; //students 테이블에서 name과 age 열의 데이터를 조회합니다.
SQL
복사
 
WHERE: 특정 조건에 맞는 데이터만 조회합니다.
SELECT name, age FROM students WHERE age > 20; //students 테이블에서 age 값이 20보다 큰 학생들의 name과 age를 조회합니다.
SQL
복사
ORDER BY: 조회한 데이터를 정렬합니다.
SELECT name, age FROM students ORDER BY age DESC; //students 테이블에서 name과 age를 조회하되, age를 기준으로 내림차순(DESC)으로 정렬합니다. 즉, 나이가 많은 학생부터 순서대로 정렬됩니다.
SQL
복사
LIMIT: 조회할 데이터의 개수를 제한합니다.
SELECT name, age FROM students LIMIT 5; //students 테이블에서 name과 age를 조회하되, 최대 5개의 행만 조회합니다.
SQL
복사
LIMIT 5 OFFSET 10 = 11번째 행부터 시작해서 5개의 행만 반환한다. 
LIMIT절은 보통 ORDER BY 와 함께 사용한다. 
ORDER BY AGE DESC 
LIMIT 3;  //나이가많은 세명조회

 

2.4. 데이터 삽입 (INSERT)

테이블에 새로운 데이터를 추가할 때는 INSERT INTO 명령어를 사용합니다.
INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (1,2, ...)
SQL
복사
//예시 INSERT INTO students (id, name, age) VALUES (1, 'Alice', 23);
SQL
복사
 

2.5. 데이터 수정 (UPDATE)

기존 데이터를 수정할 때는 UPDATE 명령어를 사용합니다.
UPDATE 테이블이름 SET 컬럼1 =1, 컬럼2 =2 WHERE 조건;
SQL
복사
//예시 UPDATE students SET age = 24 WHERE id = 1; //students 테이블에서 id가 1인 학생의 age 값을 24로 수정
SQL
복사
 
 

2.6. 데이터 삭제 (DELETE)

테이블에서 데이터를 삭제할 때는 DELETE FROM 명령어를 사용합니다.
DELETE FROM 테이블이름 WHERE 조건;
SQL
복사
예시:
DELETE FROM students WHERE id = 1 //students 테이블에서 id가 1인 행을 삭제
SQL
복사
 

3. 기본 키와 외래 키

 
기본 키(Primary Key): 테이블에서 각 행을 고유하게 식별하는 열(또는 열의 조합)입니다.
 
외래 키(Foreign Key): 다른 테이블의 기본 키를 참조하는 열로, 테이블 간의 관계를 나타냅니다.
예시:
CREATE TABLE orders ( order_id INT PRIMARY KEY, student_id INT, FOREIGN KEY (student_id) REFERENCES students(id) );
SQL
복사
해석 : orders 라는 이름의 테이블을 생성합니다. 이 테이블에는 두 개의 열이 있습니다:
order_id: 정수형 데이터를 저장하는 열로, 이 열이 기본 키(PRIMARY KEY)입니다. 즉, orders 테이블의 각 행을 고유하게 식별합니다.
student_id: 정수형 데이터를 저장하는 열로, students 테이블의 id를 참조하는 외래 키(FOREIGN KEY)입니다. 이를 통해 orders 테이블의 각 주문이 어떤 학생과 관련이 있는지를 나타낼 수 있습니다.
기본키는 각 테이블의 데이터를 고유하게 정의한다. null값을 허용하지 않는다. 
외래키는 테이블 간의 관계를 연결하며, 데이터간의 관계를 나타낸다. 

4. 집계 함수(Aggregate Functions)

집계 함수는 여러 행의 값을 계산하여 하나의 결과를 반환하는 함수입니다.
COUNT(): 행의 개수를 셉니다.
SELECT COUNT(*) FROM students;
SQL
복사
SUM(): 숫자 값의 합을 계산합니다.
SELECT SUM(age) FROM students;
SQL
복사
AVG(): 숫자 값의 평균을 계산합니다.
SELECT AVG(age) FROM students;
SQL
복사
MAX(): 최대 값을 찾습니다.
SELECT MAX(age) FROM students;
SQL
복사
MIN(): 최소 값을 찾습니다.
SELECT MIN(age) FROM students;
SQL
복사
 

5. SQL 조건문

 
AND: 두 조건이 모두 참일 때 사용합니다.
SELECT * FROM students WHERE age > 20 AND name = 'Alice';
SQL
복사
OR: 두 조건 중 하나만 참이면 사용합니다.
SELECT * FROM students WHERE age > 20 OR name = 'Bob';
SQL
복사
NOT: 조건이 거짓일 때 사용합니다.
SELECT * FROM students WHERE NOT age > 20;

 

 

새로배운내용 

 

ddl, dml, dcl

 

데이터 삽입 명령어 insert into table1(값1,값2...) value(값1, 값2...)

데이터 수정 명령어 update  테이블이름  set  컬럼1 = 값1  where조건

데이터 삭제 명령어(행단위로삭제) delete from 테이블 이름 where 조건

 

기본키는 각 테이블의 데이터를 고유하게 정의한다. null값을 허용하지 않는다. 

외래키는 테이블 간의 관계를 연결하며, 데이터간의 관계를 나타낸다. 

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    name VARCHAR(100)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);

 

join us 구문은 외래키를 위함인가? 

꼭 그렇지는 않다. 외래키 설정 없이도 join us 구문 사용가능하다. 

다만 기본키와 외래키 설정을 통해 테이블 간의 관계를 일관되고 정확하게 유지할 수 있다. 

참조 무결성 데이터베이스 관리에서 매우 중요한 개념. 

 

 

 

 

 

 

 

 

 

 

 

 

'SQL' 카테고리의 다른 글

SQL 문법연습 걷기반 2  (0) 2025.03.26
SQL 문법연습1 걷기반  (0) 2025.03.23
5주차 SQL  (2) 2025.03.21
4주차 SQL  (1) 2025.03.21
3주차 SQL  (1) 2025.03.20