TIL

[TIL] 2025.01.16(목) - database 학습

요호유후 2025. 2. 3. 01:12
반응형

 

금일 학습사항

 1. DML 기초 (테이블 생성, 데이터 생성)
 2. DML 기초 (데이터 조회)
 3. DML 기초 (데이터 업데이트)

 

각 학습별 상세내용

1. DML 기초 (테이블 생성, 데이터 생성)

USE

데이터 베이스 선택 및 사용
  ▶ USE 데이터베이스명
  예) USE test_db;
  ★ 무언갈 하기 전에 USE 명령을 사용하면 좋을 듯! 아니면 테이블 꼬일 가능성 58000%

선택된 DB는 볼드체로 표시된다.

 

CREATE

테이블 생성 (전체 컬럼, 일부 컬럼 가능)
  ▶ INSERT INTO (컬럼) VALUES (데이터) → 데이터 생성 (기본문)
  예) INSERT INTO users (username, age) VALUES ('john_lee', 25);

다수의 데이터를 넣을 수 있음 (전체 컬럼, 일부컬럼 가능)
  ▶ INSERT INTO (컬럼) VALUES (데이터), (데이터), (데이터), ...
  예) INSERT INTO users (username, age) VALUES ('alice', 25), ('bob', 23), ('jin', 20)

★ INSERT IGNORE INTO users (username, age) VALUES ('alice', 25)
SET문을 이용해서 입력할 수도 있다.
     예) INSERT INTO users SET username = 'jin', age = 25;
★ f-포매팅도 사용할 수 있다.

 

2. DML 기초 (데이터 조회)

SELECT

▶ 데이터를 조회할 때 사용하는 명령어이다.
▶ 일시적인 데이터이다. (= 테이블로 저장되는 것이 아니다.)

[문법 구조]
① 모든 컬럼 조회 (*을 넣는다.)
    ▶ SELECT * FROM 테이블명;
    ▶ SELECT * FROM users;
② 특정 컬럼만 조회
    ▶ SELECT user_id, username FROM users;
③ 중복 데이터 제거하여 조회
    ▶ SELECT DISTINCT age FROM users;
④ 일시적으로 추가 컬럼 만들기
    ▶ SELECT age, age * 100 FROM users;
       → 조회하면 'age * 100' 이라는 컬럼이 생성되어있다.
       → 다시 SELECT * FROM users; 하면 'age * 100' 컬럼 없음 (일시적으로 생성, 조회용)
AS를 사용하여 새로운 컬럼명 정의
    ▶ SELECT age, age * 100 AS age100 FROM users;

 

ORDER BY

▶ 데이터 정렬할 때 사용하는 명령어이다.
▶ ASC(오름차순)이 기본이다.
▶ DESC(내림차순)은 명시해주어야한다.

[문법구조]
① 오름차순 정렬
    ▶ SELECT * FROM users ORDER BY age;
    ▶ SELECT * FROM users ORDER BY age ASC;
    ★ ASC는 생략해도 안 해도 됨
② 내림차순 정렬
    ▶ SELECT * FROM users ORDER BY age DESC;
③ 여러 기준으로 정렬
    ▶ SELECT * FROM users ORDER BY age ASC, created DESC;

 

WHERE

▶ 조건문
▶ 특정 조건에 맞는 데이터를 조회할 수 있게해준다.
▶ SELECT * FROM users WHERE age = 30;
▶ 단락 구분해서 작성해도 된다.
   예) SELECT * FROM users
         WHERE age = 30;

[문법 구조]
① 특정 조건 이상 데이터 조회
    ▶ SELECT * FROM users WHERE age >= 30;
AND, OR을 사용한 복합 조건
    ▶ SELECT * FROM users WHERE age = 33 AND name = 'Leo';
       → age가 33이고 name이 'Leo'인 데이터 조회
    ▶ SELECT * FROM users WHERE age = 33 OR name = 'Leo';
       → age가 33 또는 name이 'Leo'인 데이터 조회
NOT을 사용한 부정 조건
    ▶ SELECT * FROM users WHERE NOT age = 33;
       → age가 33이 아닌 데이터 조회
BETWEEN을 사용한 범위 지정
    ▶ SELECT * FROM users WHERE age BETWEEN 20 AND 25;
       → age가 20에서 25 사이인 데이터 조회
⑤ 특정 개수 제한 LIMIT
    ▶ SELECT * FROM users LIMIT 5;
       → 조회되는순서대로 5개까지 나옴
    ▶ SELECT * FROM users LIMIT 2, 5;
       → 10번째부터 5개의 데이터 조회 (페이징)

 

3. DML 기초 (데이터 업데이트) 

UPDATE

▶ 데이터 갱신
▶ UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ... WHERE 조건; (예시)

★ UPDATE 시 아래와 같은 오류가 뜰 수 있다.  
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
 → 세이프 모드가 기본적으로 활성화되어있기 때문에 발생한다.
 → 데이터 변경 등 데이터에 치명적인 영향을 주는 것을 방지하기 위함이다.
 → SET SQL_SAFE_UPDATES = 0; (세이프 모드 비활성화)
 → 위 명령으로 세이프 모드를 비활성화 한 후 작업을 진행할 수 있다.
 → 필요에 따라, 세이프 모드를 비활성/활성화 하자!
반응형