最近要将数据写到数据库里,学习了一下如何用 Python 来操作 SQL Server 数据库。

一、连接数据库:

首先,我们要连接 SQL Server 数据库,需要安装 pymssql 这个第三方库,打开 cmd,输入以下指令,等待安装完成即可。

pip install pymssql

连接数据库的代码如下:

import pymssql

print('start to connect database')
connect = pymssql.connect('localhost','sa','','BackupTest_1') #数据库实例名/地址,用户名,密码,要连接的数据库名
print('connecting')
if connect:
print('DataBase connect success')
cursor = connect.cursor(); #获取操作游标

输出结果如下:

二、利用游标操作数据库

①创建数据表:

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

执行结果如下:

②插入数据:

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

执行结果如下:

③查询数据:

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

执行结果如下:

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

④修改数据:

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

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

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

⑤删除数据:

cursor.execute("SELECT * FROM Student")
search_before = cursor.fetchall()
print(search_before)
sql_delete = """
DELETE FROM Student WHERE Name = N'张三'
"""
cursor.execute(sql_delete)
connect.commit()
cursor.execute("SELECT * FROM Student")
search_after = cursor.fetchall()
print(search_after)

执行结果如下:

⑥关闭数据库连接:

connect.close()

总结:

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

Python 学习笔记:Python 操作 SQL Server 数据库的更多相关文章

  1. SQL Server学习之路(七):Python3操作SQL Server数据库

    0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...

  2. [转]C#操作SQL Server数据库

    转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...

  3. 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD

    完成一个RESTful服务,提供几个访问接口,用来操作较简单的联系人信息,数据保存在Sql Server数据库中. 1.使用STS创建工程. 使用STS创建RESTful工程,可以参考: <用S ...

  4. SQL语句操作SQL SERVER数据库登录名、用户及权限

    要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...

  5. python学习笔记之——操作mysql数据库

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...

  6. python:利用pymssql模块操作SQL server数据库

    python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以.这篇博客,介绍下如何在Windows下安装pymssql库并进行连接使用... 环境:Windows ...

  7. python学习笔记:操作数据库

    1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...

  8. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  9. C#学习笔记---C#操作SQL数据库

    C#操作SQL数据库 Connection(连接)对象 连接字符串: 形式1.”server=;uid=;pwd=;database=” 形式2.”server=;Intergrated Securi ...

随机推荐

  1. 不得了的try catch

    try catch:几乎所有语言都有这个语句 try { //可能会导致错误的代码 } catch (error) { //在错误发生时怎么处理 }finally { //即使报错始终执行 } 1. ...

  2. 大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群

    下载Hadoop安装包 登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接 ...

  3. 4 react 简书 引入 redux 的 combineReducers 对 redux 数据进行管理

    1. src 下的 common 下的 header 创建 store 文件夹 下创建 reducer.js # src/common/header/store/reducer.js const st ...

  4. BZOJ:3231: [Sdoi2008]递归数列

    题解: 矩阵乘法,在矩阵中构造当前前缀和: 注意:for(int/long long ;;); #include<iostream> #include<cstdio> #inc ...

  5. java题求代码,4、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}

    public class TEST { public static void main(String[] args) { int [] oldArr= {1,3,4,5,0,0,6,6,0,5,4,7 ...

  6. MVC学生管理系统-阶段III(删除学生信息)

    项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架,学生列表显示  请看阶段一文章 添加学生信息   ...

  7. Session简单介绍

    Session 会话 , Session是基于Cookie的一种会话机制. Cookie是服务器返回一小份数据给客户端,并且存放在客户端上. Session是,数据存放在服务器端. 常用API //得 ...

  8. jquery散记

    感觉jquery的用法都要忘没了,简单捡一下 1.window.onload与$(document).ready的区别 ()编写个数 window.onload = function(){} //不能 ...

  9. Linux-课后练习(第二章命令)20200217-1

  10. CodeForces - 748F Santa Clauses and a Soccer Championship

    题意:有k对队伍,每对队伍之间将举行两次比赛,两支队伍各主办一次.住宿的地方要求在两支队伍家乡的最短路的结点上或者在两支队伍的家乡.问在选择住宿处最少的情况下,怎么组成这k对队伍? 分析: 1.因为n ...