Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从数据库中读取sqlite3中特定行的数据?_Python_Sqlite - Fatal编程技术网

Python 如何从数据库中读取sqlite3中特定行的数据?

Python 如何从数据库中读取sqlite3中特定行的数据?,python,sqlite,Python,Sqlite,因此,我正在尝试创建一个非常简单的数据库,我正在使用sqlite3,我对使用python和其他东西编程非常陌生。我的目标是能够输入一个名称,它是表中的一个部分,并让它显示该名称所在的行。我找到了一些教程,它们只处理普通数据,而不是动态搜索。我没有太多的例子可以展示,但是这里 是我工作的地方 import sqlite3 conn = sqlite3.connect('tutorial.db') c = conn.cursor() def create_table(): c.exec

因此,我正在尝试创建一个非常简单的数据库,我正在使用sqlite3,我对使用python和其他东西编程非常陌生。我的目标是能够输入一个名称,它是表中的一个部分,并让它显示该名称所在的行。我找到了一些教程,它们只处理普通数据,而不是动态搜索。我没有太多的例子可以展示,但是这里 是我工作的地方

import sqlite3

conn = sqlite3.connect('tutorial.db')

c = conn.cursor()

def create_table():
    c.execute("CREATE TABLE nameinfo(name TEXT, age REAL, color TEXT)")

def enter_dynamic_data():
    name = input("What\s their name? ")
    age = float(input("How old are they? "))
    color = input("What\'s their favorite color? ")

    c.execute("INSERT INTO nameinfo(name, age, color) VALUES (?, ?, ?)", (name, age, color))

conn.commit()

def read_from_database():
    sql = ("SELECT * FROM nameinfo")
    for row in c.execute(sql): #It names off the names that I can select from
        print(row[0])
        inp = input("Who would you like to know more about? ")
    for row in c.execute(sql): #Where I plan to have it only show a specific 
row, being the name age and favorite color of a person

        print(row)


read_from_database()

conn.close()

您可以使用
SELECT*FROM nameinfo,其中name=?
。完整代码:

import sqlite3

conn = sqlite3.connect(':memory:')

c = conn.cursor()

def create_table():
    c.execute("CREATE TABLE nameinfo(name TEXT, age REAL, color TEXT)")

def enter_dynamic_data(name, age, color):
    c.execute("INSERT INTO nameinfo(name, age, color) VALUES (?, ?, ?)", (name, age, color))

create_table()
enter_dynamic_data("jack", 20, "green")
enter_dynamic_data("jill", 30, "red")
conn.commit()

def read_from_database():
    sql = "SELECT * FROM nameinfo"
    for row in c.execute(sql):  # It names off the names that I can select from
        print(row[0])
    name = "jack"
    sql = "SELECT * FROM nameinfo WHERE name = ?"
    for row in c.execute(sql, (name,)):
        print(row)

read_from_database()

conn.close()

我认为这个问题更多地与
SQL
本身有关,而不是与Python或SQLite有关。请先学习SQL查询的基础知识,这样会容易得多。我想您要问的是,您想要提取某个数据行,例如,我们这样做
从表中选择名称、年龄、颜色,其中name='Matthew'