如何使用Python连接和操作SQL Server数据库?

  • Post category:Python

在Python中,可以使用pyodbc模块连接和操作SQL Server数据库。以下是Python使用pyodbc模块连接和操作SQL Server数据库的完整攻略,包括连接SQL Server数据库、表、插入数据、查询数据、更新数据、删除数据等操作。

连接SQL Server数据库

在Python中,可以使用pyodbc模块连接SQL Server数据库。以下是连接SQL Server数据库的基本语法:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')

在上面的语法中,myserver是SQL Server的主机名,mydatabase是要连接的数据库名称,myusername是数据库的用户名,mypassword是连接数据库的密码。

创建表

在SQL Server中,可以使用CREATE TABLE语句创建表。以下是创建表的基本语法:

importodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

cur.execute('''CREATE TABLE mytable
               (id INT, name VARCHAR(50), age INT)''')

在上面的语法中,cur.execute()方法用于执行SQL语句,mytable是要创建的表名,id``nameage是表的列名。

插入数据

在SQL Server中,可以使用INSERT INTO语句插入数据。以下是插入数据的基本语法:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 插入一条数据
cur.execute("INSERT INTO mytable (id, name, age) VALUES (?, ?, ?)", (1, "John", 25))

# 插入多条数据
mylist = [
  (2, "Amy", 20),
  (3, "Hannah", 22),
  (4, "Michael", 30)
]
cur.executemany("INSERT INTO mytable (id, name, age) VALUES (?, ?, ?)", mylist)

# 提交更改
conn.commit()

在上面的语法中,cur.execute()方法用于插入一条数据,cur.executemany()方法用于插入多条数据,conn.commit()方法用于提交更改。

查询数据

在SQL Server中,可以使用SELECT语句查询数据。以下是查询数据的基本语法:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 查询所有数据
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()

# 查询指定条件的数据
cur.execute("SELECT * FROM mytable WHERE age > ?", (25,))
rows = cur.fetchall()

在上面的语法中,cur.execute()方法用于执行查询,cur.fetchall()方法用于获取查询结果。

更新数据

在SQL Server中,可以使用UPDATE语句更新数据。以下是更新数据的基本语法:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 更新数据
cur.execute("UPDATE mytable SET age = ? WHERE name = ?", (30, "John"))

# 提交更改
conn.commit()

在上面的语法中,cur.execute()方法用于更新数据,conn.commit()方法用于提交更改。

删除数据

在SQL Server中,可以使用DELETE语删除数据。以下是删除数据的基本语法:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 删除数据
cur.execute("DELETE FROM mytable WHERE name = ?", ("John",))

# 提交更改
conn.commit()

在上面的语法中,cur.execute()方法用于删除数据,conn.commit()方法用于提交改。

示例1

在这个示例中,我们将使用Python连接到SQL Server数据库,并创建一个表,然后插入一些数据,查询所有数据并打印结果。

以下是Python代码:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 创建表
cur.execute('''CREATE TABLE mytable
               (id INT, name VARCHAR(50), age INT)''')

# 插入数据
cur.execute("INSERT INTO mytable (id, name, age) VALUES (?, ?, ?)", (1, "John", 25))

# 查询所有数据
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()

# 打印查询结果
for row in rows:
    print(row)

在上面的代码中,我们使用pyodbc模块连接到SQL Server数据库。然后,我们使用cur.execute()方法创建一个表,使用cur.execute方法插入一条数据。最后,我们使用cur.fetchall()方法获取查询结果,使用for循环遍历每一行,并使用print()`函数打印每一行。

示例2

在这个示例中,我们将使用Python连接到SQL Server数据库,并更新一些数据,然后查询指定条件的数据并打印结果。

以下是Python代码:

import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=myserver;'
                      'Database=mydatabase;'
                      'UID=myusername;'
                      'PWD=mypassword;')
cur = conn.cursor()

# 更新数据
cur.execute("UPDATE mytable SET age = ? WHERE name = ?", (30, "John"))

# 查询指定条件的数据
cur.execute("SELECT * FROM mytable WHERE age > ?", (25,))
rows = cur.fetchall()

# 打印查询结果
for row in rows:
    print(row)

在上面的代码中,我们使用pyodbc模块连接到SQL Server数据库。然后,我们使用cur.execute()方法更新一条数据。最后,我们使用cur.fetchall()方法获取查询结果,使用for循环遍历每一行,并使用print()函数打印每一行。

以上是使用Python连接和操作SQL Server数据库的完整攻略,包括连接SQL Server数据库、创建表、插入数据查询数据、更新数据和数据等操作。