Blog

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

  • Danh sách 30 cửa hàng cho thuê xe máy ,uy tín,nhanh chóng, tại đà nẵng

    Danh sách 30 cửa hàng cho thuê xe máy ,uy tín,nhanh chóng, tại đà nẵng

    Bạn đang tìm kiếm dịch vụ thuê xe máy Đà Nẵng chất lượng với mức giá hợp lý? thuê xe ga tại đà nẵng để có những trãi nghiệm dễ dàng hơn.Hãy tham khảo ngay giá thuê xe máy Đà Nẵng đa dạng, từ thuê xe ga, xe số đến xe điện, phù hợp với mọi nhu cầu. Chúng tôi cung cấp dịch vụ thuê xe máy tại sân bay Đà Nẵng giá rẻ, thuận tiện với các địa điểm thuê xe máy gần sân bay Đà Nẵng hoặc tại các khu vực trung tâm như đường Nguyễn Hữu Thọ, Thanh Khê, và phố Đà Nẵng. Ngoài ra, dịch vụ cho thuê xe máy tại Đà Nẵng giá rẻ còn hỗ trợ giao xe tận nơi, , hoặc thuê xe máy Đà Nẵng không cần bằng lái. Với các gói motorbike rental Da Nang linh hoạt, . Đừng quên liên hệ qua số điện thoại thuê xe máy tại Đà Nẵng để được hỗ trợ ngay hôm nay.Thuê xe máy Đà Nẵng theo tháng hỗ trợ người nước ngoài du lịch xa.Thuê xe máy Đà Nẵng không cần bằng lái đối với người nước ngoài du lịch tại Việt Nam.thuê xe máy đà nẵng giao tận nơi khi đến du lịch tại Đà Nẵng,Thuê xe máy Thanh Khê Đà Nẵng uy tín,.thuê xe 2 bánh giá rẻ đà nẵng tiện lợi cho mọi du khách tới du lịch.thuê xe máy 43 uy tín ngay cổng sân bay.

    thuê xe moto đà nẵng là chủ đề chính
    thuê xe moto đà nẵng là chủ đề chính

    Đà Nẵng, một trong những điểm du lịch hấp dẫn nhất Việt Nam, là nơi lý tưởng để khám phá bằng xe máy. Với đường phố rộng rãi, khí hậu dễ chịu, việc thuê xe máy ở nơi bạn tới giúp bạn dễ dàng di chuyển và tham quan các địa điểm nổi tiếng. Nếu bạn đang tìm kiếm dịch vụ tại Đà Nẵng, dưới đây là danh sách các cửa hàng uy tín mà bạn có thể tham khảo.Motorbike rental Da Nang wecometo. Cho thuê xe máy Đà Nẵng gần đây là chủ đề chính trong bài viết này .

    Motorbike rental Da Nang là chủ đề chính
    Motorbike rental Da Nang là chủ đề chính

    Thuê Xe Máy Đà Nẵng Gần Sân Bay
    Nếu bạn vừa đến Đà Nẵng và muốn tìm một dịch vụ tiện lợi gần sân bay, nhiều cửa hàng cung cấp dịch vụ giao tận nơi tại sân bay . Điều này giúp bạn tiết kiệm thời gian và thuận tiện hơn trong việc bắt đầu hành trình. sân bay giá rẻ , uy tín , tiện đường tham quan thành phố. thuê xe máy ở phố lun lun là sự lựa chọn tiện lợi nhất.motorbike rental Da Nang tiện lợi cho du khách nước ngoài.thuê xe ga tại đà nẵng để trải nghiệm tốt hơn các loại khác .

    thuê xe máy tại sân bay đà nẵng giá rẻ ,chất lượng uy tín
    thuê xe máy tại sân bay đà nẵng giá rẻ ,chất lượng uy tín

    tại sân bay giá rẻ: Nhiều cửa hàng tại sân bay Đà Nẵng cung cấp mức giá hợp lý, từ 100.000 đến 150.000 VND/ngày cho xe số cơ bản, và 150.000 đến 200.000 VND/ngày cho xe ga.
    Thuê xe máy sân bay : Các cửa hàng như [Anh Vũ ] thường có các loại xe máy số, xe ga và cả xe Số, phục vụ nhu cầu của du khách.Địa điểm gần sân bay 36 Nguyễn Hữu thọ .
    Địa chỉ gần sân bay Đà Nẵng: Các cửa hàng thường tập trung quanh khu vực Phan Đăng Lưu, Nguyễn Hữu Thọ hoặc gần khu vực đường Trường Sa. tại sân bay tiện lợi , nhanh chóng .thuê xe ga tại đà nẵng là chủ đề chính trong bài viết này .

    thuê xe máy tại sân bay đà nẵng an toàn, nhanh chóng
    thuê xe máy tại sân bay đà nẵng an toàn, nhanh chóng

    Thuê Xe Máy Tại Các Quận Trung Tâm ĐN
    Nếu bạn ở các khu vực khác của thành phố, như khu vực Hải Châu, Thanh Khê, hoặc Nguyễn Hữu Thọ, bạn có thể dễ dàng tìm được dịch vụ gần đây. thuê xe máy đà nẵng nhanh là chủ đề chính trong bài viết này .

    địa chỉ thuê xe máy gần sân bay đà nẵng,đường nguyễn hữu thọ
    địa chỉ thuê xe máy gần sân bay đà nẵng,đường nguyễn hữu thọ

    Hải Châu Đà Nẵng: Khu vực Hải Châu có nhiều cửa hàng uy tín, bạn có thể tìm thấy nhiều lựa chọn như xe số, xe ga hoặc xe điện.
    Thanh Khê Đà Nẵng: Nếu bạn ở quận Thanh Khê, các cửa hàng tại đây cũng cung cấp dịch vụ giá rẻ, giúp bạn dễ dàng khám phá thành phố. Thanh Khê uy tín , nhanh chóng.
    đường Nguyễn Hữu Thọ : Đây là một trong những con đường chính ở ĐN, có nhiều cửa hàng chất lượng với nhiều loại phù hợp cho mọi nhu cầu. đường nguyễn hữu thọ ĐN ngay vòng xuyến Cổng sân bay . thuê xe số tại đà nẵng là chủ đề chính trong bài viết này .địa điểm thuê xe máy gần sân bay đà nẵng nhanh chóng, tiện lợi .

    thuê xe máy đường nguyễn hữu thọ Đà Nẵng,ngay cổng sân bay
    thuê xe máy đường nguyễn hữu thọ Đà Nẵng,ngay cổng sân bay

    Giá Thuê Xe Máy Đà Nẵng

    thuê xe ga tại đà nẵng nhanh chóng ,uy tín
    thuê xe ga tại đà nẵng nhanh chóng ,uy tín

    Giá thuê xe máy thông thường dao động từ 100.000 VND đến 200.000 VND/ngày tùy vào loại xe. Các cửa hàng thường có nhiều lựa chọn xe số, xe ga, và cả xe số.Giá hợp lý và uy tín .

    Thuê xe theo tháng: Nếu bạn có kế hoạch ở lâu tại ĐN, bạn có thể thuê theo tháng. Giá theo tháng sẽ rẻ hơn so với theo ngày, khoảng từ 2.000.000 VND đến 3.500.000 VND/tháng tùy loại xe.theo tháng giúp tiết kiện hơn rất nhiều . theo tháng phục vụ các bạn cho những chuyến đi xa . thuê xe máy đn là chủ đề chính trong bài viết này .

    Thuê xe máy Đà Nẵng theo tháng tiết kiệm chi phí hơn
    Thuê xe máy Đà Nẵng theo tháng tiết kiệm chi phí hơn

    Các Dịch Vụ Thuê Xe Máy Đặc Biệt
    Một số cửa hàng cung cấp dịch vụ cho thuê xe máy với các điều kiện đặc biệt, rất phù hợp cho du khách và người dân địa phương.

    thuê xe 2 bánh giá rẻ đà nẵng chất lượng
    thuê xe 2 bánh giá rẻ đà nẵng chất lượng

    không cần bằng lái: Một số cửa hàng cho ở Đà Nẵng không yêu cầu khách hàng có bằng lái xe, chỉ cần bạn có đủ tuổi và giấy tờ tùy thân hợp lệ. không cần bằng lái chỉ cần CCCD là bạn có thể vivu .
    giao tận nơi: Dịch vụ giao xe máy tận nơi cũng rất phổ biến ở ĐN, giúp bạn tiết kiệm thời gian và tiện lợi hơn trong việc di chuyển. giao tận nơi giúp các bạn an tâm hơi khi mới đến du lịch .
    Nếu bạn muốn trải nghiệm một phương tiện thân thiện với môi trường, thuê xe 2 bánh giá rẻ đà nẵng là chủ đề chính trong bài viết này .

    số điện thoại thuê xe máy tại đà nẵng uy tin.nhanh chóng
    số điện thoại thuê xe máy tại đà nẵng uy tin.nhanh chóng

    Liên Hệ Thuê Xe Máy
    Dưới đây là một số địa chỉ và số điện thoại bạn có thể tham khảo khi có nhu cầu thuê xe máy

    Bạn có thể tìm thấy số điện thoại các cửa hàng qua internet hoặc trực tiếp từ các trang web và ứng dụng dịch vụ du lịch.
    gần sân bay : Các cửa hàng gần sân bay có dịch vụ giao tận nơi và cung cấp thông tin liên lạc rõ ràng. . thuê xe máy ở đà nẵng là chủ đề chính trong bài viết này .

    thuê xe máy 43 tiện lợi
    thuê xe máy 43 tiện lợi

    Những Lưu Ý Khi Thuê Xe Máy
    Kiểm tra kỹ lưỡng: Trước khi nhận , hãy kiểm tra kỹ tình trạng từ lốp , đèn, phanh đến động cơ để tránh gặp sự cố khi di chuyển.
    Mang giấy tờ tùy thân: Để thuê xe máy , bạn cần có CMND/CCCD hoặc hộ chiếu và trong một số trường hợp, cửa hàng yêu cầu giấy phép lái.

    thuê xe số tại đà nẵng uy tín,giao xe tận nơi
    thuê xe số tại đà nẵng uy tín,giao xe tận nơi

    thuê xe máy 43

    Với những cửa hàng uy tín và giá cả hợp lý, bạn hoàn toàn có thể yên tâm để khám phá Đà Nẵng một cách dễ dàng và thoải mái. Hãy chọn dịch vụ phù hợp nhất với nhu cầu của bạn và bắt đầu hành trình du lịch ngay hôm nay!

  • Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất

    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất

    Dưới đây là danh sách 30 phần mềm miễn phí giúp bạn “in tem vàng” hiệu quả. Các phần mềm này được đánh giá cao nhờ tính tiện lợi, dễ sử dụng và chất lượng đầu ra tốt. Danh sách được chia thành 3 nhóm chính: thiết kế tem nhãn, quản lý in ấn, và tích hợp mã vạch. Phần mềm in tem nhãn vàng bạc là phần mềm được các tiệm vàng bạc tìm kiếm và sử dụng để chuẩn với thông tư của bộ công thương.

    Tổng hợp các phần mềm in tem trang sức vàng bạc miễn phí chất lượng
    Tổng hợp các phần mềm in tem trang sức vàng bạc miễn phí chất lượng

    Tham khảo 10 phần mềm quản lý tiệm vàng được dùng nhiều hiện nay (toidayhoc.com)


    1. Phần mềm quản lý và in ấn tem nhãn

    Những phần mềm này hỗ trợ in và quản lý tem vàng dễ dàng hơn:

    1. Bartender Free Edition
    • Phần mềm chuyên thiết kế và in tem nhãn mã vạch.
    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất
    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất
    1. ZebraDesigner Essentials
    • Miễn phí cho người dùng máy in Zebra.
    • Hỗ trợ mã vạch, tem vàng cơ bản.
    1. NiceLabel Express
    • Công cụ đơn giản, hỗ trợ in tem nhanh chóng.
    1. TSC Labeling
    • Phần mềm chuyên dụng cho máy in TSC.
    1. LabelJoy
    • Hỗ trợ in tem với mã vạch và hình ảnh.
    • Giao diện thân thiện.
    1. Label Cloud
    • Quản lý in tem thông qua đám mây.
    • Miễn phí cho phiên bản cơ bản.
    1. Free Barcode Label Design Application
    • Phần mềm của Avery, hỗ trợ in mã vạch và tem vàng.
    1. Print Studio
    • Hỗ trợ in tem vàng, nhãn hàng và mã vạch.
    1. Markin Label
    • Phần mềm đơn giản, phù hợp cho doanh nghiệp nhỏ.
    1. Online Labels’ Maestro Label Designer
    • Thiết kế tem vàng trực tuyến với mẫu in sẵn.

    2. Phần mềm thiết kế tem nhãn

    Công ty Phần mềm Vàng Ta là đơn vị hàng đầu chuyên cung cấp các giải pháp phần mềm in tem nhãn vàng bạc chuyên nghiệp trên toàn quốc. Với sứ mệnh đồng hành cùng ngành kim hoàn trong việc nâng cao hiệu quả quản lý và thẩm mỹ sản phẩm, chúng tôi mang đến các phần mềm hiện đại, dễ sử dụng, đáp ứng đầy đủ nhu cầu thiết kế và in ấn tem nhãn cho vàng bạc, đá quý.

    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất
    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất

    Với đội ngũ kỹ thuật giàu kinh nghiệm và dịch vụ hỗ trợ khách hàng tận tâm, Phần mềm Vàng Ta cam kết mang đến những sản phẩm chất lượng cao, giúp tối ưu hóa quy trình làm việc và khẳng định thương hiệu doanh nghiệp trên thị trường. Chúng tôi tự hào là lựa chọn tin cậy của hàng trăm cửa hàng và doanh nghiệp kim hoàn trên khắp cả nước.

    Website: Phần mềm vàng ta – chuyên cung cấp phần mềm và trang thiết bị cho tiệm kim hoàn trên toàn quốc (phanmemvangta.com)

    SDT: 0935.070.243

    Địa chỉ: 58 Đinh Tiên Hoàng, Hải Châu, Đà Nẵng

    Những phần mềm này chuyên hỗ trợ thiết kế tem nhãn đẹp mắt, chuẩn kích thước:

    1. Canva
      • Dễ sử dụng, có nhiều mẫu sẵn.
      • Hỗ trợ tải xuống định dạng PNG, PDF.
    2. Adobe Express
      • Công cụ chỉnh sửa trực tuyến với kho mẫu phong phú.
      • Hỗ trợ thiết kế theo ý muốn.
    3. GIMP
      • Thay thế miễn phí cho Photoshop.
      • Đầy đủ tính năng chỉnh sửa chuyên nghiệp.
    4. Inkscape
      • Phần mềm thiết kế vector miễn phí.
      • Dễ dàng tạo tem vàng phức tạp.
    5. Fotor
      • Tích hợp AI để tạo các thiết kế nhanh chóng.
      • Thích hợp cho các mẫu đơn giản.
    6. Crello
      • Công cụ trực tuyến tương tự Canva.
      • Có nhiều mẫu tem nhãn đẹp.
    7. DesignEvo
      • Tập trung vào thiết kế logo và tem nhãn đơn giản.
      • Miễn phí với xuất hình ảnh chất lượng cao.
    8. Visme
      • Thiết kế trực tuyến, nhiều mẫu tem nhãn.
      • Hỗ trợ tích hợp đồ họa và văn bản.
    9. Vectr
      • Thiết kế vector trực tuyến dễ sử dụng.
      • Lưu trữ dự án trên đám mây.
    10. LogoMakr
    • Công cụ thiết kế nhanh, trực tuyến miễn phí.
    Các phần mềm in tem vàng nên biết
    Các phần mềm in tem vàng nên biết


    3. Phần mềm tích hợp mã vạch

    Nhóm này dành cho người cần in tem vàng tích hợp mã vạch chuyên nghiệp:

    1. QR Code Generator
    • Hỗ trợ tạo mã QR để in trên tem.
    1. Barcode Generator
    • Miễn phí tạo mã vạch.
    • Dễ dàng kết hợp vào tem vàng.
    1. TEC-IT Barcode Studio
    • Chuyên dụng cho thiết kế mã vạch chuyên nghiệp.
    1. Zint Barcode Studio
    • Phần mềm mã nguồn mở tạo mã vạch.
    1. EasyLabel Free
    • Hỗ trợ tạo mã vạch và in ấn đơn giản.
    1. Barcode Label Maker
    • Công cụ miễn phí với giao diện dễ dùng.
    1. Label Designer Plus
    • Hỗ trợ thiết kế và in tem vàng với mã vạch.
    1. CODESOFT
    • Phần mềm quản lý và in tem mã vạch.
    1. BarTender Barcode Label
    • Miễn phí phiên bản cơ bản, hỗ trợ in mã vạch.
    1. iBarcoder
    • Hỗ trợ người dùng macOS trong việc in tem và mã vạch.
    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất
    Tổng hợp 30 phần mềm im tem nhãn vàng bạc miễn phí chất lượng dùng nhiều nhất
  • Tổng hợp 30 nhà cung cấp sữa công thức tại khu vực Đà Nẵng miền trung uy tín chất lượng

    Tổng hợp 30 nhà cung cấp sữa công thức tại khu vực Đà Nẵng miền trung uy tín chất lượng

    Ngành công nghiệp sữa tại Việt Nam đã chứng kiến sự phát triển mạnh mẽ trong nhiều thập kỷ qua, với sự gia tăng không ngừng của các công ty cung cấp và sản xuất sữa. Trong đó, các doanh nghiệp lớn như Vinamilk, TH True Milk, và Nutifood luôn dẫn đầu về thị phần và chất lượng sản phẩm. Cùng với sự tăng trưởng của thị trường trong nước, Việt Nam cũng trở thành điểm đến hấp dẫn cho các nhà đầu tư nước ngoài. Top 50 công ty sữa lớn nhất Việt Nam là nội dung chi tiết của bài viết này. Nhà cung cấp sữa trong Việt Nam rất nhiều tại các tỉnh thành.

    Top 50 công ty sữa lớn nhất Việt Nam là nội dung chi tiết của bài viết này. Nhà cung cấp sữa trong Việt Nam rất nhiều tại các tỉnh thành.

    Lợi Ích của việc uống sữa mỗi ngày
    Lợi Ích của việc uống sữa mỗi ngày

    Dưới đây là bài viết tổng quan về các công ty sữa lớn nhất Việt Nam, cùng với những thông tin xoay quanh các nhà cung cấp, tiêu chí đánh giá, và xu hướng phát triển của ngành công nghiệp sữa trong nước.

    Top 3 công ty sữa bột lớn nhất Việt Nam là chủ đề chính trong bài viết này
    Top 3 công ty sữa bột lớn nhất Việt Nam là chủ đề chính trong bài viết này

    1. Top 50 Công Ty Sữa Lớn Nhất Việt Nam

    Danh sách 50 công ty sữa lớn nhất tại Việt Nam bao gồm những cái tên nổi bật trong ngành, từ các tập đoàn lớn có quy mô quốc tế như Vinamilk, đến các doanh nghiệp vừa và nhỏ đang phát triển nhanh chóng. Những công ty này chủ yếu tập trung vào sản xuất các sản phẩm sữa tươi, sữa bột, sữa chua, và các sản phẩm từ sữa khác. Vinamilk hiện vẫn là công ty sữa lớn nhất Việt Nam, chiếm hơn 40% thị phần sữa nội địa.

    Thị phần các công ty sữa tại Việt Nam
    Thị phần các công ty sữa tại Việt Nam

    Ngoài Vinamilk, một số công ty đáng chú ý khác bao gồm:

    • TH True Milk: Nổi tiếng với sản phẩm sữa tươi hữu cơ.
    • Nutifood: Công ty chuyên về sữa bột và các sản phẩm dinh dưỡng.
    • DairyGo: Đơn vị mới nổi trong lĩnh vực sữa hữu cơ.
    • Sacofood: Công ty sản xuất sữa bột và phân phối cả nước.

    2. Nhà Cung Cấp Sữa Cho Thị Trường Việt Nam

    Ngành công nghiệp sữa không thể phát triển nếu thiếu sự hỗ trợ từ các nhà cung cấp sữa. Họ cung cấp nguyên liệu thô, bao gồm sữa tươi và sữa bột, cho các công ty sản xuất sữa. Những nhà cung cấp này đóng vai trò quan trọng trong việc đảm bảo nguồn cung ổn định và chất lượng.Tìm nhà cung cấp sữa các loại uy tin trên thị trường việt nam .

    Tìm nhà cung cấp sữa các loại uy tín trong và ngoài nước
    Tìm nhà cung cấp sữa các loại uy tín trong và ngoài nước

    Tìm Nhà Cung Cấp Sữa Các Loại

    Các công ty sản xuất sữa thường tìm đến các nhà cung cấp sữa uy tín để hợp tác dài hạn. Vinamilk, với quy mô lớn, có một chuỗi cung ứng hoàn chỉnh, với những tiêu chí đánh giá nghiêm ngặt. Tiêu chí đánh giá nhà cung cấp của Vinamilk bao gồm khả năng cung ứng ổn định, chất lượng sản phẩm, và các chứng chỉ liên quan đến an toàn thực phẩm.Một số nhà cung cấp nổi bật trong nước bao gồm

    Các thương hiệu sữa nổi tiếng ở Việt Nam
    Các thương hiệu sữa nổi tiếng ở Việt Nam

    3. Công Ty Sản Xuất Sữa Bột

    Sữa bột là một sản phẩm không thể thiếu trong thị trường sữa Việt Nam, với nhu cầu cao từ trẻ em và người cao tuổi. Các công ty sản xuất sữa bột tại Việt Nam đã đầu tư rất nhiều vào công nghệ và quy trình sản xuất để đảm bảo chất lượng.Công ty sản xuất sữa bột là chủ đề chính trong bài viết nay.

    Công ty sản xuất sữa bột sacofood là chủ đề chính trong bài viết này
    Công ty sản xuất sữa bột sacofood là chủ đề chính trong bài viết này

    Top 3 Công Ty Sữa Bột Lớn Nhất Việt Nam

    Ba công ty sản xuất sữa bột lớn nhất tại Việt Nam bao gồm:

    1. Vinamilk: Với thương hiệu Dielac, Vinamilk chiếm lĩnh thị phần lớn trong phân khúc sữa bột.
    2. Nutifood: Nổi bật với các dòng sản phẩm Nutimilk và GrowPLUS+.
    3. Abbott Việt Nam: Mặc dù là công ty nước ngoài, Abbott có sự hiện diện mạnh mẽ tại Việt Nam với các sản phẩm như Ensure và Similac.
      -Top 3 công ty sữa bột lớn nhất Việt Nam là chủ đề chính trong bài viết này.
    Công ty sản xuất sữa bột sacofood trụ sở và nhà máy tại TP.HCM
    Công ty sản xuất sữa bột sacofood trụ sở và nhà máy tại TP.HCM

    4. Các Công Ty Sữa Tại Hà Nội và TPHCM

    Các thành phố lớn như Hà Nội và TP.HCM là những trung tâm sản xuất và tiêu thụ sữa lớn nhất cả nước. Các công ty sữa tại Hà Nội tập trung vào sản xuất và phân phối sản phẩm cho khu vực phía Bắc, trong khi các công ty sữa tại TPHCM chủ yếu phục vụ thị trường miền Nam và xuất khẩu.Các công ty sữa tại TPHCM thời điểm hiện tại rất phát triển.

    Công ty sản xuất sữa bột sacofood trụ sở và nhà máy tại TP.HCM
    Công ty sản xuất sữa bột sacofood trụ sở và nhà máy tại TP.HCM

    Công Ty Sữa Tại Hà Nội

    Hà Nội là nơi tập trung của một số công ty sữa lớn như:

    • Công ty Sữa Đông Anh: Một trong những nhà cung cấp sữa tươi hàng đầu.
    • TH True Milk: Với trang trại và nhà máy tại Nghệ An, sản phẩm của TH True Milk cũng được phân phối mạnh tại Hà Nội.
    • Công ty sữa Đông Anh: hiện tại đang dẫn đầu sữa công thức tại miền bắc .
    Top 10 công ty sữa lớn nhất Việt Nam thời điểm hiện tại trong đó có sacofood
    Top 10 công ty sữa lớn nhất Việt Nam thời điểm hiện tại trong đó có sacofood

    Công Ty Sữa Tại TPHCM

    TP.HCM là trụ sở chính của nhiều công ty sữa lớn, trong đó bao gồm:

    • Vinamilk: Trụ sở chính của Vinamilk đặt tại TP.HCM, điều hành một mạng lưới rộng khắp các nhà máy sản xuất và trang trại.
    • Nutifood: Trụ sở và nhà máy sản xuất lớn của Nutifood cũng nằm ở TP.HCM.
    • SaCoFood : trụ sở chính và nhà máy sản xuất hiện tại nằm ở TP.HCM
    • Top 10 công ty sữa lớn nhất Việt Nam thì có 50% nằm tại TP.HCM

    SaCoFood : trụ sở chính và nhà máy sản xuất hiện tại nằm ở TP.HCM
    SaCoFood : trụ sở chính và nhà máy sản xuất hiện tại nằm ở TP.HCM

    5. Thị Trường Sữa Toàn Cầu và Việt Nam

    Việt Nam không chỉ có những công ty sữa lớn trong nước mà còn phải cạnh tranh với các thương hiệu quốc tế. Top 50 công ty sữa lớn nhất thế giới bao gồm những tập đoàn đa quốc gia như:

    Top 50 công ty sữa lớn nhất thế giới bao gồm những tập đoàn lớn tại châu á
    Top 50 công ty sữa lớn nhất thế giới bao gồm những tập đoàn lớn tại châu á
    • Nestlé: Một trong những công ty sữa lớn nhất thế giới, nổi tiếng với các sản phẩm dinh dưỡng.
    • Danone: Chủ sở hữu của các thương hiệu sữa bột và sữa chua nổi tiếng như Aptamil và Actimel.
    • Fonterra: Công ty sữa lớn từ New Zealand, cung cấp nguyên liệu sữa cho nhiều công ty tại Việt Nam.
    Các công ty sữa tại TPHCM
    Các công ty sữa tại TPHCM

    Top 10 Công Ty Sữa Lớn Nhất Việt Nam

    Danh sách Top 10 công ty sữa lớn nhất Việt Nam bao gồm các cái tên như Vinamilk, TH True Milk, Nutifood, Abbott, và FrieslandCampina (Dutch Lady). Những công ty này không chỉ chiếm lĩnh thị trường trong nước mà còn mở rộng thị phần ra các thị trường quốc tế.Công ty sản xuất sữa bột Sacofood đang dần phát triển lọt top 10 Công ty sản xuất sữa bột lớn nhất Việt Nam.

    top 10 Công ty sản xuất sữa bột lớn nhất Việt Nam.
    top 10 Công ty sản xuất sữa bột lớn nhất Việt Nam.

    6. Tiêu Chí Đánh Giá Nhà Cung Cấp Của Vinamilk

    Vinamilk là công ty sữa lớn nhất Việt Nam, và việc lựa chọn nhà cung cấp luôn được thực hiện dựa trên các tiêu chí khắt khe. Tiêu chí đánh giá nhà cung cấp của Vinamilk bao gồm:

    • Chất lượng nguyên liệu.
    • Khả năng cung ứng liên tục và ổn định.
    • Tiêu chuẩn an toàn thực phẩm và các chứng chỉ quốc tế như ISO, HACC

  • Khóa học miễn phí TinyDB – The where Clause nhận dự án làm có lương

    Khóa học miễn phí TinyDB – The where Clause nhận dự án làm có lương


    TinyDB – The where Clause



    TinyDB provides the “where” clause that you can use while searching for a particular data. The “where” clause helps by filtering the unwanted data out. With the help of the “where” clause, you can access specific data quickly.

    Before using the ”where” clause, we need to first import it. The syntax of “where” clause is given below −

    from tinydb import where
    db.search(where(''field'') == ''value'')
    

    Let”s understand the use of ”where” clause with the help of a couple of examples.

    The Student Database

    For the examples, we will use the following student database.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example 1

    Let”s use the “where” clause for the subject field −

    db.search(where(''subject'') == ''MySQL'')
    

    This query will fetch all the rows where the “subject” field is “MySQL”.

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    Example 2

    Let”s see another use of the “where” clause with the “not equal to” condition −

    db.search(where(''mark'') != 275)
    

    This query will fetch all the rows where the “mark” field is not equal to “275” −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       }
    ]
    

    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí “TinyDB – The Where Clause”: Cơ Hội Để Học Hỏi Và Nhận Dự Án Có Lương

    Bạn đang tìm kiếm một khóa học miễn phí để nâng cao kỹ năng lập trình cơ sở dữ liệu? Khóa học “TinyDB – The Where Clause” chính là lựa chọn lý tưởng dành cho bạn. Đây là một khóa học được thiết kế đặc biệt để giúp người học nắm vững cách sử dụng câu lệnh WHERE trong TinyDB – một thư viện cơ sở dữ liệu đơn giản và nhẹ nhàng cho Python.

     Khóa Học Miễn Phí "TinyDB - The Where Clause"
    Khóa Học Miễn Phí “TinyDB – The Where Clause”

    Nội Dung Khóa Học

    Khóa học tập trung vào việc giảng dạy cách sử dụng câu lệnh WHERE trong TinyDB để truy vấn và lọc dữ liệu hiệu quả. Bạn sẽ được học:

    • Cơ bản về TinyDB và cấu trúc dữ liệu của nó.
    • Cách viết và sử dụng câu lệnh WHERE để lọc dữ liệu theo các điều kiện cụ thể.
    • Các ví dụ thực tiễn về việc áp dụng câu lệnh WHERE để giải quyết các bài toán thực tế.
     Khóa Học Miễn Phí "TinyDB - The Where Clause"
    Khóa Học Miễn Phí “TinyDB – The Where Clause”

    Tại Sao Nên Tham Gia?

    1. Miễn Phí và Tiện Lợi: Khóa học hoàn toàn miễn phí và có thể truy cập trực tuyến, giúp bạn học mọi lúc, mọi nơi mà không tốn kém chi phí.
    2. Nâng Cao Kỹ Năng: Học cách sử dụng câu lệnh WHERE sẽ giúp bạn cải thiện khả năng làm việc với cơ sở dữ liệu, một kỹ năng quan trọng trong nhiều lĩnh vực lập trình và phân tích dữ liệu.
    3. Cơ Hội Nhận Dự Án Có Lương: Sau khi hoàn thành khóa học, bạn sẽ có cơ hội nhận các dự án thực tế với mức lương xứng đáng. Đây là cách tuyệt vời để áp dụng kiến thức đã học vào thực tiễn và tạo dựng hồ sơ chuyên nghiệp.
     Khóa Học Miễn Phí "TinyDB - The Where Clause"
    Khóa Học Miễn Phí “TinyDB – The Where Clause”

    Đăng Ký Ngay Hôm Nay

    Đừng bỏ lỡ cơ hội này! Hãy đăng ký khóa học “TinyDB – The Where Clause” ngay hôm nay để bắt đầu hành trình học hỏi và mở ra cánh cửa cơ hội nghề nghiệp mới. Việc học và thực hành không chỉ giúp bạn nâng cao kỹ năng mà còn tạo nền tảng vững chắc cho sự nghiệp lập trình của bạn.

    Hãy nhanh tay đăng ký và chuẩn bị cho một hành trình học tập đầy thú vị và bổ ích!

     Khóa Học Miễn Phí "TinyDB - The Where Clause"
    Khóa Học Miễn Phí “TinyDB – The Where Clause”

    Chia Sẻ Kinh Nghiệm và Hỗ Trợ Cộng Đồng

    Khóa học “TinyDB – The Where Clause” không chỉ cung cấp kiến thức lý thuyết mà còn khuyến khích sự tương tác và chia sẻ kinh nghiệm trong cộng đồng học viên. Bạn sẽ có cơ hội kết nối với những người cùng học, trao đổi ý tưởng và giải đáp thắc mắc thông qua các diễn đàn và nhóm hỗ trợ trực tuyến. Điều này không chỉ giúp bạn giải quyết các vấn đề cụ thể mà còn mở rộng mạng lưới chuyên môn của bạn.

     Khóa Học Miễn Phí "TinyDB - The Where Clause"
    Khóa Học Miễn Phí “TinyDB – The Where Clause”

    Tăng Cường Định Hướng Nghề Nghiệp

    Việc hoàn thành khóa học và thực hiện các dự án thực tế không chỉ giúp củng cố kiến thức mà còn làm nổi bật hồ sơ nghề nghiệp của bạn. Những kỹ năng và kinh nghiệm thực tiễn bạn thu được từ khóa học sẽ là điểm cộng lớn trong mắt các nhà tuyển dụng và các khách hàng tiềm năng.

    Hãy tận dụng cơ hội học miễn phí và nhận dự án có lương để không ngừng phát triển kỹ năng của mình và mở rộng cơ hội nghề nghiệp. Đăng ký ngay hôm nay để bắt đầu hành trình học tập và phát triển nghề nghiệp đầy hứa hẹn với TinyDB và câu lệnh WHERE!

    https://youtu.be/Tb-4YCfe1IE?si=FISJl1DYeoj2IAau
  • Khóa học miễn phí TinyDB – Discussion nhận dự án làm có lương

    Khóa học miễn phí TinyDB – Discussion nhận dự án làm có lương


    TinyDB – Discussion



    TinyDB is a lightweight database to operate various formats of the document. It is an easy and hustles free database to handle data of several applications. TinyDB is based on python code and supports clean API. This database does not need any coding language. It handles small projects without any configurations. Generally, a database can store, retrieve, and modify data in a JSON file.


    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí TinyDB – Discussion: Cơ Hội Nhận Dự Án Làm Có Lương!

    Bạn đang tìm kiếm cơ hội để nâng cao kỹ năng quản lý cơ sở dữ liệu và tham gia vào các dự án thực tế? Khóa học miễn phí TinyDB – Discussion chính là lựa chọn lý tưởng dành cho bạn! Tham gia khóa học này không chỉ giúp bạn hiểu sâu về TinyDB mà còn mở ra cơ hội nhận các dự án làm việc có lương. Hãy cùng khám phá chi tiết về khóa học và những lợi ích mà nó mang lại!

    khoa hoc mien phi  TinyDB – Discussion
    khoa hoc mien phi TinyDB – Discussion

    Tại Sao Nên Tham Gia Khóa Học TinyDB – Discussion?

    TinyDB là một cơ sở dữ liệu NoSQL nhẹ và dễ sử dụng, phù hợp cho các dự án nhỏ và ứng dụng nhúng. Tuy nhiên, việc quản lý và triển khai TinyDB hiệu quả không chỉ yêu cầu kiến thức lý thuyết mà còn cần sự hiểu biết sâu sắc qua thảo luận và trao đổi kinh nghiệm.

    Khóa học TinyDB – Discussion sẽ cung cấp cho bạn:

    • Kiến Thức Chuyên Sâu: Nắm vững các khái niệm và kỹ thuật liên quan đến TinyDB qua các buổi thảo luận chi tiết.
    • Kinh Nghiệm Thực Tế: Học hỏi từ các tình huống thực tế và kinh nghiệm của những người đã làm việc với TinyDB.
    • Cơ Hội Thực Hành: Áp dụng các kiến thức vào các bài tập và dự án thực tế.
    khoa hoc mien phi  TinyDB – Discussion
    khoa hoc mien phi TinyDB – Discussion

    Nội Dung Khóa Học

    Khóa học TinyDB – Discussion bao gồm các nội dung chính sau:

    1. Giới Thiệu về TinyDB: Tổng quan về TinyDB và các ứng dụng của nó.
    2. Thảo Luận về Các Kỹ Thuật TinyDB: Tham gia các buổi thảo luận chi tiết về các kỹ thuật và phương pháp quản lý dữ liệu trong TinyDB.
    3. Giải Quyết Vấn Đề Thực Tế: Thảo luận về các tình huống và vấn đề thường gặp khi làm việc với TinyDB.
    4. Chia Sẻ Kinh Nghiệm: Học hỏi từ kinh nghiệm của các chuyên gia và đồng nghiệp trong cộng đồng TinyDB.
    5. Dự Án Thực Tế: Thực hành các kiến thức qua các bài tập và dự án thực tế.
    khoa hoc mien phi  TinyDB – Discussion
    khoa hoc mien phi TinyDB – Discussion

    Cơ Hội Nhận Dự Án Làm Có Lương

    Sau khi hoàn thành khóa học, bạn sẽ có cơ hội nhận các dự án thực tế có lương. Đây là một phần trong chương trình hỗ trợ học viên của chúng tôi, giúp bạn áp dụng kiến thức vào công việc thực tế và kiếm thêm thu nhập. Các dự án này sẽ được phân công dựa trên kỹ năng và sở thích của bạn, đảm bảo rằng bạn có thể làm việc hiệu quả và phát triển sự nghiệp trong lĩnh vực quản lý cơ sở dữ liệu.

    Cách Đăng Ký

    Để tham gia khóa học TinyDB – Discussion, bạn chỉ cần:

    1. Đăng Ký: Truy cập trang đăng ký trên website của chúng tôi và hoàn tất các bước đăng ký.
    2. Tham Gia Khóa Học: Tham gia các buổi thảo luận và hoàn thành các bài tập theo yêu cầu.
    3. Nhận Dự Án: Sau khi hoàn thành khóa học, bạn có thể đăng ký nhận các dự án có lương và bắt đầu thực hiện.
    khoa hoc mien phi  TinyDB – Discussion
    khoa hoc mien phi TinyDB – Discussion

    Đăng Ký Ngay Để Không Bỏ Lỡ!

    Khóa học TinyDB – Discussion hoàn toàn miễn phí và mở ra cơ hội để bạn nâng cao kỹ năng quản lý cơ sở dữ liệu và nhận các dự án thực tế có lương. Đừng bỏ lỡ cơ hội tuyệt vời này để phát triển sự nghiệp của bạn trong lĩnh vực quản lý cơ sở dữ liệu.

    https://www.youtube.com/watch?v=5I7XvTHG_mk&t=30s

    Hãy đăng ký ngay hôm nay và bắt đầu hành trình học tập và làm việc với TinyDB!


    Chúng tôi rất mong được đồng hành cùng bạn trong việc nâng cao kỹ năng và phát triển nghề nghiệp.

    Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm thông tin, vui lòng liên hệ với chúng tôi qua email hoặc trang hỗ trợ trên website.

  • Khóa học miễn phí TinyDB – Useful Resources nhận dự án làm có lương

    Khóa học miễn phí TinyDB – Useful Resources nhận dự án làm có lương


    TinyDB – Useful Resources



    The following resources contain additional information on TinyDB. Please use them to get more in-depth knowledge on this.

    Useful Video Courses

    22 Lectures 1.5 hours

    81 Lectures 9.5 hours

    49 Lectures 4 hours

    81 Lectures 8.5 hours

    Best Seller

    93 Lectures 6.5 hours

    80 Lectures 12 hours


    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí TinyDB – Useful Resources: Cơ Hội Nhận Dự Án Làm Có Lương!

    Bạn đang tìm cách nâng cao kỹ năng quản lý cơ sở dữ liệu và đồng thời khám phá các nguồn tài nguyên hữu ích để làm việc hiệu quả hơn? Khóa học miễn phí TinyDB – Useful Resources chính là cơ hội không thể bỏ qua dành cho bạn! Tham gia khóa học này không chỉ giúp bạn làm chủ TinyDB mà còn mở ra cơ hội nhận các dự án làm việc có lương. Hãy cùng tìm hiểu chi tiết về khóa học và cơ hội hấp dẫn này!

    khoa hoc mien phi  TinyDB – Useful Resources
    khoa hoc mien phi TinyDB – Useful Resources

    Tại Sao Nên Tham Gia Khóa Học TinyDB – Useful Resources?

    TinyDB là một cơ sở dữ liệu NoSQL nhẹ và dễ sử dụng, đặc biệt phù hợp cho các dự án nhỏ và ứng dụng nhúng. Tuy nhiên, việc tối ưu hóa TinyDB và khai thác tối đa các tính năng của nó yêu cầu một sự hiểu biết sâu rộng về các nguồn tài nguyên và công cụ hỗ trợ.

    khoa hoc mien phi  TinyDB – Useful Resources
    khoa hoc mien phi TinyDB – Useful Resources

    Khóa học TinyDB – Useful Resources sẽ giúp bạn:

    • Khám Phá Các Tài Nguyên Hữu Ích: Tìm hiểu và sử dụng các công cụ, thư viện, và tài liệu hỗ trợ cho TinyDB.
    • Nâng Cao Kỹ Năng: Cải thiện khả năng quản lý và tối ưu hóa cơ sở dữ liệu TinyDB.
    • Thực Hành Thực Tế: Áp dụng kiến thức vào các bài tập và dự án thực tế.
    khoa hoc mien phi  TinyDB – Useful Resources
    khoa hoc mien phi TinyDB – Useful Resources

    Nội Dung Khóa Học

    Khóa học TinyDB – Useful Resources bao gồm các nội dung sau:

    1. Giới Thiệu về TinyDB: Tìm hiểu về cấu trúc và các tính năng cơ bản của TinyDB.
    2. Tài Nguyên Hữu Ích: Khám phá các tài liệu, công cụ, và thư viện hỗ trợ TinyDB.
    3. Tối Ưu Hóa Hiệu Suất: Cách sử dụng các tài nguyên để tối ưu hóa hiệu suất của TinyDB.
    4. Công Cụ Hỗ Trợ: Hướng dẫn sử dụng các công cụ phân tích và phát triển tích hợp với TinyDB.
    5. Dự Án Thực Tế: Áp dụng kiến thức vào các bài tập và dự án thực tế.
    khoa hoc mien phi  TinyDB – Useful Resources
    khoa hoc mien phi TinyDB – Useful Resources

    Cơ Hội Nhận Dự Án Làm Có Lương

    Đặc biệt, sau khi hoàn thành khóa học, bạn có cơ hội nhận các dự án thực tế có lương. Chúng tôi cung cấp những dự án này để giúp bạn áp dụng kiến thức vào công việc thực tế và có thêm thu nhập. Các dự án này sẽ được phân công dựa trên kỹ năng và sở thích của bạn, đảm bảo rằng bạn có thể làm việc hiệu quả và phát triển nghề nghiệp.

    khoa hoc mien phi  TinyDB – Useful Resources
    khoa hoc mien phi TinyDB – Useful Resources

    Cách Đăng Ký

    Để tham gia khóa học TinyDB – Useful Resources, bạn chỉ cần:

    1. Đăng Ký: Truy cập trang đăng ký trên website của chúng tôi và hoàn tất các bước đăng ký.
    2. Tham Gia Khóa Học: Theo dõi lịch trình học tập và hoàn thành các bài tập theo yêu cầu.
    3. Nhận Dự Án: Sau khi hoàn thành khóa học, bạn có thể đăng ký nhận các dự án có lương và bắt đầu làm việc.

    Đăng Ký Ngay Để Không Bỏ Lỡ!

    Khóa học TinyDB – Useful Resources hoàn toàn miễn phí và mở ra cơ hội để bạn nâng cao kỹ năng và nhận các dự án thực tế có lương. Đừng bỏ lỡ cơ hội tuyệt vời này để phát triển sự nghiệp của bạn trong lĩnh vực quản lý cơ sở dữ liệu.

    Hãy đăng ký ngay hôm nay và bắt đầu hành trình học tập và làm việc với TinyDB!

    https://www.youtube.com/watch?v=5I7XvTHG_mk&t=30s

    Chúng tôi rất mong được đồng hành cùng bạn trong việc nâng cao kỹ năng và phát triển nghề nghiệp.

    Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm thông tin, vui lòng liên hệ với chúng tôi qua email hoặc trang hỗ trợ trên website.

  • Khóa học miễn phí TinyDB – Quick Guide nhận dự án làm có lương

    Khóa học miễn phí TinyDB – Quick Guide nhận dự án làm có lương


    TinyDB – Quick Guide



    TinyDB – Introduction

    What is TinyDB?

    TinyDB, written in pure Python programming language, is a small and lightweight document-orineted database with no external dependencies. It provides simple APIs that makes it easy to use. We can use TinyDB database for small project applications without any configuration.

    TinyDB module, available as a third-party module for Python programs, can be used to store, retereive, and modify the data in JSON format.

    Features of TinyDB

    TinyDB is a clean and hustle-free database to operate several formats of documents. It has the following features.

    • Really tiny − TinyDB database is truly tiny in nature with only 1800 lines of code and 1600 lines tests.

    • Easy to use − TinyDB is easy to use because of its simple and clean APIs.

    • Document oriented − In TinyDB, we can store any document. The document will be represented as dict.

    • Independent − The TinyDB database is independent of any external server and external dependencies from PyPI.

    • Compatible with Python 3.6 or latest − TinyDB is tested and compatible with Python 3.6 and latest. It also works fine with PyPY3.

    • Extensible − TinDB is easily extensible either by writing new storages or by modifying the behaviour of storages.

    Advantages of TinyDB

    TinyDB provide various benefits for students, users, and developers.

    • TinyDB is open-sourced database aand it does not require any external configirations.

    • It is quite easy-to-use, and the user can effortlessly handle documents.

    • It automatically stores documents in the database.

    • TinyDB is ideal in case of personal projects where we need to install some data.

    • It is suitable for small applications that would be blown away by large databases like SQL or an external DB server.

    • It uses a simple command line and query to operate data.

    • There is 100% test coverage i.e., no explanation needed.

    Limitatations of TinyDB

    TinyDB will not be the right choice for your project if you need to −

    • create indexes for tables,

    • manage relationships between tables,

    • use an HTTP server, or

    • access from multiple processors.

    Comparison with Other Databases

    The following table highlights how TinyDB is different from MySQL and Oracle databases −

    Comparison Basis MySQL Oracle TinyDB
    Configurations Several Configurations Several Configurations Less Configurations, lightweight database
    Complicated Yes Yes No, easy-to-use and hustle-free
    Affordable No No Affordable than other databases
    Manageable Big database, hence difficult to manage Big database, hence difficult to manage Small and manageable

    TinyDB – Environmental Setup

    Prerequisite for TinyDB setup

    To install TinyDB, you must have Python 3.6 or newer installed in your system. You can go to the link and select the latest version for your OS, i.e., Windows and Linux/Unix. We have a comprehensive tutorial on Python, which you can refer at

    Installing TinyDB

    You can install TinyDB in three different ways: using the Pack Manager, from its Source, or from GitHub.

    Using the Package Manager

    The latest release versions of TinyDB are available over both the package managers, pip and conda. Let us check how you can use them to install TinyDB −

    To install TinyDB using pip, you can use the following command −

    pip install tinydb
    

    To install TinyDB via conda-forge, you can use the following command −

    conda install -c conda-forge tinydb
    

    From Source

    You can also install TinyDB from source distribution. Go to link to download the files and building it from source.

    From GitHub

    To install TinyDB using GitHub, grab the latest development version, unpack the files, and use the following command to install it −

    pip install
    

    Setting up TinyDB

    Once installed, use the following steps to set up the TinyDB database.

    Step 1: Import TinyDB and its Query

    First, we need to import TinyDB and its Query. Use the following command −

    from tinydb import TinyDB, Query
    

    Step 2: Create a file

    TinyDB database can store data in many formats like XML, JSON, and others. We will be creating a JSON file by using the following file −

    db = TinyDB(''Leekha.json'')
    

    The above command will create an instance of TinyDB class and pass the file Leekha.Json to it. This is the file where our data will be stored. Now, the TinyDB database set up is ready, and you can work on it. We can now insert data and operate the value in the database.

    Uinstalling TinyDB

    If in case you need to uninstall TinyDB, you can use the following command −

    pip uninstall tinydb
    

    TinyDB – Insert Data

    We have created the instance of the TinyDB and passed a JSON file to it where our data will be stored. It is now time to insert the items in our database. The data should be in the form of a Python dictionary.

    Syntax

    To insert an item, you can use insert() method whose syntax is given below −

    db.insert({''type1'': ''value1'', ''type2'': ''value2'', ''typeN'': ''valueN''})
    

    We can also create a dictionary first and then use the insert() method to insert the data into our database.

    data_item = {''type1'': ''value1'', ''type2'': ''value2'', ''typeN'': ''valueN'' } db.insert(data_item)
    

    After running the above command, the insert() method will return the ID of the newly created object. And, our JSON file will look like the one shown below −

    {"_default": {"1": {"type1": "value1", "type2": "value2", "typeN": "valueN"}}}
    

    Look at the above table entries: ”default” is the name of the table, ”1” is the ID of the newly created object, and the values are the data we have just inserted.

    Example: Inserting a Single Item

    Let”s understand the above concept with the help of examples. Suppose we have a database having student information showing roll numbers, names, marks, subjects, and addresses. Following is the information stored in the database −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ]
    

    In the above database, if you want to insert a new student record (i.e., a single item), use the following command −

    db.insert({
       ''roll_number'': 6,
       ''st_name'':''jim'',
       ''mark'':300,
       ''subject'':''sql'',
       ''address'':''pune''
    })
    

    It will return the ID of the newly created object −

    6
    

    Let”s enter one more record

    db.insert({
       ''roll_number'': 7,
       ''st_name'':''karan'',
       ''mark'':290,
       ''subject'':''NoSQL'',
       ''address'':''chennai''
    })
    

    It will return the ID of the newly created object −

    7
    

    If you want to check the stored items in the database, use the all() method as follows −

    db.all()
    

    It will produce the following output

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       },
       {
          "roll_number":6,
          "st_name":"jim",
          "mark":300,
          "subject":"sql",
          "address":"pune"
       },
       {
          "roll_number":7,
          "st_name":"karan",
          "mark":290,
          "subject":"NoSQL",
          "address":"chennai"
       }
    ]
    

    You can observe that it added two new data items in the JSON file.

    Example: Inserting Multiple items at a Time

    You can also insert multiple items at a time in a TinyDB database. For this, you need to use the insert_multiple() method. Let” see an example −

    items = [
       {''roll_number'': 8, ''st_name'': ''petter'', ''address'': ''mumbai''},
       {''roll_number'': 9, ''st_name'': ''sadhana'', ''subject'': ''SQL''}
    ]
    db.insert_multiple(items)
    

    Now, check the stored items in database, using the all() method as follows −

    db.all()
    

    It will produce the following output

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       },
       {
          "roll_number":6,
          "st_name":"jim",
          "mark":300,
          "subject":"sql",
          "address":"pune"
       },
       {
          "roll_number":7,
          "st_name":"karan",
          "mark":290,
          "subject":"NoSQL",
          "address":"chennai"
       },
       {
          "roll_number":8,
          "st_name":"petter",
          "address":"mumbai"
       },
       {
          "roll_number":9,
          "st_name":"sadhana",
          "subject":"SQL"
       }
    ]
    

    You can observe that it added two new data items in the JSON file. You can also skip some key values from the dataitems (as we have done) while adding the last two items. We have skipped ”mark” and ”address”.

    TinyDB – Retrieve Data

    There are numerous ways with the help of which you can retrieve data from a TinyDB database. But to use those ways, you first need to create an instance of the Query class as follows −

    from tinydb import Query
    Student = Query()
    

    Here, Student is the name of the database.

    Let”s check the various ways to retrieve the information from a TinyDB database.

    Data Retrieval Using the Search() Method

    The search() method, as its name implies, returns the list of items that mathches the query we provided, otherwise it will return an empty list.

    For this and other examples, we will be using the following student database data −

    [
       {
          "roll_number": 1,
          "st_name": "elen",
          "mark": 250,
          "subject": "TinyDB",
          "address": "delhi"
       },
       {
          "roll_number": 2,
          "st_name": "Ram",
          "mark": [
             250,
             280
          ],
          "subject": [
             "TinyDB",
             "MySQL"
          ],
          "address": "delhi"
       },
       {
          "roll_number": 3,
          "st_name": "kevin",
          "mark": [
             180,
             200
          ],
          "subject": [
             "oracle",
             "sql"
          ],
          "address": "keral"
       },
       {
          "roll_number": 4,
          "st_name": "lakan",
          "mark": 200,
          "subject": "MySQL",
          "address": "mumbai"
       },
       {
          "roll_number": 5,
          "st_name": "karan",
          "mark": 275,
          "subject": "TinyDB",
          "address": "benglore"
       }
    ]
    

    Let”s take an example to understand the search() method −

    from tinydb import TinyDB, Query
    db = TinyDB("leekha.json")
    student = Query()
    db.search(student.subject == ''TinyDB'' )
    

    The above query will retrieve the the following output from the student database −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Data Retrieval Using the get() Method

    As opposed to the search() method, the get() method returns only one matching document. It will return None, otherwise. For example, let”s take the following code −

    from tinydb import TinyDB, Query
    student = Query()
    db.get(student.subject == ''TinyDB'' )
    

    The above query will retrieve the following data from the student database.

    [{''roll_number'': 1, ''st_name'': ''elen'', ''mark'': 250, ''subject'': ''TinyDB'', ''address'': ''delhi''}]
    

    Data Retrieval using the all() Method

    The all() method returns all the documents in the database. For example,

    db.all()
    

    It will retrieve the entire data from the student database.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Data Retrieval Using the for Loop

    The for loop also returns all the documents in the database. For example,

    for info in db:
       print(info)
    

    Just like the all() method, it will retrieve all the rows from the student database.

    TinyDB – Update Data

    TinyDB can store data in many formats and we can easily reterive the stored data using various methods. But sometimes, we need to update the data, for which we can use the update() method.

    For updating the database, we first need to create an instance of the Query class. You can use the following command for this purpose −

    from tinydb import Query
    Student = Query()
    

    Here, Student is the name of our database.

    The update() Method

    Here is the syntax for the update() method −

    db.update({ updated field: updated information… }, stable field: information)
    

    Let”s take an example to understand how the update() method works. For this example, we will be using the following student database −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    As per the given data, the name of the student with the roll_number “1” is “elen”. The following query will update the student name to “Adam” −

    from tinydb import TinyDB, Query
    student = Query()
    db.update({''st_name'' : ''Adam''}, student.roll_number == 1 )
    

    It will return the id of the updated object −

    [1]
    

    Now, you can use the all() method to see the updated database −

    db.all()
    

    It will display the updated data −

    [
       {
          "roll_number":1,
          "st_name":"Adam",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Sometimes, we need to update one or more fields of all the documents in a database. For this, we can use the update() mehod directly and don”t need to write the query argument. The following query will change the address of all the students to ”College_Hostel”−

    db.update({''address'': ''College_Hostel''})
    

    It will return the ids of the updated object −

    [1,2,3,4,5]
    

    Again, you can use the all() method to see the updated database.

    db.all()
    

    It will show the updated data −

    [
       {
          "roll_number":1,
          "st_name":"Adam",
          "mark":250,
          "subject":"TinyDB",
          "address":"College_Hostel"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":" College_Hostel "
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":" College_Hostel "
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":" College_Hostel "
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":" College_Hostel "
       }
    ]
    

    Observe that the address fields of all the rows have the same data, i.e., ”College_Hostel”.

    TinyDB – Delete Data

    In case you need to delete a particular set of data permanently from a TinyDB database, you can do so by using the remove() method. Like for reteriving and updating the data, you first need to create an instance of the Query class for deleting the data. You can use the following command for this purpose −

    from tinydb import Query
    Student = Query()
    

    Here, Student is the name of our database.

    The remove() Method

    Here is the syntax for the remove() method −

    db.remove( Query() field regex )
    

    The remove() method accepts both an optional condition as well as an optional list of documents IDs.

    The student Database

    We will use the following student database, for the examples in this chapter.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example: Deleting a Single Row of Data

    Let”s take an example to understand the remove() method.

    from tinydb import TinyDB, Query
    student = Query()
    db.remove(student.roll_number == 5)
    

    The above query will delete the data where the student”s roll number is 5. It will return the ID of the removed object −

    [5]
    

    Now, we can use the all() method to see the updated database.

    db.all()
    

    It will display the data from the updated database −

    [
       {
          "roll_number":1,
          "st_name":"Adam",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       }
    ]
    

    Example: Deleting Multiple Rows of Data

    If you want to remove more than one row at a time, you can use the remove() method as follows −

    from tinydb import TinyDB, Query
    student = Query()
    db.remove(student.roll_number > 2)
    

    It will return the IDs of the removed object:

    [3,4]
    

    Use the all() method to see the updated database.

    db.all()
    

    It will display the data from the updated database −

    [
       {
          "roll_number":1,
          "st_name":"Adam",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       }
    ]
    

    Example: Deleting the Entire Data

    If you want to remove all the data from a database, you can use the truncate() method as follows −

    db.truncate()
    

    Next, use the all() method to see the updated database.

    db.all()
    

    It will show an empty database as the output

    []
    

    TinyDB – Querying

    TinyDB has a rich set of queries. We have ways to construct queries: the first way resembles the syntax of ORM tools and the second is the traditional way of using the ”Where” clause.

    In this chapter, let”s understand these two ways of constructing a query in a TinyDB database.

    The First Method: Importing a Query

    The first method resembles the syntax of ORM tools in which first we need to import the query in the command prompt. After importing, we can use the query object to operate the TinyDB database. The syntax is given below −

    from tinydb import Query
    student = Query()
    

    Here, ”student” is the name of our database. For the examples, we will be using the following student database.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example

    Following is the query to retereive the data from the student database where the roll_no of the students are less than 3 −

    >>> db.search(Query().roll_number < 3)
    

    Or,

    >>> student = Query()
    >>> db.search(student.roll_number < 3)
    

    The above search query will produce the following result −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       }
    ]
    

    Sometimes the file name is not a valid Python identifier. In that case, we would not be able to access that field. For such cases, we need to switch to dict access notation as follows −

    student = Query();
    
    # Invalid Python syntax
    db.search(student.security-code == ''ABCD'')
    
    # Use the following dict access notation
    db.search(student[''security-code''] == ''ABCD'')
    

    The Second Method: Using the “where” Clause

    The second way is the traditional way of constructing queries that uses the “where” clause. The syntax is given below −

    from tinydb import where
    db.search(where(''field'') == ''value'')
    

    Example

    TinyDB “where” clause for the subject field −

    db.search(where(''subject'') == ''MySQL'')
    

    The above query will produce the following output

    [{
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
    }]
    

    TinyDB – Searching

    TinyDB provides the search() method to help you search any data from a document. Along with the query() object, the search() method can be used to find the data in a JSON file. We have various ways in which we can use the search() method on a TinyDB database.

    Method 1: TinyDB search() with Existence of a Field

    We can search the data from a database based on the existence of a field. Let”s understand it with an example. For this and other examples, we will be using the following student database.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example

    The search query based on the existence of a field is as follows −

    from tinydb import Query
    student = Query()
    db.search(student.address.exists())
    

    The above query will retrieve the following data from the student file −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Method 2: TinyDB search() with Regular Expression

    We can search for a particular data from a database using regular expression (Regex). Let”s understand how it works with a couple of examples.

    Example 1

    Full item search matching the Regular Expression −

    from tinydb import Query
    student = Query()
    db.search(student.st_name.matches(''[aZ]*''))
    

    This query will produce the following output

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example-2

    Case-sensitive search with Regular Expression −

    from tinydb import Query
    import re
    student = Query()
    db.search(student.st_name.matches(''lakan'', flags=re.IGNORECASE))
    

    It wil produce the following output

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    Example-3

    Any part of the item matching with Regular Expression −

    from tinydb import Query
    student = Query()
    db.search(student.st_name.search(''r+''))
    

    This query will produce the following output

    [{
       ''roll_number'': 5,
       ''st_name'': ''karan'',
       ''mark'': 275,
       ''subject'': ''TinyDB'',
       ''address'': ''benglore''
    }]
    

    Method 3: TinyDB search() using a Substring

    We can also use a substring while searching for a particular data from a TinyDB database. Let”s understand how it works with a couple of examples −

    Example-1

    Take a look at this query; it will fetch the all the rows where the “address” field is “delhi”.

    from tinydb import Query
    student = Query()
    db.search(student[''address''] == ''delhi'')
    

    It will produce the following output

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       }
    ]
    

    Example-2

    In this query, we have used a slightly different syntax for the search() method.

    from tinydb import Query
    student = Query()
    db.search(student.address.search(''mumbai''))
    

    It will fetch all the rows where the “address” field is “mumbai”.

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    TinyDB – The where Clause

    TinyDB provides the “where” clause that you can use while searching for a particular data. The “where” clause helps by filtering the unwanted data out. With the help of the “where” clause, you can access specific data quickly.

    Before using the ”where” clause, we need to first import it. The syntax of “where” clause is given below −

    from tinydb import where
    db.search(where(''field'') == ''value'')
    

    Let”s understand the use of ”where” clause with the help of a couple of examples.

    The Student Database

    For the examples, we will use the following student database.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example 1

    Let”s use the “where” clause for the subject field −

    db.search(where(''subject'') == ''MySQL'')
    

    This query will fetch all the rows where the “subject” field is “MySQL”.

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    Example 2

    Let”s see another use of the “where” clause with the “not equal to” condition −

    db.search(where(''mark'') != 275)
    

    This query will fetch all the rows where the “mark” field is not equal to “275” −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       }
    ]
    

    TinyDB – The exists() Query

    TinyDB provides an advanced query called exists() that checks the existence of data in a JSON file. The exists() query actually tests the availability of a subfield data from a JSON file. The exists() query works on the basis of a Boolean condition. If the subfield exists (i.e., BOOLEAN TRUE), it will fetch the data accordingly from the JSON file, otherwise it will return a blank value.

    Syntax

    The syntax of TinyDB exists() is as follows −

    db.search(Query().field.exists())
    

    Here, field represents the part of data that we want to access. Query() is the object created from the JSON table student.

    We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s use the TinyDB exists() query for the field named ”subject” −

    db.search(student.subject.exists())
    

    This query will fetch all the rows because all the rows have the “subject” field −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":" TinyDB ",
          "address":"benglore"
       }
    ]
    

    Example 2

    Now let”s use the exists() query for the ”address” field −

    db.search(student.address.exists())
    

    It will fetch the following rows −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":" TinyDB ",
          "address":"benglore"
       }
    ]
    

    Example 3

    Now, let”s try the exists() query for a field that is not available −

    db.search(student.city.exists())
    

    Since none of the rows in the given table has a field called “city”, the above exists() query will return a blank value −

    []
    

    TinyDB – The matches() Query

    The matches() query matches the data from a JSON file with a given condition (in the form of a regular expression) and returns the results accordingly. It will return a blank value if the condition does not match with the data in the file.

    Syntax

    The syntax of TinyDB matches() is as follows −

    db.search(Query().field.matches(regular expression))
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.

    Let”s understand how it works with the help of a couple of examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can use matches() for full item search.

    from tinydb import Query
    student = Query()
    db.search(student.st_name.matches(''[aZ]*''))
    

    This query will fetch all the rows −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example 2

    Let”s see how we can use matches() for case-sensitive search.

    from tinydb import Query
    import re
    student = Query()
    db.search(student.st_name.matches(''ram'', flags=re.IGNORECASE))
    

    This query will fetch the rows where the student name matches the string “ram”. Observe that we have used a flag to ignore the case while matching the strings.

    [{
       ''roll_number'': 2,
       ''st_name'': ''Ram'',
       ''mark'': [250, 280],
       ''subject'': [''TinyDB'', ''MySQL''],
       ''address'': ''delhi''
    }]
    

    Example 3

    Let”s see how we can use matches() for a particular item.

    student = Query()
    db.search(student.address.matches(''keral''))
    

    This query will fetch the rows where the address matches the string “keral”.

    [{''roll_number'': 3, ''st_name'': ''kevin'', ''mark'': [180, 200], ''subject'':
    [''oracle'', ''sql''], ''address'': ''keral''}]
    

    Example 4

    Let”s see what matches() would return when it does not find a particular item −

    student = Query()
    db.search(student.address.matches(''Ratlam''))
    

    There are no rows where the “address” field matches the string “Ratlam”, hence it will return a blank value −

    []
    

    TinyDB – The test() Query

    The test() query will test if the given arguments match with the data in a table. If it matches with the data, it will return the matched data, otherwise it will return blank. First of all, we need to define a test function and its arguments and then it will search the item in a given database.

    Syntax

    The syntax of TinyDB test() is as follows −

    db.search(Query().field.test(function or condition, *arguments))
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.

    We can create a custom test function as follows −

    object = lambda t: t == ''value''
    

    Here the lamba keyword is important to create the custom test function.

    Let”s understand how it works with the help of a couple of examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    We will first create a test function and then use it in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    objects = lambda t: t == [250, 280]
    db.search(Query().mark.test(objects))
    

    It will fetch the rows where the “mark” field has the values [250, 280] −

    [{''roll_number'': 2, ''st_name'': ''Ram'', ''mark'': [250, 280], ''subject'':
    [''TinyDB'', ''MySQL''], ''address'': ''delhi''}]
    

    Example 2

    In this example, we will use the “subject” field in the test function −

    student = Query()
    db = TinyDB(''student.json'')
    objects = lambda t: t == ''TinyDB''
    db.search(student.subject.test(objects))
    

    This query will fetch all the rows where the “subject” field has the value “TinyDB” −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    TinyDB – The any() Query

    For searching the fields containing a list, TinyDB provides a method called any(). This method matches at least one given value from the database. It finds either an entire list or a minimum one value as per the query provided.

    Syntax

    The syntax of TinyDB any() is as follows −

    db.search(Query().field.any(query|list)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.

    • If we will provide query as the argument of any() method, it will match all the documents where at least one document in the list field match the given query.

    • On the other hand, if we will provide list as the argument of any() method, it will match all the documents where at least one document in the list field is present in the given list.

    Let”s understand how it works with the help of a couple of examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can find the fields from our student table where subject is either TinyDB, or MySQL, or SQL or combination of any two or three −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().subject.any([''TinyDB'', ''MySQL'', ''oracle'']))
    

    The above query will fetch all the rows where the “subject” field contains any of the following values: “TinyDB”, “MySQL”, or “oracle” −

    [
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       }
    ]
    

    Example 2

    Let”s see how the any() method reacts when it doesn”t match anything from the given list −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().subject.any([''Oracle'']))
    

    This query will return a blank value because there are no rows with its “subject” as “Oracle”.

    []
    

    Example 3

    Observe that it is case-sensitive. The “subject” field does not have “Oracle“, but it does have “oracle“. Try the following query −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().subject.any([''oracle'']))
    

    It will fetch the following row −

    [{
       ''roll_number'': 3,
       ''st_name'': ''kevin'',
       ''mark'': [180, 200],
       ''subject'': [''oracle'', ''sql''],
       ''address'': ''keral''
    }]
    

    As it is case-sensitive, it returned a blank value in the previous example because there are no rows with its “subject” as “Oracle”.

    TinyDB – The all() Query

    TinyDB provides a method called all() that finds an entire list of values as per the query provided. Let”s take an example and find out how it works.

    Syntax

    The syntax of TinyDB all() is as follows −

    db.search(Query().field.all(query|list)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student.

    • If we will provide a query as the argument of all() method, it will match all the documents where all documents in the list field match the given query.

    • On the other hand, if we will provide a list as the argument of all() method, it will match all the documents where all documents in the list field are present in the given list.

    Let”s understand how it works with the help of a couple of examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can find the fields from our student table where the subjects are both TinyDB, and MySQL −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().subject.all([''TinyDB'', ''MySQL'']))
    

    This query will fetch the following row −

    [{
       ''roll_number'': 2,
       ''st_name'': ''Ram'',
       ''mark'': [250, 280],
       ''subject'': [''TinyDB'', ''MySQL''],
       ''address'': ''delhi''
    }]
    

    Example 2

    Let”s see how we can use all() to get the entire data from our database −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.all()
    

    It will fetch all the rows from the linked database −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    TinyDB – The one_of() Query

    For matching the subfield data, TinyDB provides a method called one_of(). This method searches a single category and gets at least one similar value. It will match if the field is contained in the provided list.

    Syntax

    The syntax of TinyDB one_of() is as follows −

    db.search(Query().field.one_of(list)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student. It will fetch either single or multiple values of one category.

    Let”s understand how it works with the help of a couple examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can find the fields from our student table where address is either “delhi” or “pune” −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().address.one_of([''delhi'', ''pune'']))
    

    It will fetch all the rows where the “address” field contains either “delhi” or “pune”.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       }
    ]
    

    Example 2

    Let”s see another example with ”subject” field −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(Query().subject.one_of([''TinyDB'', ''MySQL'']))
    

    It will fetch all the rows where the “subject” field contains either “TinyDB” or “MySQL”.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":4,
          "st_name":"lakhan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    TinyDB – Logical Negate

    Logical Negate works as an inverse logical gate. It will match the documents that don”t match the given query. In simple words, it will display the opposite meaning of the given command.

    Syntax

    The syntax of TinyDB Logical Negate is as follows −

    db.search(~(Query().field)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student. It will fetch the data that represents the opposite meaning of the given command.

    Let”s take a couple of examples and see how it works. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can find the fields from our student table where the student name is not ”elen” −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(~(Query().st_name == ''elen''))
    

    The above query will fetch all the rows where the student name is not “elen”.

    [
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example 2

    Let”s see how we can avoid a particular address using logical negate −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search(~(student.address.one_of([''keral'', ''delhi''])))
    

    This query will fetch all the rows where the “address” field does not have either “keral” or “delhi”.

    [
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    TinyDB – Logical AND

    The “Logical AND” operator combines multiple conditions and evaluates to True if all the conditions are met. TinyDB Logical AND operates on two queries of a database. If both the queries are True, TinyDB will fetch the required data. On the other hand, if any one of the queries is False, it will return a blank.

    Syntax

    The syntax of TinyDB Logical AND is as follows −

    db.search((Query().(query1) & (Query().(query2)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student. It will fetch the data if both the conditions met, otherwise it will return a blank.

    Let”s take a couple examples and see how Logial AND works. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see what our TinyDB Student database returns when we apply Logical AND on “st_name=lakhan” and “subject=MYSQL” field −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search ((Query().st_name == ''lakhan'') & (Query().subject == ''MySQL''))
    

    This query will fetch only those rows where the student name is “lakhan” and the “subject” is “MySQL”.

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakhan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    Example 2

    In this example, let”s apply Logical AND on the “subject” and “roll_number” fields −

    from tinydb import TinyDB, Query
    student = Query()
    db = TinyDB(''student.json'')
    db.search((student.subject.search(''M'')) & (student.roll_number < 5))
    

    This query will fetch all the rows where the roll_number is less than “4” and “subject” starts with the letter “M”.

    [{
       ''roll_number'': 4,
       ''st_name'': ''lakhan'',
       ''mark'': 200,
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }]
    

    TinyDB – Logical OR

    The “Logical OR” operator combines multiple conditions and evaluates to True only if either of the condition is met. TinyDB Logical OR operates on two queries of a database. If any one of the queries is True, TinyDB will fetch the required data. On the other hand, if both the queries are False, it will return a blank.

    Syntax

    The syntax of TinyDB Logical OR is as follows −

    db.search((Query().(query1) | (Query().(query2)
    

    Here, field represents the part of data that we want to access. Query() is the object created of our JSON table named student. It will fetch the data if any one of the conditions is met, otherwise it will return a blank.

    Let”s take a couple of examples and see how it works. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see what our TinyDB Student database returns when we apply Logical OR on the “st_name” and “subject” fields and check the following conditions: “st_name=lakhan” and “subject=TinyDB” −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search ((Query().st_name == ''lakan'') | (Query().subject == ''TinyDB''))
    

    This query will fetch the following rows −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":4,
          "st_name":"lakhan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       }
    ]
    

    Example 2

    In this example, let”s apply Logical OR on the “subject” and “roll_number” fields −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.search((student.subject.search(''M'')) | (student.roll_number < 5))
    

    This query will fetch all the rows where the “subject” field starts with the letter “M” or the “roll_number” is less than “5”.

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakhan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       }
    ]
    

    TinyDB – Handling Data Query

    TinyDB – Storing Multiple Data

    We have already discussed how you can use the ”insert” query to store data in a database. On a similar note, you can use the ”insert_multiple” query to store multiple data items simultaneously. Here is the syntax of ”insert_multiple” query in TinyDB:

    db.insert_multiple ([
       { key1 : value1, key2 : value2, ..., keyN : valueN},
       { key1 : value1, key2 : value2, ..., keyN : valueN }
    ])
    

    Let”s take a couple of examples to demonstrate how the “insert_multiple” query works. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can insert two records of students in our ”student” table using the insert_multiple query −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.insert_multiple([
       {
          "roll_number":6,
          "st_name":"Siya",
          "mark":240,
          "subject":"NoSQL",
          "address":"pune"
       },
       {
          "roll_number":7,
          "st_name":"Adam",
          "mark":210,
          "subject":"oracle",
          "address":"Keral"
       }
    ])
    

    It will display the document IDs of the newly saved records −

    [6, 7]
    

    Let”s check whether the new records are saved in the database or not? Use the all() method, as shown below −

    db.all()
    

    It will show all the records stored in the given table −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       },
       {
          "roll_number":6,
          "st_name":"Siya",
          "mark":240,
          "subject":"NoSQL",
          "address":"pune"
       },
       {
          "roll_number":7,
          "st_name":"Adam",
          "mark":210,
          "subject":"oracle",
          "address":"Keral"
       }
    ]
    

    You can see the two new records of students have been saved in the database.

    Example 2

    Let”s see how we can use insert_multiple with a for loop to insert multiple values simultaneously in a table. Use the following code −

    db.insert_multiple({''roll_number'': 10, ''numbers'': r} for r in range(3))
    

    It will return the document IDs of the newly saved records −

    [8, 9, 10]
    

    Again, use the all() method to verify whether the new records have been saved in the database or not?

    db.all()
    

    It will fetch all the records stored in the given student table −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"TinyDB",
          "address":"benglore"
       },
       {
          "roll_number":6,
          "st_name":"Siya",
          "mark":240,
          "subject":"NoSQL",
          "address":"pune"
       },
       {
          "roll_number":7,
          "st_name":"Adam",
          "mark":210,
          "subject":"oracle",
          "address":"Keral"
       },
       {
          "roll_number":10,
          "numbers":0
       },
       {
          "roll_number":10,
          "numbers":1
       },
       {
          "roll_number":10,
          "numbers":2
       }
    ]
    

    Notice the last three rows. We have used the insert_multiple method with a for loop to insert three new entries.

    TinyDB – Modifying the Data

    We have already discussed the update query with the help of which we can modify the values as well as handle the data in our database. But the update query such as db.update(fields, query) allows us to update a document by adding or overwriting its values.

    But sometimes, we would like to remove one field or need to increment its value. In such cases, we can pass a function instead of fields. We can use the following operations with the update query −

    The Increment Query

    The increment query, as its name implies, is used to increment the value of a key in the database. The syntax of increment query is as follows −

    from tinydb.operations import increment
    db.update(increment(''key''))
    

    The Add Query

    The add query is used to add value to the value of a key. It works for the strings as well. The syntax of add query is as follows −

    from tinydb.operations import add
    db.update(add(key, value))
    

    The Set Query

    This query is used to set the key to the value of the data. The syntax of set query is as follows −

    from tinydb.operations import set
    db.update(set(key, value))
    

    The Decrement Query

    The decrement query is used to decrement the value of a key. The syntax of decrement query is as follows −

    from tinydb.operations import decrement
    db.update(decrement(key))
    

    The Subtract Query

    The subtarct query is used to subtract value from the value of a key. The syntax of subtract query is as follows −

    from tinydb.operations import subtract
    db.update(subtract(key, value))
    

    The Delete Query

    The delete query is used to delete a key from a document. The syntax of delete query is as follows −

    from tinydb.operations import delete
    db.update(delete(key))
    

    Let”s take a couple of examples to demonstrate how you can use these operations along with the update query. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can increment the marks of a student in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import increment
    db.update(increment(''mark''), Query().mark == 275)
    

    It will produce the following output

    [5]
    

    The above output shows that it has updated the record whose document ID is 5.

    Example 2

    Let”s see how we can add 5 marks to the marks of a student in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import add
    db.update(add(''mark'', 5), Query().mark == 200)
    

    It will produce the following output

    [4]
    

    The above output shows that it has updated the record whose document ID is 4.

    Example 3

    Let”s see how we can set the marks to 259 where the marks of a student are 250 in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import add
    db.update(add(''mark'', 259), Query().mark == 250)
    

    It will produce the following output

    [1]
    

    The above output shows that it has updated the record whose document ID is 1.

    Example 4

    Let”s see how we can decrement the marks of a student in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import decrement
    db.update(decrement(''mark''), Query().mark == 205)
    

    It will produce the following output

    [4]
    

    The above output shows that it has updated the record whose document ID is 4.

    Example 5

    Let”s see how we can subtract 5 marks to the marks of a student in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import add
    db.update(add(''mark'', 5), Query().mark == 204)
    

    It will produce the following output

    [4]
    

    The above output shows that it has updated the record whose document ID is 4.

    Example 6

    Let”s see how we can subtract 5 marks to the marks of a student in our student table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb.operations import delete
    db.update(delete(''mark''), Query().mark == 209)
    

    It will produce the following output

    [4]
    

    The above output shows that it has updated the record whose document ID is 4. It will delete the mark field from the database where the value is 209.

    Example 7

    Let”s see how we can update multiple values in a table with a single query −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    from tinydb import where
    db.update_multiple([
       ({''st_name'':''Eliana''}, where (''roll_number'')==1),
       ({''mark'':20}, where (''roll_number'') ==2)
    ])
    

    It will produce the following output

    [1,2]
    

    The above output shows that it has updated two records whose document IDs are 1 and 2.

    TinyDB – Upserting Data

    We discussed the update and insert queries, but sometimes, we a need a mix of both update and insert. In such cases, TinyDB provides a unique upsert query. This query helps us to insert and update data at a time as per the condition. It works in two ways −

    • If data is available, then it chooses the update operation.

    • If data is not available, then it chooses the insert operation.

    Syntax

    The syntax of upsert query is as follows −

    db.upsert({ ''key'' : ''value'', ''logged - in'' : True}, regular expression)
    

    Let”s take a couple of examples to demonstrate how you can use this upsert query in TinyDB. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can use the upsert query to change the address of a student to “surat”, whose roll numbe is 2. In this case, we we have a matching user, hence it will update with the address to have logged-in set to True −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.upsert({''address'':''Surat''}, Query().roll_number==2)
    

    It will produce the following output, which means record number “2” got updated.

    [2]
    

    Use the following code to verify whether record number “2” got updated or not −

    db.get(doc_id=2)
    

    It will show the updated data −

    {
       ''roll_number'': 2,
       ''st_name'': ''Ram'',
       ''mark'': [250, 280],
       ''subject'': [''TinyDB'', ''MySQL''],
       ''address'': ''Surat''
    }
    

    Example 2

    Let”s see how we can use the upsert query for unavailable data in our table −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.upsert({''E-mail'':''ram@gmail.com'',''logged-in'': True},
    Query().roll_number==2)
    

    It will show the following output, which means the document with the ID “2” got updated.

    [2]
    

    Use the following code to verify the updated values −

    db.get(doc_id=2)
    

    It will produce the following output −

    {
       "roll_number":2,
       "st_name":"Ram",
       "mark":[
          250,
          280
       ],
       "subject":[
          "TinyDB",
          "MySQL"
       ],
       "address":"Surat",
       "logged-in":true,
       "E-mail":"ram@gmail.com"
    }
    

    Notice that we used the upsert query to create a new key (E-mail) which was non-existent and supplied it with the value “ram@gmail.com“.

    TinyDB – Retrieving Data

    After creating a database, we need to frequently retrieve the data from that database. Following are the ways by which we can reterive the data from a database −

    The len() Query

    With the help of this query, we can get the number of documents in a database. Its syntax is as follows −

    len(db)
    

    The get Query

    The get query is used to reterive specific documents matching a query. Its syntax is as follows −

    db.get(query)
    

    The contains Query

    The contains query is used to check whether the database contains a matching value or not. Its syntax is as follows −

    db.contains(query)
    

    The count Query

    The count query is used to retrieve the number of matching documents from a database. Its syntax is as follows −

    db.count(query)
    

    Let”s take a few examples to understand how these queries work in TinyDB. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can use the len() query to get the number of documents in our database −

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    print ("Number of documents in student db: ", len(db))
    

    It will show the number of documents present in the specified database −

    Number of documents in student db: 5
    

    Example 2

    Let”s see how we can use the get() query to get a specific document from our database −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.get(Query().address == ''delhi'')
    

    This query will fetch the row where the “address” field has the value “delhi”.

    {
       ''roll_number'': 1,
       ''st_name'': ''elen'',
       ''mark'': 250,
       ''subject'': ''TinyDB'',
       ''address'': ''delhi''
    }
    

    Example 3

    Let”s see how we can use the contains() query to verify if our database contains a specific value −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    db.contains(Query().address == ''delhi'')
    

    The contains() query returns a Boolean value, based on the existence of the specified value in the given database. In this case, it will return “True” because our database does have a “address” key with the value “delhi”.

    True
    

    Example 4

    Let”s see how we can use the count() query to get the number of documents for which a given condition is True −

    from tinydb import TinyDB, Query
    db = TinyDB(''student.json'')
    print (db.count(Query().subject == ''NoSQL''))
    

    It will return the following output

    3
    

    It means there are 3 documents in the database where the “subject” key has the value “NoSQL”.

    TinyDB – Document ID

    TinyDB uses document ID, represented by doc_id, to access as well as modify the value of documents in a database. Here we will see how we can use this document_id for various operations.

    Display Data using Document ID

    We can use doc_id in get() method to display the data from a database. Its syntax is as follows −

    db.get(doc_id = value)
    

    Check for a Document in a Database

    We can use doc_id in contains() method to check if a document is present in a database or not. Its syntax is given below −

    db.contains(doc_id = value)
    

    Update All Documents

    We can use doc_id in update() method to update all the documents in a database with the given document IDs. Here is its syntax

    db.update({key : value}, doc_ids = […])
    

    Remove a Document

    We can use doc_id in remove() method to remove a specific document or all the documents in a database with the given document IDs. Its syntax is given below −

    db.remove(doc_ids = […])
    

    Let”s take a few examples to demonstrate how you can use doc_id in TinyDB with these methods. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Let”s see how we can use doc_id to get the data of a specific document from a database −

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    db.get(doc_id = 5)
    

    It will fetch the data from the document with the doc_id “5”.

    {
       ''roll_number'': 5,
       ''st_name'': ''karan'',
       ''mark'': 275,
       ''subject'': ''oracle'',
       ''address'': ''benglore''
    }
    

    Example 2

    Let”s see how we can use doc_id to check if the database contains a document with a specific ID −

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    db.contains(doc_id = 15)
    

    Based on the availability of the document, it will return either True or False. In this case, our database does not have a document with the doc_id “15”. Hence, it returns False.

    False
    

    Example 3

    Let”s see how we can use doc_id to update the documents of our database −

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    db.update({''mark'':''280''}, doc_ids = [4])
    

    Here, we updated the “marks” field of the document with the doc_id “4”. To check the updated data, use the following query −

    print(db.get(doc_id=4))
    

    It will display the updated data of the document with the doc_id “4” −

    {
       ''roll_number'': 4,
       ''st_name'': ''lakan'',
       ''mark'': ''280'',
       ''subject'': ''MySQL'',
       ''address'': ''mumbai''
    }
    

    Example 4

    Let”s see how we can use doc_id to remove specific documents from our database −

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    db.remove(doc_ids = [3,4])
    

    Here, we removed two documents with doc_ids “3” and “4”. To verify, use the following get() queries −

    db.get(doc_id=3)
    db.get(doc_id=4)
    

    It will show the following output −

    None
    None
    

    It means that we have successfully removed the documents with doc_ids “3” and “4”.

    TinyDB – Tables

    In TinyDB, we can work with multiple tables. These tables have the same properties as the TinyDB class. Let”s see how we can create tables in TinyDB and apply various operations on them −

    Creating Tables

    It’s very easy to create a table in TinyDB. Here”s its syntax −

    table_object = db.table(''table name'')
    

    Inserting Values in a Table

    To insert data in a specific table, use the following syntax −

    table_object.insert({ ''key'' : value })
    

    Retreiving Values from a Table

    To retrieve values from a table, use the following query −

    table_object.all()
    

    Deleting a Table from a Database

    To delete a table from a database, use the drop_table() query. Here is its syntax

    db.drop_table(''table name'')
    

    Delete Multiple Tables from a Database

    To delete multiple tables from a database, use the following query −

    db.drop_tables()
    

    Let”s understand how to use these queries with the help of a few examples. We will use the same student database that we have used in all the previous chapters.

    Example 1

    Use the following code to create a new table called Student_Detail

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    table_object = db.table(''Student_Detail'')
    

    Example 2

    Next, let”s insert values in this new table Student_Detail

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    table_object = db.table(''Student_Detail'')
    table_object.insert({
       ''roll_number'': 1,
       ''st_name'': ''elen'',
       ''mark'': 250,
       ''subject'': ''TinyDB'',
       ''address'': ''delhi''
    })
    

    It will return the doc_id of the record inserted in the table.

    [1]
    

    To verify, use the following code −

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    table_object = db.table(''Student_Detail'')
    table_object.all()
    

    It will show data contained in the Student_Detail table −

    {''roll_number'': 1, ''st_name'': ''elen'', ''mark'': 250, ''subject'': ''TinyDB'', ''address'': ''delhi''}
    

    Example 3

    To see all the tables present in the database, use the following query −

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    print(db.tables())
    

    There are two tables inside “student.json”. It will show the names of these two tables −

    {''Student_Detail'', ''_default''}
    

    Example 4

    Let”s see how we can reterive all the values from a table −

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    table_object = db.table("Student_Detail")
    print(table_object.all())
    

    It will show the following output

    [{
       ''roll_number'': 1,
       ''st_name'': ''elen'',
       ''mark'': 250,
       ''subject'': ''TinyDB'',
       ''address'': ''delhi''
    }]
    

    Example 5

    Let”s see how we can remove a table from a database −

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    db.drop_table(''Student_Detail'')
    

    It will remove the “Student_Detail” table from the database. To remove all the tables from a database, use the “drop_tables()” query −

    db.drop_tables()
    

    It will remove all the tables from the database.

    TinyDB – Default Table

    TinyDB provides a default table in which it automatically saves and modifies the data. We can also set a table as the default table. The basic queries, methods, and operations will work on that default table. In this chapter, let”s see how we can see the tables in a database and how we can set a table of our choice as the default table −

    Showing the Tables in a Database

    To get the list of all the tables in a database, use the following code −

    from tinydb import TinyDB, Query
    db = TinyDB("student.json")
    db.tables()
    

    It will produce the following output: We have two tables inside “student.json”, hence it will show the names of these two tables −

    {''Student_Detail'', ''_default''}
    

    The output shows that we have two tables in our database, one is “Student_Detail” and the other “_default”.

    Displaying the Values of the Default Table

    If you use the all() query, it will show the contents of the default table −

    from tinydb import TinyDB
    db = TinyDB("student.json")
    db.all()
    

    To show the contents of the “Student_Detail” table, use the following query −

    from tinydb import TinyDB
    db = TinyDB("student.json")
    print(db.table("Student_Detail").all())
    

    It will show the contents of the “Student_Detail” table −

    [{
       ''roll_number'': 1,
       ''st_name'': ''elen'',
       ''mark'': 250,
       ''subject'': ''TinyDB'',
       ''address'': ''delhi''
    }]
    

    Setting a Default Table

    You can set a table of your choice as the default table. For that, you need to use the following code −

    from tinydb import TinyDB
    db = TinyDB("student.json")
    db.default_table_name = "Student_Detail"
    

    It will set the “Student_Detail” table as the default table for our database.

    TinyDB – Caching Query

    Catching query is an advanced feature of TinyDB with the help of which it caches the query result for performance optimization. In this way, when we run the same query again, TinyDB doesn”t need to read the data from the storage. We can pass the cache_size to the table function to optimize the query cache size.

    Syntax

    The syntax of TinyDB query caching is shown below −

    table = db.table(''table_name'', cache_size=value)
    

    Example

    TinyDB creates cache size memory in given table.

    from tinydb import TinyDB
    db = TinyDB(''student.json'')
    objects = db.table(''Student_Detail'', cache_size = 50)
    objects.all()
    

    It will produce the following output. Observe that cache size does not affect the table values.

    [{
       ''roll_number'': 1,
       ''st_name'': ''elen'',
       ''mark'': 250,
       ''subject'': ''TinyDB'',
       ''address'': ''delhi''
    }]
    

    We can set unlimited cache size by putting “cache_size = None”.

    objects = db.table(''Student_Detail'', cache_size = None)
    

    We can also disable the cache size by putting “cache_size = 0”.

    objects = db.table(''Student_Detail'', cache_size = 0)
    

    To clear the cache size, use the following query −

    db.clear_cache()
    

    TinyDB – Storage Types

    TinyDB has two types of storage: JSON and in-memory. TinyDB, by default, stores the data in JSON files. While creating a database, you need to specify the path where to store the JSON file on your computer.

    Storing Data in a JSON File

    First, let”s see how we can use a JSON file to store the data −

    from tinydb import TinyDB, where
    db = TinyDB(''path/to/file_name.json'')
    

    Example 1

    In this example, we are showing how you can insert multiple documents into a JSON file −

    from tinydb import TinyDB
    db = TinyDB(''storage.json'')
    db.insert_multiple([
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakhan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ])
    

    Here, we inserted 5 documents inside “storage.json”. To verify the records, use the following query −

    db.all()
    

    It will show the contents of “storage.json” file −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakhan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ]
    

    Using in-memory to Store Data

    Now, let”s see how we can use “in-memory” to store the data −

    from tinydb import TinyDB
    from tinydb.storages import MemoryStorage
    object = TinyDB(storage = MemoryStorage)
    TinyDB.DEFAULT_STORAGE = MemoryStorage
    

    Example 2

    The following example shows how you can insert multiple documents in default storage memory −

    from tinydb import TinyDB
    from tinydb.storages import MemoryStorage
    object = TinyDB(storage = MemoryStorage)
    TinyDB.DEFAULT_STORAGE = MemoryStorage
    object.insert_multiple([
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ])
    

    To verify whether the documents have been inserted or not, use the following query −

    object.all()
    

    The following output shows the inserted data −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ]
    

    TinyDB – Middleware

    TinyDB middleware helps us to customize database storage behavior by wrapping around the existing storage. This middleware improves the performance of the database.

    Caching Middleware

    This middleware, as its name implies, improves the speed of a database by reducing the disk I/O. The working of CachingMiddleware is as follows −

    • First, it catches all the read operations.

    • Then it writes the data to the disk after a configured number of write operations.

    Syntax

    The syntax to use CachingMiddleware is as follows −

    from tinydb.storages import JSONStorage
    from tinydb.middlewares import CachingMiddleware
    db = TinyDB(''middleware.json'', storage = CachingMiddleware(JSONStorage))
    db.close()
    

    Example

    The following example shows how you can perform a basic middleware procedure in a database.

    from tinydb import TinyDB
    from tinydb.storages import JSONStorage
    from tinydb.middlewares import CachingMiddleware
    object = TinyDB(''storage.json'', storage=CachingMiddleware(JSONStorage))
    object.all()
    

    Output

    It will produce the following output −

    [
       {
          "roll_number":1,
          "st_name":"elen",
          "mark":250,
          "subject":"TinyDB",
          "address":"delhi"
       },
       {
          "roll_number":2,
          "st_name":"Ram",
          "mark":[
             250,
             280
          ],
          "subject":[
             "TinyDB",
             "MySQL"
          ],
          "address":"delhi"
       },
       {
          "roll_number":3,
          "st_name":"kevin",
          "mark":[
             180,
             200
          ],
          "subject":[
             "oracle",
             "sql"
          ],
          "address":"keral"
       },
       {
          "roll_number":4,
          "st_name":"lakan",
          "mark":200,
          "subject":"MySQL",
          "address":"mumbai"
       },
       {
          "roll_number":5,
          "st_name":"karan",
          "mark":275,
          "subject":"oracle",
          "address":"benglore"
       }
    ]
    

    Close the database to make sure that all the data is safely written.

    db.close()
    

    TinyDB – Extend TinyDB

    It is possible to extend TinyDB and modify its behaviour. There are four ways to do so −

    • Custom middleware

    • Custom storages

    • Hooks and overrides

    • Subclassing TinyDB and table

    In this chapter, let”s understand each of these methods in detail.

    Custom Middleware

    Sometimes the user does not want to write a new storage module. In such cases, the user can modify the behaviour of an existing storage module. Let”s see an example in which we will build a custom middleware filtering out the empty items −

    First, let”s see the data that will go through the custom middleware −

    {
       ''_default'': {
       1: {''key1'': ''value1''},
       2: {''key2'': ''value2''},
       ……………,
       N: {''keyN'': ''valueN''}
    },
    
    

    Now, let”s see how we can implement the custom middleware −

    class RemoveEmptyItemsMiddleware(Middleware):
    def __init__(self, storage_cls):
       super(self).__init__(storage_cls)
       def read(self):
          data = self.storage.read()
          for _default in data:
             st_name = data
          for doc_id in table:
             item = st_name
             if item == {}:
                del st_name
             return data
       def close(self):
          self.storage.close()
    

    Custom Storage

    As discussed earlier, TinyDB comes with two types of storages: in-memory and JSON file storage. Along with that, TinyDB also provides an option to add our own custom storage. In the following example, let”s see how we can add a YAML storage using PyYAML −

    import yaml
    class YAMLStorage(Storage):
    def __init__(self, db.json):
       self. db.json = db.json
    

    To read the file −

    def read(self):
       with open(self.db.json) as handle:
       try:
          info = yaml.safe_load(handle.read())
          return info
    
       except yaml.YAMLError:
          return None
    

    To write the file −

    def write(self, info):
       with open(self.db.json, ''w+'') as handle:
          yaml.dump(info, handle)
    

    To close the file −

    def close(self):
       pass
    

    Hooks and Overrides

    Sometimes, both custom storage and custom middleware cannot work in the way you want. In such cases, user can use predefined hooks and overrides to modify the behaviour of TinyDB. As an example, we will be configuring the name of the default table as follows −

    TinyDB.default_table_name = ''student_detail''
    

    We can also assign cache capacity as follows −

    TinyDB.table_class.default_query_cache_capacity = 50
    

    Subclassing TinyDB and Table

    This is the last way we can use to modify the behaviour of TinyDB. As an example, we will be creating a subclass that can be used with hooks and overrides to override the default classes.

    Class ExtendTable(Table):
       TinyDB.table_class = student_detail
    

    TinyDB – Extensions

    Given below is a set of TinyDB extensions that can be used for various operations −

    Sr.No. Operation & Description
    1 TinyDBTimestamps

    It is an experimental extension that can be used to automatically add and update at timestamps to TinyDB documents.

    2 aiotinydb

    It is a stable extension that enables us to use TinyDB in asyncio-aware contexts without slowing done the synchromous Input/Output(I/O).

    3 tinydb – smartcache

    It is also a stable extension. It provides users with a smart query cache. It automatically updates the query cache so that the cache does not get invalidated after inserting, updating, or removing any documents.

    4 tinydb – serialization

    It is a stable extension that provides serialization of the database object.

    5 tinydb – appengine

    It provides storage for App Engine. It is also a stable extension.

    6 Tinyrecord

    A stable extension that implements experimental atomic transaction support for the TinyDB NoSQL DB.

    7 TinyMP

    It is also stable extension used for storage based on the MessagePack.

    8 Tinymongo

    It is an experimental extension which is used for the replacement of MongoDB.

    9 Tinyindex

    It is also an experimental extension of the database. As name implies, it is used for indexing data of the database.


    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí TinyDB – Quick Guide: Cơ Hội Nhận Dự Án Có Lương!

    Bạn có biết rằng việc nắm vững các công cụ quản lý cơ sở dữ liệu có thể mở ra nhiều cơ hội nghề nghiệp thú vị và đầy tiềm năng? Nếu bạn đang tìm kiếm một khóa học miễn phí để nâng cao kỹ năng của mình và có cơ hội thực hành với các dự án thực tế, hãy tham gia ngay Khóa học Miễn phí TinyDB – Quick Guide của chúng tôi!

    khoa hoc mien phi TinyDB - Quick Guide
    khoa hoc mien phi TinyDB – Quick Guide

    Tại Sao Nên Tham Gia Khóa Học TinyDB?

    TinyDB là một cơ sở dữ liệu NoSQL nhẹ và dễ sử dụng, lý tưởng cho các dự án nhỏ, ứng dụng di động, và các ứng dụng nhúng. Với TinyDB, bạn có thể dễ dàng lưu trữ và quản lý dữ liệu mà không cần phải cấu hình phức tạp như các hệ quản trị cơ sở dữ liệu lớn.

    Khóa học TinyDB – Quick Guide sẽ trang bị cho bạn những kiến thức cơ bản và kỹ năng cần thiết để sử dụng TinyDB hiệu quả. Đây là cơ hội tuyệt vời để bạn:

    • Học Cơ Bản về TinyDB: Hiểu rõ về cấu trúc và cách hoạt động của TinyDB.
    • Thực Hành Ngay: Áp dụng kiến thức vào các bài tập thực tế.
    • Tăng Cường Kỹ Năng: Nâng cao kỹ năng lập trình và quản lý cơ sở dữ liệu.
    khoa hoc mien phi TinyDB - Quick Guide
    khoa hoc mien phi TinyDB – Quick Guide

    Nội Dung Khóa Học

    Khóa học này bao gồm:

    1. Giới thiệu về TinyDB: Khái niệm và lợi ích của TinyDB.
    2. Cài đặt và cấu hình TinyDB: Hướng dẫn từng bước để bắt đầu.
    3. Quản lý dữ liệu với TinyDB: Các thao tác cơ bản như thêm, sửa, xóa và tìm kiếm dữ liệu.
    4. Tích hợp TinyDB vào ứng dụng của bạn: Cách tích hợp TinyDB vào các dự án thực tế.
    khoa hoc mien phi TinyDB - Quick Guide
    khoa hoc mien phi TinyDB – Quick Guide

    Cơ Hội Nhận Dự Án Có Lương

    Điều đặc biệt là, sau khi hoàn thành khóa học, bạn có cơ hội nhận các dự án làm việc có lương. Đây là một phần trong chương trình hỗ trợ học viên của chúng tôi, nhằm giúp bạn áp dụng kiến thức vào thực tế và kiếm thêm thu nhập. Các dự án này sẽ được phân công dựa trên khả năng và sở thích của bạn, và chúng tôi cam kết mang đến các công việc chất lượng với mức lương hợp lý.

    khoa hoc mien phi TinyDB - Quick Guide
    khoa hoc mien phi TinyDB – Quick Guide

    Cách Đăng Ký

    Tham gia khóa học cực kỳ đơn giản! Chỉ cần:

    1. Đăng Ký: Truy cập trang đăng ký khóa học trên website của chúng tôi.
    2. Học Tập: Tham gia các bài giảng và bài tập theo lịch trình của khóa học.
    3. Nhận Dự Án: Sau khi hoàn thành khóa học, đăng ký nhận dự án và bắt đầu làm việc ngay.
    khoa hoc mien phi TinyDB - Quick Guide
    khoa hoc mien phi TinyDB – Quick Guide

    Đăng Ký Ngay Hôm Nay!

    Đừng bỏ lỡ cơ hội tuyệt vời này để nâng cao kỹ năng và mở rộng cơ hội nghề nghiệp của bạn. Khóa học TinyDB – Quick Guide hoàn toàn miễn phí và mở ra cánh cửa để bạn có thể nhận các dự án thực tế có lương.

    Hãy đăng ký ngay hôm nay và bước vào hành trình học tập và làm việc thú vị với TinyDB!


    Chúng tôi mong được đồng hành cùng bạn trên con đường phát triển nghề nghiệp!

    Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm thông tin, đừng ngần ngại liên hệ với chúng tôi qua email hoặc trang hỗ trợ trên website.Khóa Học Miễn Phí TinyDB – Quick Guide: Cơ Hội Nhận Dự Án Có Lương!

    https://youtu.be/9DFRyQO_d_E?si=-oEd7Xj4kNisRhM_
  • Khóa học miễn phí TinyDB – Extensions nhận dự án làm có lương

    Khóa học miễn phí TinyDB – Extensions nhận dự án làm có lương


    TinyDB – Extensions



    Given below is a set of TinyDB extensions that can be used for various operations −

    Sr.No. Operation & Description
    1 TinyDBTimestamps

    It is an experimental extension that can be used to automatically add and update at timestamps to TinyDB documents.

    2 aiotinydb

    It is a stable extension that enables us to use TinyDB in asyncio-aware contexts without slowing done the synchromous Input/Output(I/O).

    3 tinydb – smartcache

    It is also a stable extension. It provides users with a smart query cache. It automatically updates the query cache so that the cache does not get invalidated after inserting, updating, or removing any documents.

    4 tinydb – serialization

    It is a stable extension that provides serialization of the database object.

    5 tinydb – appengine

    It provides storage for App Engine. It is also a stable extension.

    6 Tinyrecord

    A stable extension that implements experimental atomic transaction support for the TinyDB NoSQL DB.

    7 TinyMP

    It is also stable extension used for storage based on the MessagePack.

    8 Tinymongo

    It is an experimental extension which is used for the replacement of MongoDB.

    9 Tinyindex

    It is also an experimental extension of the database. As name implies, it is used for indexing data of the database.


    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí “TinyDB – Extensions”: Khám Phá Các Tính Năng Mở Rộng Và Nhận Dự Án Có Lương

    Bạn đang tìm cách mở rộng khả năng sử dụng TinyDB và muốn có cơ hội nhận các dự án thực tế với mức lương hấp dẫn? Khóa học miễn phí “TinyDB – Extensions” chính là lựa chọn hoàn hảo dành cho bạn. Khóa học này được thiết kế để giúp bạn khai thác các tính năng mở rộng của TinyDB, từ đó nâng cao khả năng làm việc với cơ sở dữ liệu và mở ra nhiều cơ hội nghề nghiệp.

    khoa hoc mien phi : "TinyDB - Extensions"
    khoa hoc mien phi : “TinyDB – Extensions”

    Nội Dung Khóa Học

    Khóa học “TinyDB – Extensions” tập trung vào việc mở rộng và tùy chỉnh TinyDB để đáp ứng các nhu cầu cụ thể. Bạn sẽ được học:

    • Giới Thiệu về Các Extensions: Tìm hiểu về các phần mở rộng có sẵn cho TinyDB và cách chúng có thể cải thiện chức năng của cơ sở dữ liệu.
    • Cài Đặt và Sử Dụng Extensions: Hướng dẫn chi tiết cách cài đặt và tích hợp các extensions vào dự án của bạn.
    • Tạo Extensions Tùy Chỉnh: Học cách phát triển các phần mở rộng tùy chỉnh để đáp ứng nhu cầu cụ thể của bạn hoặc của khách hàng.
    • Ví Dụ Thực Tiễn: Áp dụng các kiến thức vào các bài tập thực tế để giải quyết các bài toán cơ sở dữ liệu phức tạp.
    khoa hoc mien phi : "TinyDB - Extensions"
    khoa hoc mien phi : “TinyDB – Extensions”

    Tại Sao Nên Tham Gia?

    1. Miễn Phí và Linh Hoạt: Khóa học hoàn toàn miễn phí và có thể truy cập trực tuyến, giúp bạn học theo tốc độ của riêng mình mà không cần lo lắng về chi phí.
    2. Kỹ Năng Tinh Chỉnh: Việc học cách sử dụng và phát triển extensions cho TinyDB giúp bạn có thêm kỹ năng quan trọng, từ đó nâng cao khả năng làm việc với các cơ sở dữ liệu phức tạp hơn.
    3. Cơ Hội Nhận Dự Án Có Lương: Sau khi hoàn thành khóa học, bạn sẽ có cơ hội tham gia vào các dự án thực tế với mức lương hấp dẫn. Đây là cơ hội tuyệt vời để áp dụng kiến thức của bạn vào thực tiễn và xây dựng hồ sơ nghề nghiệp ấn tượng.
    khoa hoc mien phi : "TinyDB - Extensions"
    khoa hoc mien phi : “TinyDB – Extensions”

    Tận Dụng Cơ Hội

    Khóa học “TinyDB – Extensions” không chỉ giúp bạn mở rộng kiến thức về TinyDB mà còn tạo cơ hội để bạn phát triển nghề nghiệp thông qua các dự án thực tế. Đừng bỏ lỡ cơ hội này để nâng cao kỹ năng, làm việc với các dự án thực tế và nhận mức lương xứng đáng với những gì bạn đã học.

    Hãy đăng ký khóa học ngay hôm nay để khám phá các tính năng mở rộng của TinyDB và mở ra cánh cửa cơ hội nghề nghiệp mới. Đặt chân vào thế giới của cơ sở dữ liệu tiên tiến và thực hiện các dự án đầy thách thức ngay bây giờ!

    khoa hoc mien phi : "TinyDB - Extensions"
    khoa hoc mien phi : “TinyDB – Extensions”

    Tạo Nền Tảng Vững Chắc Cho Sự Nghiệp

    Khóa học “TinyDB – Extensions” không chỉ là cơ hội để học tập và nhận dự án có lương, mà còn là bước đầu quan trọng trong việc xây dựng nền tảng vững chắc cho sự nghiệp của bạn trong lĩnh vực phát triển phần mềm. Kỹ năng về các phần mở rộng của TinyDB sẽ giúp bạn tự tin hơn trong việc giải quyết các vấn đề phức tạp, đồng thời làm nổi bật hồ sơ nghề nghiệp của bạn trước các nhà tuyển dụng và khách hàng.

    Việc thành thạo các kỹ thuật mở rộng và tùy chỉnh TinyDB không chỉ mở rộng khả năng của bạn trong việc xử lý dữ liệu mà còn chứng tỏ bạn là một người có khả năng ứng dụng linh hoạt các công nghệ cơ sở dữ liệu để đáp ứng nhu cầu đa dạng. Đây là một lợi thế lớn trong ngành công nghiệp công nghệ thông tin, nơi sự sáng tạo và khả năng giải quyết vấn đề luôn được đánh giá cao.

    khoa hoc mien phi : "TinyDB - Extensions"
    khoa hoc mien phi : “TinyDB – Extensions”

    Hãy nắm bắt cơ hội học hỏi và phát triển này ngay hôm nay. Đăng ký khóa học “TinyDB – Extensions” để trang bị cho mình những kỹ năng cần thiết và bắt đầu hành trình tạo ra các giải pháp cơ sở dữ liệu đột phá. Đừng quên rằng mỗi kiến thức mới bạn học được chính là một bước tiến gần hơn đến thành công trong sự nghiệp của bạn.

    https://youtu.be/aAXjHvBFfT8?si=p4eitWB4oHymGtz_
  • Khóa học miễn phí TinyDB – Extend TinyDB nhận dự án làm có lương

    Khóa học miễn phí TinyDB – Extend TinyDB nhận dự án làm có lương


    TinyDB – Extend TinyDB



    It is possible to extend TinyDB and modify its behaviour. There are four ways to do so −

    • Custom middleware

    • Custom storages

    • Hooks and overrides

    • Subclassing TinyDB and table

    In this chapter, let”s understand each of these methods in detail.

    Custom Middleware

    Sometimes the user does not want to write a new storage module. In such cases, the user can modify the behaviour of an existing storage module. Let”s see an example in which we will build a custom middleware filtering out the empty items −

    First, let”s see the data that will go through the custom middleware −

    {
       ''_default'': {
       1: {''key1'': ''value1''},
       2: {''key2'': ''value2''},
       ……………,
       N: {''keyN'': ''valueN''}
    },
    
    

    Now, let”s see how we can implement the custom middleware −

    class RemoveEmptyItemsMiddleware(Middleware):
    def __init__(self, storage_cls):
       super(self).__init__(storage_cls)
       def read(self):
          data = self.storage.read()
          for _default in data:
             st_name = data
          for doc_id in table:
             item = st_name
             if item == {}:
                del st_name
             return data
       def close(self):
          self.storage.close()
    

    Custom Storage

    As discussed earlier, TinyDB comes with two types of storages: in-memory and JSON file storage. Along with that, TinyDB also provides an option to add our own custom storage. In the following example, let”s see how we can add a YAML storage using PyYAML −

    import yaml
    class YAMLStorage(Storage):
    def __init__(self, db.json):
       self. db.json = db.json
    

    To read the file −

    def read(self):
       with open(self.db.json) as handle:
       try:
          info = yaml.safe_load(handle.read())
          return info
    
       except yaml.YAMLError:
          return None
    

    To write the file −

    def write(self, info):
       with open(self.db.json, ''w+'') as handle:
          yaml.dump(info, handle)
    

    To close the file −

    def close(self):
       pass
    

    Hooks and Overrides

    Sometimes, both custom storage and custom middleware cannot work in the way you want. In such cases, user can use predefined hooks and overrides to modify the behaviour of TinyDB. As an example, we will be configuring the name of the default table as follows −

    TinyDB.default_table_name = ''student_detail''
    

    We can also assign cache capacity as follows −

    TinyDB.table_class.default_query_cache_capacity = 50
    

    Subclassing TinyDB and Table

    This is the last way we can use to modify the behaviour of TinyDB. As an example, we will be creating a subclass that can be used with hooks and overrides to override the default classes.

    Class ExtendTable(Table):
       TinyDB.table_class = student_detail
    

    Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc

    Khóa Học Miễn Phí “TinyDB – Extend TinyDB”: Khám Phá Cơ Hội Mở Rộng TinyDB Và Nhận Dự Án Có Lương

    Bạn muốn nâng cao khả năng làm việc với cơ sở dữ liệu và khám phá những tính năng mở rộng của TinyDB? Khóa học miễn phí “TinyDB – Extend TinyDB” chính là cơ hội tuyệt vời dành cho bạn. Khóa học này được thiết kế đặc biệt để giúp bạn hiểu và áp dụng các phương pháp mở rộng TinyDB, từ đó mở ra cơ hội nhận các dự án thực tế với mức lương hấp dẫn.

    Khoa Hoc Mien Phi "TinyDB - Extend TinyDB"
    Khoa Hoc Mien Phi “TinyDB – Extend TinyDB”

    Nội Dung Khóa Học

    Khóa học “TinyDB – Extend TinyDB” sẽ trang bị cho bạn những kiến thức và kỹ năng cần thiết để mở rộng và tùy chỉnh TinyDB để phù hợp với các nhu cầu cụ thể. Nội dung khóa học bao gồm:

    • Giới Thiệu về TinyDB: Ôn lại các khái niệm cơ bản và cấu trúc của TinyDB, giúp bạn làm quen với nền tảng trước khi đi sâu vào các phần mở rộng.
    • Khám Phá Các Tính Năng Mở Rộng: Tìm hiểu về các phần mở rộng có sẵn và cách chúng có thể được tích hợp vào TinyDB để mở rộng chức năng cơ sở dữ liệu.
    • Phát Triển Extensions Tùy Chỉnh: Hướng dẫn chi tiết về cách phát triển các phần mở rộng của riêng bạn, từ việc thiết kế đến triển khai và kiểm thử.
    • Ứng Dụng Thực Tế: Áp dụng kiến thức vào các bài tập thực tế để giải quyết các bài toán cơ sở dữ liệu phức tạp và nâng cao khả năng xử lý dữ liệu.
    Khoa Hoc Mien Phi "TinyDB - Extend TinyDB"
    Khoa Hoc Mien Phi “TinyDB – Extend TinyDB”

    Tại Sao Nên Tham Gia?

    1. Học Miễn Phí và Linh Hoạt: Khóa học hoàn toàn miễn phí và có thể truy cập trực tuyến, cho phép bạn học tập theo tiến độ của riêng mình mà không gặp rủi ro về chi phí.
    2. Nâng Cao Kỹ Năng: Việc học cách mở rộng TinyDB và phát triển các phần mở rộng tùy chỉnh sẽ giúp bạn trở thành một chuyên gia có khả năng giải quyết các vấn đề phức tạp trong cơ sở dữ liệu.
    3. Cơ Hội Nhận Dự Án Có Lương: Sau khi hoàn thành khóa học, bạn sẽ có cơ hội nhận các dự án thực tế với mức lương xứng đáng. Đây là cơ hội tuyệt vời để áp dụng kiến thức vào thực tiễn và tạo dựng sự nghiệp.
    Khoa Hoc Mien Phi "TinyDB - Extend TinyDB"
    Khoa Hoc Mien Phi “TinyDB – Extend TinyDB”

    Xây Dựng Tương Lai Với TinyDB

    Khóa học “TinyDB – Extend TinyDB” không chỉ cung cấp kiến thức quý giá về cách mở rộng TinyDB mà còn mở ra cánh cửa cho các cơ hội nghề nghiệp mới. Việc nắm vững các kỹ thuật mở rộng này sẽ giúp bạn nổi bật trong ngành công nghệ thông tin và cải thiện hồ sơ nghề nghiệp của bạn.

    Hãy không bỏ lỡ cơ hội học tập miễn phí và nhận các dự án có lương. Đăng ký ngay hôm nay để bắt đầu hành trình học hỏi, phát triển kỹ năng và tạo ra những giải pháp cơ sở dữ liệu ấn tượng. Chinh phục thế giới TinyDB và mở ra những cơ hội nghề nghiệp mới với khóa học này!

    Khoa Hoc Mien Phi "TinyDB - Extend TinyDB"
    Khoa Hoc Mien Phi “TinyDB – Extend TinyDB”

    Khám Phá Cộng Đồng và Hỗ Trợ Từ Các Chuyên Gia

    Khóa học “TinyDB – Extend TinyDB” không chỉ dừng lại ở việc cung cấp kiến thức và kỹ năng. Bạn còn có cơ hội kết nối với một cộng đồng học viên và chuyên gia trong lĩnh vực cơ sở dữ liệu. Tham gia khóa học, bạn sẽ:

    • Tham Gia Diễn Đàn Học Tập: Giao lưu, chia sẻ kinh nghiệm và giải đáp thắc mắc cùng những người học khác và các chuyên gia qua các diễn đàn và nhóm hỗ trợ trực tuyến.
    • Nhận Hỗ Trợ Từ Chuyên Gia: Được tư vấn và hướng dẫn trực tiếp từ các chuyên gia trong ngành, giúp bạn giải quyết các vấn đề cụ thể và nâng cao kỹ năng một cách nhanh chóng.
    Khoa Hoc Mien Phi "TinyDB - Extend TinyDB"
    Khoa Hoc Mien Phi “TinyDB – Extend TinyDB”

    Tạo Nền Tảng Vững Chắc Cho Sự Nghiệp

    Việc hoàn thành khóa học “TinyDB – Extend TinyDB” không chỉ giúp bạn nắm vững các kỹ thuật mở rộng cơ sở dữ liệu mà còn tạo nền tảng vững chắc cho sự nghiệp phát triển phần mềm. Kỹ năng về phát triển và tích hợp các phần mở rộng sẽ làm nổi bật hồ sơ của bạn trong thị trường lao động, nơi sự đổi mới và khả năng giải quyết vấn đề luôn được đánh giá cao.

    Khi bạn có thể chứng minh khả năng của mình qua các dự án thực tế và các phần mở rộng tùy chỉnh mà bạn đã phát triển, bạn không chỉ thu hút sự chú ý của các nhà tuyển dụng mà còn tạo cơ hội để xây dựng một danh tiếng vững chắc trong cộng đồng công nghệ.

    Đăng Ký Ngay Hôm Nay

    Khóa học “TinyDB – Extend TinyDB” là cơ hội không thể bỏ qua cho những ai muốn nâng cao kỹ năng cơ sở dữ liệu và mở rộng cơ hội nghề nghiệp. Đừng bỏ lỡ cơ hội học miễn phí và nhận dự án có lương – một cách tuyệt vời để áp dụng kiến thức của bạn vào thực tiễn và xây dựng sự nghiệp bền vững.

    Hãy đăng ký khóa học ngay hôm nay để bắt đầu hành trình học tập và phát triển nghề nghiệp của bạn. Khám phá các tính năng mở rộng của TinyDB, kết nối với cộng đồng chuyên gia, và mở ra những cơ hội nghề nghiệp mới. Chúng tôi chúc bạn thành công và hy vọng khóa học sẽ mang lại giá trị lớn cho sự nghiệp của bạn!

    https://www.youtube.com/watch?v=WufkHfXrOQg