[TIL] SQL과 firebase

최하온·2023년 12월 26일
0

TIL

목록 보기
5/71
post-thumbnail

What I learned new

왕초보 강의


firebase
구글(Google)이 소유하고 있는 모바일 과 앱의 애플리케이션 개발 플랫폼.
firestore
클라우드 기반으로 데이터베이스 서비스로 데이터를 저장하고 관리할 수 있는 기능을 제공하는 NoSQL (비관계형) 데이터베이스.

셋팅 코드

  1. 프로젝트 개요 탭에서 톱니바퀴 설정 누르기
  2. 구성탭 복사 후 구성 정보 설정에 붙여넣기
// Firebase SDK 라이브러리 가져오기
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { getDocs } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

// Firebase 구성 정보 설정
const firebaseConfig = {
	본인 설정 내용 채우기 
};


// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

규칙 설정

  1. 빌드 카테고리에서 Firestore Database를 접속
  2. 규칙 탭 맨 아랫줄 false를 true로 변경해주기

firebase의 메서드
addDoc:문서 추가
getDocs: 데이터 가져오기

location.reload()
reload는 location 객체에 속해있는 메서드로, 페이지를 다시 불러오는 기능. location.reload([불러오기 옵션]); 에서 불러오가 옵션을 true로 입력하면 서버에서 불러옴.

firebase를 사용를 하게 되면

<script type = "module">

로 변경해야 함. 단 그에 맞게 스크립트 수정 해야 된다.


SQL

select문 뒤에 적어야함
1. SUM() : 행 안에 있는 값의 합을 내어줌
2. AVG() : 행 안에 있는 값의 평균을 내어줌
3. COUNT() : 행의 개수를 세어줌.
count(1) : 모든 갯수 세기, count(distinct 컬럼) 컬럼 안에 값이 몇인지
4. MIN() : 행 안에 있는 값의 최솟값을 반환해줌
5. MAX() : 행 안에 있는 값의 최댓값을 반환해줌

쿼리문 흐름 생각-> 구문으로 생각 해보기
어떤 테이블을 사용 할 지
어떤 컬럼을 사용 할 지
어떤 조건을 사용 할 지
어떰 함수를 사용 할 지

범주별 연산별 연산 group by로

순서
select 조회할 데이터
from 조회할 테이블
where 필터링
group by 그룹화
order by 정렬 ex) order by sum(price) => 컬럼을 기준으로 정렬.
asc 오름차순 , desc : 내림차순
아무것도 적지 않으면 오름차순 정렬!

Issue occuring



쿼리문 흐름 생각-> 구문으로 생각 해보기
어떤 테이블을 사용 할 지->food_orders
어떤 컬럼을 사용 할 지-> cuisine_type
어떤 조건을 사용 할 지->가장 높은 주문 금액, 낮은 주문금액 조회.
어떰 함수를 사용 할 지-> max min desc

What I tried


무언가 그럴싸한데.. 가장 낮은 주문 금액순으로(내림차순) 정렬이 안 됨.
가격순으로 정렬이니 price는 맞겠고 내림차순이니 desc로 했는데 제일 낮은 가격 순이 아니고 최댓값 내림차순이 되었다!

How solve issue


최솟값으로 내림차순을 해야하니
order by price desc를 컬럼 기준 정렬 예시처럼
order by min(price) desc를 해주면 되는 문제였다.

Realization


오늘은 몸도 마음도 고된 하루였음.

옛날에 어디서 봤는데 사소한 목표를 이루다보면 큰 목표에 도달한다고 본 적이 있다. 가령 자기 전 양치, 일어나서 이부자리 정리 같은 거.
그래서 하루에 2번 씩 하던 강아지 산책을 4번씩 나가고 있다.
기상 후 한 번, 점심 먹고 한 번, 저녁 먹고 한 번, 강의 끝나고 한 번.
뭔가 뿌듯하기도 한 거 같기도 하고?

내일은 sql 완강이 목표! 3강 배속으로 듣고 춘식이 산책 후 자야겠다.

0개의 댓글