python窗体向sql添加数据_python连接sql server数据库实现增删改查

简述

python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html)。在官方文档可以看到,pymssql是基于_mssql模块做的封装,是为了遵守python的DBAPI规范接口. 两者之间的关系如下图:

python窗体向sql添加数据_python连接sql server数据库实现增删改查_第1张图片

1.使用pymssql连接sql server数据库并实现数据库基本操作(官方api http://www.pymssql.org/en/stable/ref/pymssql.html )

1)基本语法

import pymssql

server = "187.32.43.13" # 连接服务器地址

user = "root"         # 连接帐号

password = ""      # 连接密码

conn = pymssql.connect(server, user, password, "连接默认数据库名称") #获取连接

cursor = conn.cursor() # 获取光标

# 创建表

cursor.execute("""

IF OBJECT_ID('persons', 'U') IS NOT NULL

DROP TABLE persons

CREATE TABLE persons (

id INT NOT NULL,

name VARCHAR(100),

salesrep VARCHAR(100),

PRIMARY KEY(id)

)

""")

# 插入多行数据

cursor.executemany(

"INSERT INTO persons VALUES (%d, %s, %s)",

[(1, 'John Smith', 'John Doe'),

(2, 'Jane Doe', 'Joe Dog'),

(3, 'Mike T.', 'Sarah H.')])

# 你必须调用 commit() 来保持你数据的提交如果你没有将自动提交设置为true

conn.commit()

# 查询数据

cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')

# 遍历数据(存放到元组中) 方式1

row = cursor.fetchone()

while row:

print("ID=%d, Name=%s" % (row[0], row[1]))

row = cursor.fetchone()

# 遍历数据(存放到元组中) 方式2

for row in cursor:

print('row = %r' % (row,))

# 遍历数据(存放到字典中)

# cursor = conn.cursor(as_dict=True)

#

# cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')

# for row in cursor:

# print("ID=%d, Name=%s" % (row['id'], row['name']))

#

# conn.close()

# 关闭连接

conn.close()

# 注:在任何时候,在一个连接下,一次正在执行的数据库操作只会出现一个cursor对象

2)同时,如果你可以使用另一种语法:with 来避免手动关闭cursors和connection连接

import pymssql

server = "187.32.43.13" # 连接服务器地址

user = "root"         # 连接帐号

password = ""      # 连接密码

with pymssql.connect(server, user, password, "你的连接默认数据库名称") as conn:

with conn.cursor(as_dict=True) as cursor: # 数据存放到字典中

cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')

for row in cursor:

print("ID=%d, Name=%s" % (row['id'], row['name']))

3)调用存储过程:

with pymssql.connect(server, user, password, "tempdb") as conn:

with conn.cursor(as_dict=True) as cursor:

cursor.execute("""

CREATE PROCEDURE FindPerson

@name VARCHAR(100)

AS BEGIN

SELECT * FROM persons WHERE name = @name

END

""")

cursor.callproc('FindPerson', ('Jane Doe',))

for row in cursor:

print("ID=%d, Name=%s" % (row['id'], row['name']))

2.使用_mssql连接sql server数据库并实现操作(官方api http://www.pymssql.org/en/stable/ref/_mssql.html)

1)基本语法:

import _mssql

# 创建连接

conn = _mssql.connect(server='SQL01', user='user', password='password', \

database='mydatabase')

print(conn.timeout)

print(conn.login_timeout)

# 创建table

conn.execute_non_query('CREATE TABLE persons(id INT, name VARCHAR(100))')

# insert数据

conn.execute_non_query("INSERT INTO persons VALUES(1, 'John Doe')")

conn.execute_non_query("INSERT INTO persons VALUES(2, 'Jane Doe')")

# 查询操作

conn.execute_query('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')

for row in conn:

print "ID=%d, Name=%s" % (row['id'], row['name'])

#查询数量count()

numemployees = conn.execute_scalar("SELECT COUNT(*) FROM employees")

# 查询一条数据

employeedata = conn.execute_row("SELECT * FROM employees WHERE id=%d", 13)

# 带参数查询的几个例子:

conn.execute_query('SELECT * FROM empl WHERE id=%d', 13)

conn.execute_query('SELECT * FROM empl WHERE name=%s', 'John Doe')

conn.execute_query('SELECT * FROM empl WHERE id IN (%s)', ((5, 6),))

conn.execute_query('SELECT * FROM empl WHERE name LIKE %s', 'J%')

conn.execute_query('SELECT * FROM empl WHERE name=%(name)s AND city=%(city)s', \

{ 'name': 'John Doe', 'city': 'Nowhere' } )

conn.execute_query('SELECT * FROM cust WHERE salesrep=%s AND id IN (%s)', \

('John Doe', (1, 2, 3)))

