1. 连接到数据库

python import sqlite3

# 连接到SQLite数据库(如果不存在,则创建它)
conn = sqlite3.connect('example.db')

2. 创建游标对象

游标对象用于执行SQL命令和获取结果。

python# 创建一个游标对象
cursor = conn.cursor()

3. 创建表

使用execute方法执行SQL命令来创建表。

pythoncursor.execute('''CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE,
    age INTEGER
)''')

# 提交事务
conn.commit()

4. 插入数据

使用execute方法插入数据到表中。

python# 插入单条数据
cursor.execute("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", ("Alice", "alice@example.com", 30))

# 插入多条数据
data = [
    ("Bob", "bob@example.com", 25),
    ("Charlie", "charlie@example.com", 35)
]
cursor.executemany("INSERT INTO users (name, email, age) VALUES (?, ?, ?)", data)

# 提交事务
conn.commit()

5. 查询数据

使用execute方法执行查询,并使用fetchallfetchonefetchmany获取结果。

python# 查询所有数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 查询特定条件的数据
cursor.execute("SELECT * FROM users WHERE age > ?", (25,))
rows = cursor.fetchall()
for row in rows:
    print(row)

6. 更新数据

使用execute方法更新表中的数据。

python# 更新数据
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (31, "Alice"))
conn.commit()

7. 删除数据

使用execute方法删除表中的记录。

python# 删除数据
cursor.execute("DELETE FROM users WHERE name = ?", ("Bob",))
conn.commit()

8. 关闭连接和游标

完成数据库操作后,记得关闭游标和连接。

python# 关闭游标和连接
cursor.close()
conn.close()

注意事项:

  • 使用参数化查询(如上面的?占位符)可以防止SQL注入攻击。
  • 在执行插入、更新或删除操作后,通常需要调用commit方法来提交事务,以确保更改被保存到数据库中。
  • 使用with语句可以确保即使在发生异常时也能正确关闭游标和连接。
pythonwith sqlite3.connect('example.db') as conn:
    cursor = conn.cursor()
    # 执行你的SQL命令...
    # ...
    # 不需要显式关闭cursor和连接,with语句会自动处理

这些只是数据库操作的基础。在实际应用中,你可能还需要处理更复杂的情况,如事务管理、错误处理、连接池等。此外,对于大型项目或复杂的数据库交互,通常会使用ORM(对象关系映射)库如SQLAlchemy来简化操作。

from pymysql import Connection
conn1=Connection(
    host="localhost",
    port=3306,
    user="root",
    password="a111111",
    autocommit=True #自动提交
)
print(conn1.get_server_info())
cursor=conn1.cursor() #获取游标对象 用于非查询sql语句
conn1.select_db("world") #数据库对象 选择数据库
#cursor.execute("create table teacher(id int,name varchar(20));") #使用cursor对象的execute()方法,执行SQL命令
cursor.execute("select name from city") #查询语句 通过cursor对象的fetchall()方法获取查询结果,返回元组
ren=cursor.fetchall()
print(ren)
cursor.execute("insert into teacher values(102,'苍老师');")
conn1.commit()#数据插入必须通过连接对象的commit()方法确认提交,不然不生效 或者在链接对象参数中使用 autocommit=True
conn1.close()
最后修改:2024 年 06 月 03 日
如果觉得我的文章对你有用,请随意赞赏