2025 년 02 월 18 일 TIL
✅ 오늘 할일
- JWT 공부
- DataBase 공부
JWT
JWT는 구조를 보면
- HEADER (사용된 알고리즘, 이게 토큰인지 명시해주는 TYPE )
- PAYLOAD (정보가 들어가는데 여기에는 다른 사람이 보아도 상관없는 값들이 들어가야한다, 예를 들면 이름, 이메일, ROLE, 생성일, 만료일 )
- SIGNATURE (사용된 알고리즘에 따른 생성된 암호문)
나중에도 활용할려고 정리해놓은 DataBase
컬럼 출력 시 사칙 연산을 넣거나 단어를 바꾸거나 공백을 제거 할수 있다.
- 문자를 이어 붙일 때 : CONCAT(컬럼,컬럼) 하지만 Oracle 이나 Postgres 같은 데이터 베이스는 || 로 표현
- 좌우 공백을 제거 할 때 : TRIM(컬럼)
- 단어를 바꿔서 출력할 때 : REPLACE(컬럼명, 바뀔 단어, 바꿀 단어)
- 문자를 일부를 바꿔서 출력할 때 : INSERT(컬럼명, 몇글자 부터 , 몇글자 , 바꿀 단어)
서브 쿼리
SELETE * FROM TABLE명 WHERE 조건문 > ( SELECT AVG(컬럼명) FROM TABLE )
- ()안의 쿼리부터 작동한다
- 일반적으로 위에 예시 처럼 하나의 데이터만 나오는 데이터만 서브 쿼리가 가능하지만 IN()을 활용할 경우는 예외
IF/CASE
- IF(조건문, 참이면 출력할 데이터, 거짓이면 출력할 데이터)
JAVA에서 삼항연산자라고 생각하면 될것 같다,
- CASE
WHEN 조건문 THEN 참이면 출력할 데이터
ELSE 출력할 데이터
END
만약 한개의 조건문을 가지고 비교를 한다면 IF, 비교할 카테고리 예를 들면 게임 점수가 2000점 이상 이면 골드 1000점 이상이면 실버 그외 브론즈
이럴 때는 CASE를 활용
궁금증
SELECT * FROM 테이블1 , 테이블2
WHERE 컬럼명 = 테이블2.컬럼
(SELECT 문 생략)
테이블 1 INNER JOIN 테이블 ON 컬럼명 = 테이블2.컬럼
대충 이 쿼리가 비슷한 값을 출력하는데 차이점이 있을까 하는 의문이 생겼다.
첫번째 쿼리를 내부적으로는 INNER JOIN과 같은 방식으로 동작하지만 구문이 명확하지 않으며 가독성이 떨어진다고 한다.
옛날 방식이라는 말도 나오는 것 같다.
두번째 쿼리 방식이 권장되는 방식이라고 함
'TIL' 카테고리의 다른 글
2025 년 02 월 19 일 TIL (0) | 2025.02.19 |
---|---|
2025년 02월 17일 TIL (1) | 2025.02.17 |
[TIL] 스파르타 백엔드 캠프 (0) | 2024.12.10 |
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅 (2) | 2024.11.28 |
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅 (1) | 2024.11.15 |