conn.execute_query('SELECT * FROM empl WHERE id IN (%s)', (tuple(xrange(4)),))

conn.execute_query('SELECT * FROM empl WHERE id IN (%s)', \

(tuple([3, 5, 7, 11]),))

#关闭连接

conn.close()

pymssql托管在Github上:https://github.com/pymssql

VS连接SQL Server数据库,增删改查详细教程(C#代码)_转载

工具: 1.Visual Studio (我使用的是vs2013) 2.SQL Server  (我使用的是sql server2008) 操作: 1.打开SQL Server,打开后会看到数据库的初 ...

C#winform窗体实现对sql server数据库的增删改查

1.运行效果截图 2.输入用户名,密码进行查询 查找成功则显示 查找不成功显示用户信息不存在 3.输入用户名与密码,向数据库中添加用户信息 添加后数据库表信息 4.查看全部信息 5.根据编号信息进行查 ...

python通过pymysql实现数据库的增删改查

今天实现了python对于数据库的增删改查工作: 具体的每一步的数据库的增删盖茶自己都实验过了. 掌握了基本的数据库操作语言.然后就是对于tuple()的认识. 以及对于查询语句中的:fetchone ...

python 连接 SQL Server 数据库

#!/usr/bin/python # -*- coding:utf-8 -*- import pymssql import pyodbc host = '127.0.0.1:1433' user = ...

python连接sqlserver和MySQL实现增删改查

参考python核心编程 编写一个用户洗牌的脚本,根据用户输入,选择连接sqlserver或者MySQL,创建数据库.表,随机生成数据,并实现增删改查. 其中,为了兼容python2和python3, ...

Python 模拟SQL对文件进行增删改查

#!/usr/bin/env python # _*_ coding:UTF-8 _*_ # __auth__: Dalhhin # Python 3.5.2,Pycharm 2016.3.2 # 2 ...

SQL server数据类型、增删改查

数据类型: 整数型:bigint.int.smallint.mediumint.tinyint 小数类型:decimal.numeric 浮点型:real.float.double 位型:bit 字符 ...

python 连接sql server数据库的示例代码

首先,到http://pymssql.sourceforge.net/下载pymssql模块,必须安装这个模块才可以用python连接mysql 以下是sql server的操作代码,需要注意字符集 ...

Python连接SQL Server数据库 - pymssql使用基础

连接数据库 pymssql连接数据库的方式和使用sqlite的方式基本相同: 使用connect创建连接对象 connect.cursor创建游标对象,SQL语句的执行基本都在游标上进行 cursor ...

随机推荐

前端学PHP之面向对象系列第四篇——关键字

× 目录 [1]public [2]protected [3]private[4]final[5]static[6]const[7]this[8]self[9]parent 前面的话 php实现面向对 ...

当我我们用new操作符创建对象的时候,都发生了些什么?

//下面这段代码是javascript设计模式与开发实践上的一段代码 function Person( name ){            this.name = name;        };   ...

Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)一

MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中. 使用这个类库中的类, Spring 将会加载必要的MyBatis工厂类和 session 类. 这个类库 ...

Abstract Server模式,Adapter模式和Bridge模式

简易的台灯 Abstract Server模式 谁拥有接口. 接口属于它的客户,而不是它的派生类. 接口和客户之间的逻辑关系,强于接口和其派生类的逻辑关系. 逻辑关系和实体关系的强度是不一致的.在实体 ...

selenium + python 多浏览器测试

selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...

Wix学习整理(6)——安装快捷方式

原文:Wix学习整理(6)--安装快捷方式 一 为HelloWorld案例添加安装快捷方式 通常我们安装一个应用软件的时候,都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问.现在我们就在上篇添加注 ...

Oracle常用数据字典

1.查看所有存储过程.索引.表格.PACKAGE.PACKAGE BODY select * from user_objects; 2.查询所有的Job select * from user_jobs ...

团队作业4----第一次项目冲刺(Alpha版本)4.28

a.提供当天站立式会议照片 会议内容 今天我们主要针对统计结果的表现形式进行了一些讨论,我们考虑是直接显示统计数据或者是用一些直观的图形来体现,最后经过讨论我们大部分人认为选择数据与图形更加形象直观. ...

HTML标签部分(块级/行级)

一.基本块级标签 1.HTML标签的分类:      a.块级标签:显示为块状,独占一行,自动换行.      b.行级标签:在一行中,从左往右依次排列,不会自动换行. 2.h标签(标题标签) h标签 ...

https://api.highcharts.com/gantt/

https://api.highcharts.com/gantt/& ...

你可能感兴趣的:(python窗体向sql添加数据_python连接sql server数据库实现增删改查)