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%
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; (세이프 모드 비활성화)
→ 위 명령으로 세이프 모드를 비활성화 한 후 작업을 진행할 수 있다.
→ 필요에 따라, 세이프 모드를 비활성/활성화 하자!
반응형