我无法理解Python中的SQLite3模块

问题描述 投票:1回答:1

我一直在SQLite上阅读Python官方文档,并在其他博客上阅读一些教程。

我注意到了一些我无法理解的东西。

代码段1

import sqlite3
con = sqlite3.connect("chijioke.db")
cur= con.cursor()
cur.executescript("""
    create table book(
        title,
        author,
        published
    );

    insert into book(title, author, published)
    values (
        'Dirk Gently''s Holistic Detective Agency',
        'Douglas Adams',
        1987
    );
    """)
con.commit()
con.close()

代码段2

import sqlite3
con = sqlite3.connect("chijioke.db")
cur = con.cursor()
cur.executescript("""
    DROP TABLE IF EXISTS book;
    CREATE TABLE book(
        title,
        author,
        published
    );

    INSERT INTO book VALUES (
        'Dirk Gently''s Holistic Detective Agency',
        'Douglas Adams',
        1987
    );
    """)
con.commit()
con.close()

当我运行两个代码片段时,我没有错误。

据我所知,SQL语句是大写的,但代码片段1没有遵循该规则,但没有错误。

另外,代码片段1包含了insert语句中每列的名称。

我想知道为什么所有这些更改和哪些代码片段更加pythonic使用。

我还要感谢任何额外的帮助。

sql python-3.x sqlite
1个回答
0
投票

SQL通常不区分大小写。无论你喜欢什么,你都可以使用insertINSERTInSeRt。为清楚起见,我建议使用大写字母。在Sqlite中,表名称区分大小写,但列名称不区分大小写。另外,像@JNevill评论的那样,我建议在INSERT语句中键入列名以防止将来出现错误,尽管在这个脚本中很明显列是什么,并且没有机会将列添加到表中的某个位置这条线。

© www.soinside.com 2019 - 2024. All rights reserved.