Python 学习笔记:Python 操作 SQL Server 数据库

「爱情、让人受尽委屈。」 2021-12-08 18:21 369阅读 0赞
  1. 最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库。

一、连接数据库:

  1. 首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方库,打开 cmd,输入以下指令,等待安装完成即可。
  2. pip install pymssql
  3. 连接数据库的代码如下:
  4. import pymssql
  5. print('start to connect database')
  6. connect = pymssql.connect('localhost','sa','123456','BackupTest_1') #数据库实例名/地址,用户名,密码,要连接的数据库名
  7. print('connecting')
  8. if connect:
  9. print('DataBase connect success')
  10. cursor = connect.cursor(); #获取操作游标
  11. 输出结果如下:

1542269-20190524113812210-562679196.png

二、利用游标操作数据库

①创建数据表:

  1. sql = """
  2. IF OBJECT_ID('Student', 'U') IS NOT NULL DROP TABLE Student
  3. CREATE TABLE Student(id INT NOT NULL identity(1,1), Name NVARCHAR(100), Age INT, PRIMARY KEY(id))
  4. """
  5. cursor.execute(sql) #执行sql语句
  6. connect.commit() #提交到数据库执行

执行结果如下:

1542269-20190524145353322-893818928.png

②插入数据:

  1. insert_sql = """
  2. INSERT INTO Student(Name,Age)
  3. VALUES(%s,%d)
  4. """
  5. data_insert = [('张三',21),('李四',22)] #要求是 tuple 类型数组
  6. cursor.executemany(insert_sql,data_insert)
  7. connect.commit()

执行结果如下:

1542269-20190524154230702-1970326045.png

③查询数据:

  1. sql_select = "SELECT * FROM Student"
  2. cursor.execute(sql_select)
  3. result = cursor.fetchall() #利用游标获取全部查询结果
  4. print(result)

执行结果如下:

1542269-20190527110750183-1442485475.png

Note:除了 fetchall() 之外,还有 fetchone() 和 fetchmany() 等方法可以获取数据。但是,游标是会记录取到结果的第几个记录,所以当你执行完上面的 fetchall() 之后,再执行 fetchone() 并打印结果时,会发现它是个空值。

④修改数据:

  1. #该语句查询条件带有中文,记得加 N
  2. sql_modify = """
  3. UPDATE Student SET Age = 24 WHERE Name = N'张三'
  4. """
  5. cursor.execute(sql_modify)
  6. connect.commit()
  7. cursor.execute("SELECT * FROM Student WHERE Name = N'张三'") #记得加 N
  8. search_result = cursor.fetchall()
  9. print(search_result)

执行结果如下,张三的年龄从21变更为24:

1542269-20190527114120130-203897037.png

Note:因为我机子的环境是英文,所以建表时,将值为中文的字段类型设置成 NVACHAR,且当该字段作为查询条件时,需要在条件值字符串前面(不包括在字符串中)加一个 N,否则 SQL 语句执行后没效果,(0 row(s) affected)

⑤删除数据:

  1. cursor.execute("SELECT * FROM Student")
  2. search_before = cursor.fetchall()
  3. print(search_before)
  4. sql_delete = """
  5. DELETE FROM Student WHERE Name = N'张三'
  6. """
  7. cursor.execute(sql_delete)
  8. connect.commit()
  9. cursor.execute("SELECT * FROM Student")
  10. search_after = cursor.fetchall()
  11. print(search_after)

执行结果如下:

1542269-20190527115606106-826081649.png

⑥关闭数据库连接:

  1. connect.close()

总结:

  1. 以上就是如何利用 Python 连接操作 SQL Server 数据库(增删查改),其实对于其他数据库(MySQLSQLite 等)也是一个道理,只是需要导入对应的包而已,SQL 语法也是大同小异。本篇只是简单阐述了在 Python 中如何操作和获取数据库的数据,下篇博客将讲一下 Python 如何获取整张数据库表(包括表结构),并利用 Python 丰富的工具库来绘制统计图表。

转载于:https://www.cnblogs.com/Sunny20181123/p/10929587.html

发表评论

表情:
评论列表 (有 0 条评论,369人围观)

还没有评论,来说两句吧...

相关阅读