我无法在Python

时间:2017-12-22 17:51:29

标签: sql python-3.x sqlite

我一直在阅读关于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语句中每列的名称。

我想知道为什么所有这些更改以及哪些代码段更适合使用pyphonic。

我还要感谢任何其他帮助。

1 个答案:

答案 0 :(得分:0)

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