일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JVM
- GitHub
- 내일배움캠프
- TiL_1st_0419
- Diary 해우소
- Git
- diary
- #내일배움캠프
- 생성자
- 인스턴스
- 회고록
- #스파르타내일배움캠프TIL
- #스파르타내일배움캠프
- static
- 성장기록
- 변수의 다양성
- 포맷은 최후의 보루
- 감사기록
- Github_token
- 클래스
- 스레드
- Java의 이점
- Token
- 스파르타내일배움캠프
- 스파르타내일배움캠프TIL
- Java
- KPT
- 해우소
- 객체지향 언어
- 메서드
- Today
- Total
몬그로이
H2 본문
H2 사용하는 강의를 듣는데
나에겐 TODO 테이블이 없어서 대충 만들어주는 것을 시작으로 query 문을 다루기 시작했다
Table 생성
CREATE TABLE TODO
(
NAME VARCHAR(255)
);
그 다음 강의를 따라서 몇 가지 COLUMN 을 생성해 주었다
ALTER TABLE TODO ADD COLUMN USER_ID INT;
ALTER TABLE TODO ADD COLUMN TITLE VARCHAR(255);
User Table에도 배운 것들을 사용해 보았다
순서대로 row values 집어넣기/ 값 수하기/ 지우기
INSERT INTO USERS ( ID , NAME ) VALUES (3,'Taeyang Kim');
UPDATE USERS SET NAME = 'Teayang Kim' WHERE ID = 3;
DELETE FROM USERS WHERE ID = 5;
* 큰 따옴표(")가 아니라 작은따옴표(')를 사용한다는 것을 잊지 말 것
TABLE 생성하기/지우기
CREATE TABLE users (id SERIAL, name VARCHAR(255));
DROP TABLE users;
*serial 은 자동생성 되는 value
COMMIT
ROLLBACK
테이블에 value 넣기 - 1개
CREATE TABLE orders (
id SERIAL,
user_id BIGINT,
product_id BIGINT,
quantity INT,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
테이블에 value 넣기 -여러 개
INSERT INTO users (name, email , status) VALUES
('Alice', 'alice@example.com', 'active'),
('Bob', 'bob@example.com', 'inactive'),
('Charlie', 'charlie@example.com', 'active');
사용자와 주문 내역을 함께 조회
SELECT users.name, orders.id AS order_id, products.name AS product_name, orders.quantity, orders.order_date
FROM orders
JOIN users ON orders.user_id = users.id
JOIN products ON orders.product_id = products.id;
사용자별 주문 개수 집계
SELECT users.name, COUNT(orders.id) AS total_orders
FROM orders
JOIN users ON orders.user_id = users.id
GROUP BY users.name;
사용자 이름으로 정렬하여 조회
SELECT * FROM users
ORDER BY name;
주문 내역을 주문 날짜 순으로 내림차순 정렬하여 조회
SELECT users.name, products.name AS product_name, orders.quantity, orders.order_date
FROM orders
JOIN users ON orders.user_id = users.id
JOIN products ON orders.product_id = products.id
ORDER BY orders.order_date DESC;
데이터 초기화를 원할 경우, 다음 쿼리로 테이블 내용을 지울 수 있습니다.
TRUNCATE TABLE orders;
TRUNCATE TABLE products;
TRUNCATE TABLE users;
특정 날짜 이후에 생성된 계정을 가진 사용자 조회
SELECT * FROM users
WHERE created_at > '2023-01-01';
각 사용자별 총 주문 금액 조회
SELECT users.name, SUM(products.price * orders.quantity) AS total_spent
FROM orders
JOIN users ON orders.user_id = users.id
JOIN products ON orders.product_id = products.id
GROUP BY users.name;
'Organizing Docs' 카테고리의 다른 글
NoSQL, RDBMS (0) | 2024.07.18 |
---|---|
MVP 패턴 (0) | 2024.07.17 |
자바의 정석 7. 객체지향 프로그래밍2 (0) | 2024.07.01 |
H2 연결 오류 해결하기 (0) | 2024.06.26 |
TIL_029 (0) | 2024.05.31 |