티스토리 뷰
반응형
1. 데이터 정의 언어 (DDL: Data Definition Language)
데이터베이스의 구조를 정의하는 명령
1.1 CREATE
새로운 데이터베이스, 테이블, 인덱스 등을 생성
CREATE DATABASE my_database;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100)
);
1.2 ALTER
테이블의 구조를 변경
ALTER TABLE users ADD COLUMN phone_number VARCHAR(15);
ALTER TABLE users DROP COLUMN age;
1.3 DROP
데이터베이스나 테이블을 삭제
DROP TABLE Users
DROP DATABASE my_databse
2. 데이터 조작 언어(DML: Data Manipulation Language)
데이터를 추가, 조회, 수정, 삭제하는 명령어
2.1 INSERT
데이터를 추가
INSERT INTO users(name,age, email) VALUES('POOREUM', 23, 'pooreum@naver.com')
2.2 SELECT
데이터를 조회
-- 모든 열 조회
SELECT * FROM users
-- 특정 열 조회
SELECT name FROM users
-- 조건부 조회
SELECT name FROM users WHERE age > 22
-- 정렬
SELECT * FROM users ORDER BY age DESC
-- 데이터 제한
SELECT * FROM users LIMIT 10
2.3 UPDATE
데이터를 수정
UPDATE users
SET email = 'pooreum02@google.com'
WHERE id = 1
2.4 DELETE
데이터를 삭제
-- 조건부 삭제
DELETE FROM users WHERE id = 1
-- 모두 삭제
DELETE FROM users
3. 데이터 제어 언어(DCL: Data Control Language)
데이터베이스 사용자와 권한을 관리
3.1 GRANT
사용자에게 권한 부여
GRANT SELECT, INSERT ON users to 'pooreum'
3.2 REVOKE
사용자의 권한 회수
REVOKE INSERT ON users FROM 'pooreum'
4. 트랜잭션 제어 언어(TCL: Transacation Control Language)
트랜잭션의 상태를 제어
4.1 COMMIT
트랜잭션 작업을 확정
COMMIT
4.2 ROLLBACK
트랜잭션 작업을 취소
ROLLBACK
4.3 SAVEPOINT
트랜잭션 중간 상태를 저장
SAVEPOINT 'savepoint_name'
-- 특정 SAVEPOINT로 롤백
SAVEPOINT TO 'savepoint_name'
조건 및 집계 함수
5.1 조건절
- WHERE: 조건을 지정
- AND, OR: 조건 조합
- IN: 여러 값 중 하나인지 확인
- LIKE: 패턴 매칭
- BETWEEN: 범위 지정
SELECT * FROM WHERE age BETWEEN 20 AND 30
-- pooreum으로 시작하는 이름
SELECT * FROM WHERE name LIKE 'pooreum%'
5.2 집계 함수
- COUNT : 행 개수
- SUM : 합계
- AVG : 평균
- MAX(), MIN : 최댓값, 최솟값
SELECT COUNT(*) FROM users
SELECT AVG(age) FROM users WHERE age > 17
SELECT MAX(age), MIN(age) FROM users
6. 조인(JOIN)
6.1 INNER JOIN
공통된 데이터를 가져옴
SELECT orders.id, users.name
FROM orders
INNER JOIN users ON orders.user_id = users.id
6.2 LEFT JOIN
왼쪽 테이블의 모든 데이터와 공통된 데이터를 가져옴
SELECT orders.id, users.name
FROM orders
LEFT JOIN users ON orders.user_id = users.id
6.3 RIGHT JOIN
오른쪽 테이블의 모든 데이터와 공통된 데이터를 가져옴
SELECT orders.id, users.name
FROM orders
RIGHT JOIN users ON orders.user_id = users.id
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- DFS
- C++ Stack
- 백준 풀이
- 스프링 부트 crud 게시판 구현
- html
- 알고리즘
- HTML5
- 백준
- DP
- 유니온 파인드
- 이분 매칭
- 우선순위 큐
- 알고리즘 공부
- C++
- 자바
- 카운팅 정렬
- 유클리드 호제법
- 자료구조
- CSS
- js
- 투 포인터
- 에라토스테네스의 체
- 자바스크립트
- 스택
- c++ string
- 반복문
- 세그먼트 트리
- BFS
- Do it!
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함