SoShin_
소신
SoShin_
전체 방문자
오늘
어제
  • 분류 전체보기
    • Study
      • HTML | CSS
      • JavaScript
      • Django
      • Python
      • Flask
      • Git
      • Project
      • 이것저것
      • 코딩테스트
      • NestJS
    • Review
      • Book
      • Movie & Drama

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 장고 제네릭뷰
  • 위도경도
  • 자바스크립트
  • 문제풀이
  • Django allauth
  • KakaoAPI
  • Django
  • 장고
  • flask orm
  • node.js
  • 영화리뷰
  • 플라스크
  • 파이썬
  • db
  • 영화추천
  • 장고 allauth
  • js
  • allauth
  • SQLAlchemy
  • openpyxl
  • SQLite
  • FLASK
  • 장고 유저기능
  • 코딩테스트
  • 유저기능
  • orm
  • Python
  • MongoDB
  • JavaScript
  • Django 유효성 검증

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SoShin_

소신

[ SQLAlchemy ] SQLAlchemy 쿼리문 정리
Study/Python

[ SQLAlchemy ] SQLAlchemy 쿼리문 정리

2022. 1. 2. 13:18
반응형

 

DB에 데이터를 삽입하는 방법 [ add ]

vegan = Vegan(id=1, shop="502 세컨즈카페", address="서울 노원구 섬밭로 232 우성아파트", sector="양식",
              menu="502 샐러드파스타(락토,비건가능), 502 양념감자튀김(락토,비건가능)", longitude=37.6366151651829, latitude=127.065668150406,
              region="노원구",
              image="https://search.pstatic.net/common/?autoRotate=true&quality=95&size=168x130&src=https%3A%2F%2Fldb-phinf.pstatic.net%2F20180323_17%2F1521777524889tQVNp_JPEG%2F_%25A5%25ED___01.jpg&type=f")
db.session.add(vegan)
db.session.commit()

DB 업데이트 방법 1 : select 후 값을 업데이트 한후 commit

shop_name = Vegan.query.get(1)
shop_name.shop = "음식점 이름"
db.session.commit()

DB 업데이트 방법 2 : select 없이 업데이트 한 후 Commit

shop_name = db.session.query(Vegan).filter(Vegan.id == 1).update({'shop': '업데이트 테스트!'})
db.session.commit()

id 값이 1인 가게를 가져오기

vegan_id = Vegan.query.get(1)
print(f"vegan_id : {vegan_id.shop}")

모든 데이터 가져오기

vegans = Vegan.query.all()
vegan_all = " ".join(i.shop for i in vegans)
print(f"vegan_all : {vegan_all}")

가게 이름이 "카페 썬"인 가게를 검색

vegans = Vegan.query.filter(Vegan.shop == '카페 썬')
vegan_equal = " ".join(i.shop for i in vegans)
print(f"vegan_equal: {vegan_equal}")

이름이 "카페 썬"이 아닌 가게를 검색

vegans = Vegan.query.filter(Vegan.shop != "카페 썬")
vegan_not_equal = " ".join(i.shop for i in vegans)
print(f"vegan_not_equal: {vegan_not_equal}")

이름이 "카페"와 비슷한 멤버를 검색

검색할 문자열 앞에 % 표시 할 경우 %문자열로 끝나는 단어들
검색할 문자열 뒤에 % 표시 할 경우 문자열%로 끝나는 단어들
검색할 문자열 앞뒤에 % 표시시 문자열 포함하는 단어들 %문자열%

vegans = Vegan.query.filter(Vegan.shop.like("%카페%"))
vegan_like = " ".join(i.shop for i in vegans)
print(f"vegan_like: {vegan_like}")

이름이 "카페 썬", "5길반찬"에 포함되는 멤버를 검색

vegans = Vegan.query.filter(Vegan.shop.in_(["카페 썬", '5길반찬']))
vegan_in = " ".join(i.shop for i in vegans)
print(f"vegan_in: {vegan_in}")

이름이 "카페 썬", "5길반찬"에 포함되지 않는 멤버를 검색

vegans = Vegan.query.filter(~Vegan.shop.in_(["카페 썬", '5길반찬']))
vegan_not_in = " ".join(i.shop for i in vegans)
print(f"vegan_not_in: {vegan_not_in}")

이름이 비어있는 멤버를 검색

vegans = Vegan.query.filter(Vegan.shop == None)
vegan_is_null = " ".join(i.shop for i in vegans)
print(f"vegan_is_null: {vegan_is_null}")

이름이 비어있지 않은 멤버를 검색

vegans = Vegan.query.filter(Vegan.shop != None)
vegan_is_not_null = " ".join(i.shop for i in vegans)
print(f"vegan_is_not_null: {vegan_is_not_null}")

이름이 "카페 썬"이며 지역이 마포구인 곳을 검색

vegans = Vegan.query.filter((Vegan.shop == "카페 썬") & (Vegan.region == '마포구'))
vegan_and = " ".join(i.shop for i in vegans)
print(f"vegan_and: {vegan_and}")

이름이 "카페 썬"이거나 지역이 마포구인 곳을 검색

vegans = Vegan.query.filter((Vegan.shop == "카페 썬") | (Vegan.region == '마포구'))
vegan_or = " ".join(i.shop for i in vegans)
print(f"vegan_or: {vegan_or}")

지역순으로 정렬하여 검색 (기본 = 오름차순)

vegans = Vegan.query.order_by(Vegan.region)
vegan_order_by = " ".join(i.region for i in vegans)
print(f"vegan_order_by: {vegan_order_by}")

지역을 내림차순으로 정렬하되, limit_num의 크기만큼 반환 [ 내림차 순을 위해 desc() 추가 ]

limit_num = 5
vegans = Vegan.query.order_by(Vegan.region.desc()).limit(limit_num)
vegan_limit = " ".join(i.region for i in vegans)
print(f"vegan_limit: {vegan_limit}")

나이를 내림차순으로 정렬하되, off_set 크기만큼 앞에서 부터 생략하고 반환

off_set = 5
vegans = Vegan.query.order_by(Vegan.region.desc()).offset(off_set)
vegan_offset = " ".join(i.region for i in vegans)
print(f"vegan_offset: {vegan_offset}")

지역을 내림차순으로 정렬하고 나오는 튜플 수를 반환

vegans = Vegan.query.order_by(Vegan.region.desc()).count()
vegan_count = str(vegans)
print(f"vegan_count: {vegan_count}")
반응형

'Study > Python' 카테고리의 다른 글

[Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기  (0) 2021.12.30
[Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기  (0) 2021.12.30
[ Python ] pymongo에서 문자열 포함 여부를 확인하는 방법  (0) 2021.12.27
[Python] 크롤링과 스크래핑 ( crawling, scraping ) #2 [ BeutifulSoup : bs4 ]  (0) 2021.12.20
[Python] 크롤링과 스크래핑 ( crawling, scraping ) #1 [ requests]  (0) 2021.12.20
    'Study/Python' 카테고리의 다른 글
    • [Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기
    • [Python] Kakao API를 이용하여 주소를 이용해 위도, 경도 알아내기
    • [ Python ] pymongo에서 문자열 포함 여부를 확인하는 방법
    • [Python] 크롤링과 스크래핑 ( crawling, scraping ) #2 [ BeutifulSoup : bs4 ]
    SoShin_
    SoShin_
    직접 쓰는 개발 블로그

    티스토리툴바