Python 学习笔记:Python 操作 SQL Server 数据库
最近要将数据写到数据库里,学习了一下如何用 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 数据库的更多相关文章
- SQL Server学习之路(七):Python3操作SQL Server数据库
0.目录 1.前言 2.准备工作 3.简单测试语句 4.提交与回滚 5.封装成类的写法 1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话, ...
- [转]C#操作SQL Server数据库
转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...
- 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
完成一个RESTful服务,提供几个访问接口,用来操作较简单的联系人信息,数据保存在Sql Server数据库中. 1.使用STS创建工程. 使用STS创建RESTful工程,可以参考: <用S ...
- SQL语句操作SQL SERVER数据库登录名、用户及权限
要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...
- python学习笔记之——操作mysql数据库
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: ...
- python:利用pymssql模块操作SQL server数据库
python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以.这篇博客,介绍下如何在Windows下安装pymssql库并进行连接使用... 环境:Windows ...
- python学习笔记:操作数据库
1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- C#学习笔记---C#操作SQL数据库
C#操作SQL数据库 Connection(连接)对象 连接字符串: 形式1.”server=;uid=;pwd=;database=” 形式2.”server=;Intergrated Securi ...
随机推荐
- linux项目,项目报错,排查
今天在遇到以前部署的项目突然没有数据了,然后就去服务器看了一下,打印日志发现报错了,现在我是一脸懵逼,因为不知道怎么排查 然后同事告诉说先看报错的原因,然后再去找认识的类,我打码的都是一些认识的 然后 ...
- 08 SSM整合案例(企业权限管理系统):08.权限控制
04.AdminLTE的基本介绍 05.SSM整合案例的基本介绍 06.产品操作 07.订单操作 08.权限控制 09.用户操作 10.权限关联与控制 11.AOP日志 08.权限控制 SSM权限操作 ...
- UVA - 1614 Hell on the Markets(奇怪的股市)(贪心)
题意:输入一个长度为n(n<=100000)的序列a,满足1<=ai<=i,要求确定每个数的正负号,使得所有数的总和为0. 分析: 1.若总和为0,则未加符号之前,所有数之和必为偶数 ...
- 每天一点点之 taro 框架开发 - 事件处理与样式表
1.方法调用 state = { name:'张三' } test(){ this.state.name } <button onClick={ this.test.bind(this) } / ...
- 群论&Polya计数
群论&Polya计数 其实在我听课的过程中,我发现针对于学习OI中的群并没有什么过多必要向内学习... 群 以后会补的. 就是\(QQ\)群. 置换 置换就是一个... \[ \begin{m ...
- Python pip换源
前言 哈喽呀,小伙伴们,晚上好呀,今天要给大家带来点什么呐,我们就来说说python的pip换源吧,这个换源,相对来说,还是比较重要的,能少生好几次气的,哈哈哈 为什么要换源 我们搞python的,肯 ...
- spring 官方文档-片段学习——webflux-ann-controller
spring 官方文档-片段学习总结 片段所在连接:https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-referenc ...
- Aizu 2155 Magic Slayer 背包DP
这是上上次对抗赛的题目了 其实现在发现整个代码从头到尾,都是用了背包,怪我们背包没深入学好. 比赛的时候,聪哥提出的一种思路是,预处理一下,背包出 ALL攻击 和 single攻击的 血量对应的最小花 ...
- mysql第四篇:数据操作之多表查询
mysql第四篇:数据操作之多表查询 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment ...
- part10 header界面渐隐渐显 //动态路由//项目动画
两个组件只同时显示一个 可以用 a v-show='variable' b: v-show='!variable' 1.对全局事件的解绑 //代码容易出现大量bug 因为影响其他组件 keep-al ...