首页 > 解决方案 > 如何摆脱我的 GridDB 数据库中的空值?

问题描述

我有一个GridDB容器,用于在我的学生管理应用程序中实现的sqllite数据库,但我需要 GET RID 删除数据库上的 NULL 值。如何删除行而不使它们出现在应用程序上?我试过这里是应用程序外观示例的图像。五行显示两个 NULL 值

import pandas as pd
import griddb_python as griddb
from kivy.metrics import dp
from kivy.uix.anchorlayout import AnchorLayout
from kivymd.app import MDApp
from kivymd.uix.datatables import MDDataTable
from kivymd.uix.label import MDLabel
import sqllite3

factory = griddb.StoreFactory.get_instance()

try:
    gridstore = factory.get_store(host="127.0.0.1", port="8080", 
            cluster_name="Cluster12", username="root", 
            password="")
    conInfo = griddb.ContainerInfo("Students_DB",
                    [              
                     ["Student ID", griddb.Type.INTEGER],
                     ["First Name", griddb.Type.STRING],
                     ["Last Name", griddb.Type.STRING],
                     ["Gender", griddb.Type.STRING,
                     ["DOB", griddb.Type.STRING],
                     ["Current Year", griddb.Type.INTEGER],
                     ["CGPA", griddb.Type.FLOAT],
                    ],
                    griddb.ContainerType.COLLECTION, True)
    con = gridstore.put_container(conInfo)   
    # Reading Database into a Pandas DataFrame
    container = sqlite3.connect("StudentsDB.db")
    df = pd.read_sql_query("SELECT * from best_students", container)


    # Adding the database
    for i in range(len(df)):
        ret = con.put(df.iloc[i, :])

except Exception as e:
    print(e)

sql_statement = ('SELECT * FROM Students_DB')
sql_query = pd.read_sql_query(sql_statement, con)

class Students(MDApp):
    def build(self):
        layout = AnchorLayout()
        title = MDLabel(
                            text = "Students Record Management(SRM)",
                            theme_text_color = "Custom",
                            text_color = (0, 0, 0, 1),
                            pos_hint = {"center_x": .5, "center_y": .8},
                            size_hint_x = 1,
                            halign = "center"
            )
#...

标签: pythonmysqldesktop-applicationgriddb

解决方案


我不确定您要在哪个位置删除 NULL 值。但是 griddb 语法接受在查询中使用以下语法删除 null :

SELECT * from best_students where <columnName> IS NOT NULL

请记住更改columnName为您喜欢从中删除 NULL 的任何列。

[编辑] 我后来看到你的图像。如果你想从 Last Name 中删除 NULL,你应该这样写:

SELECT * from best_students where 'Last Name' IS NOT NULL


推荐阅读