CRUDを達成接続PythonのSQL Serverデータベース
ブリーフ
サードパーティ製のモジュールとのpythonのMicrosoft SQL Serverデータベース接続、と呼ばれるpymssql(ドキュメントします。http://www.pymssql.org/en/stable/index.html)。pymssqlを行うには_mssqlモジュールパッケージは、以下に示すように、2つの間のインタフェース仕様DBAPIパイソンの関係を遵守することである基づいており、公式文書で見ることができます。
1. pymssql SQL Serverデータベースのデータベースに接続されており、基本的な操作(公式API http://www.pymssql.org/en/stable/ref/pymssql.html)を達成するために
1)基本的な構文
pymssqlインポート サーバーのサーバーアドレスに=「187.32.43.13」#接続 ユーザー=「ルート」#接続アカウントの パスワード=「1234」#接続パスワード CONN = pymssql.connect(サーバー、ユーザー、パスワード、「 デフォルトのデータベース名に接続」)#GET接続
、カーソル= conn.cursor()#取得カーソル
#は、テーブルを作成します cursor.execute( "" " IF OBJECT_ID( '個人'、 'U-')はNOT NULLインクルードは、IS のDROP TABLE人数 CREATE TABLE人数( ID INT NOT NULL、 名前VARCHAR( 100) のSalesRep VARCHAR(100)、 PRIMARY KEY(ID) ) "" ")
#インサート複数行 cursor.executemany( 人VALUES(%のD、%S、%のS)」へ"挿入 〔(1 'ジョン・スミス、'ジョン・ドウ')、 (2、 'ジェーン・ドウ'、 'ジョー・犬')、 (3、「マイク・T.」、「サラH.」)]) あなたがtrueに提出保つために持っていない場合#あなたは自動的にあなたのデータ提出します)(コミットを呼び出す必要があり conn.commit() #クエリデータ cursor.execute(「SELECT *者FROMのSalesRep =%sの」、「ジョン・ドウ」を)データを介して、#(タプル)モードに保存されている1 行= cursor.fetchone() 一方、行: 印刷( "ID =%のDは、%S =名" %(行[0]、行[1])) 行= cursor.fetchone()
(タプルに格納されている)データモード2から#
カーソルの行のために:
プリント(「R&LT行=%」%(行))
(ディクショナリに格納されている)を介してデータ#
#カーソル= CONN 。カーソル(as_dict = 真)#1 #カーソル。EXECUTE ('人FROM SELECT * WHEREのSalesRep = %S ' 、'ジョン・ドウ' )のための#行にカーソル:#1 プリント("ID = %dを、NAME = %S " %(行[ 'ID' ]、行[ '名前' ]))#の#1 CONN 。近いです()
#は、接続クローズ はconn.close()
#注:いつでも、次の接続時に、データベース操作は、カーソルオブジェクトが表示され、一度だけ実行されています
2)同時に、あなたは別の文法を使用することができた場合:カーソルとの接続接続を避けるためにシャットダウンし、手動で
pymssqlインポート サーバー=サーバーのアドレスを「187.32.43.13」#接続 ユーザー=「ルート」#接続アカウントの パスワード=「1234」#接続パスワード pymssql.connect(サーバー、ユーザー、パスワードを入力して 、「 あなたは、デフォルトのデータベース名を接続する」)などコネティカット: カーソルAS conn.cursor(as_dict =真)とします。#ストアデータ辞書 cursor.execute( '名FROMのSalesRep SELECT * =%のS'、 'ジョン・ドウ') :カーソル内の行のための 印刷(「IDを=%D、名前=%S 「%(行[ 'ID']、行[ '名前']))
3)ストアドプロシージャを呼び出します。
:pymssql.connect(サーバー、ユーザー、パスワード、 "tempdbの")でCONNなどで カーソルとしてconn.cursor(as_dict =真)と: cursor.execute( ""」 CREATE PROCEDURE FindPersonは )VARCHAR(100 @name AS BEGIN SELECT *名前= @name者FROM END ") "" cursor.callproc( 'FindPerson'、( 'ジェーンドゥ')): カーソル内の行の 印刷(" ID =%dを、NAME =%S」%(行[ 'ID']、行[ '名前']))
2._mssql连接sql server数据库并实现操作(官方api http://www.pymssql.org/en/stable/ref/_mssql.html)
1)基本的な構文:
輸入_mssql #创建连接 CONN = _mssql.connect(サーバー= 'SQL01'、ユーザー= 'ユーザー'、パスワード= 'パスワード'、\ データベース= 'MyDatabaseという')
プリント(conn.timeout)
プリント(conn.login_timeout) #创建テーブル conn.execute_non_query( '(IDのINT、名前のVARCHAR(100))TABLE人数をCREATE') #インサート数据の conn.execute_non_query( "1(人のVALUES INTO INSERT、 'ジョン・ドウ')") conn.execute_non_query( "INSERT INTOを人のVALUES(2、 'ジェーン・ドウ') ") #查询操作 conn.execute_query( 'SELECT * FROM人のSalesRep =%s'は、 'ジョン・ドウ') CONNの行のための: プリント" ID =%dを、NAME = %S」%(行[ 'ID']、[ 'name'を行]) #查询数量(数) "の従業員FROM SELECT COUNT(* numemployees = conn.execute_scalar()") #查询一条数据 conn.execute_query(」SELECT * FROM EMPL WHERE IDのIN(%sの)」、(タプル(xrangeの(4)))) employeedata = conn.execute_row(13 "ID =%dの従業員SELECT * FROM") #带参数查询的几个例子: conn.execute_query(13 'EMPL FROM WHERE ID =%dのSELECT *') conn.execute_query ( 'ジョン・ドウ' EMPL名=%sからSELECT * ') conn.execute_query( 'SELECT * FROM EMPL ID IN(%S)'、((5,6))) 「conn.execute_query( SELECT * EMPL FROM WHERE名%s'は'Jの%')LIKE conn.execute_query( 'EMPL SELECT * FROM WHERE名=%(名)Sと市=%(市)s'は、\ { '名前': 'ジョン・ドウ」、 '都市': 'どこ'}) conn.execute_query( 'CUSTのSalesRep =%Sと(%S内のID SELECT * FROM)'、\ ( 'ジョン・ドウ'、(1、2、3) )) conn.execute_query(」* WHERE ID EMPL SELECT IN率(%S)」から、\ (タプル([3 ,. 5 ,. 7 ,. 11]))) #接続を閉じます conn.close()
Githubの上にホストされているpymssqlます。https://github.com/pymssql
ブリーフ
サードパーティ製のモジュールとのpythonのMicrosoft SQL Serverデータベース接続、と呼ばれるpymssql(ドキュメントします。http://www.pymssql.org/en/stable/index.html)。pymssqlを行うには_mssqlモジュールパッケージは、以下に示すように、2つの間のインタフェース仕様DBAPIパイソンの関係を遵守することである基づいており、公式文書で見ることができます。
1. pymssql SQL Serverデータベースのデータベースに接続されており、基本的な操作(公式API http://www.pymssql.org/en/stable/ref/pymssql.html)を達成するために
1)基本的な構文
pymssqlインポート サーバーのサーバーアドレスに=「187.32.43.13」#接続 ユーザー=「ルート」#接続アカウントの パスワード=「1234」#接続パスワード CONN = pymssql.connect(サーバー、ユーザー、パスワード、「 デフォルトのデータベース名に接続」)#GET接続
、カーソル= conn.cursor()#取得カーソル
#は、テーブルを作成します cursor.execute( "" " IF OBJECT_ID( '個人'、 'U-')はNOT NULLインクルードは、IS のDROP TABLE人数 CREATE TABLE人数( ID INT NOT NULL、 名前VARCHAR( 100) のSalesRep VARCHAR(100)、 PRIMARY KEY(ID) ) "" ")
#インサート複数行 cursor.executemany( 人VALUES(%のD、%S、%のS)」へ"挿入 〔(1 'ジョン・スミス、'ジョン・ドウ')、 (2、 'ジェーン・ドウ'、 'ジョー・犬')、'ジョン・ドウ')、 (3、 'マイク・T.'、 'サラH.')]) あなたがtrueに提出保つために持っていない場合#あなたは自動的にあなたのデータ提出します)(コミットを呼び出す必要があり conn.commit() #クエリデータ cursor.execute(「SELECT *者FROMのSalesRep =%sの」、「ジョン・ドウ」を)データを介して、#(タプル)モードに保存されている1 行= cursor.fetchone() 一方、行: 印刷( "ID =%のDは、%S =名" %(行[0]、行[1])) 行= cursor.fetchone()
(タプルに格納されている)データモード2から#
カーソルの行のために:
プリント(「R&LT行=%」%(行))
(ディクショナリに格納されている)を介してデータ#
#カーソル= CONN 。カーソル(as_dict = 真)#1 #カーソル。EXECUTE ('人FROM SELECT * WHEREのSalesRep = %S ' 、'ジョン・ドウ' )のための#行にカーソル:#1 プリント("ID = %dを、NAME = %S " %(行[ 'ID' ]、行[ '名前' ]))#の#1 CONN 。近いです()
#は、接続クローズ はconn.close()
#注:いつでも、次の接続時に、データベース操作は、カーソルオブジェクトが表示され、一度だけ実行されています
2)同時に、あなたは別の文法を使用することができた場合:カーソルとの接続接続を避けるためにシャットダウンし、手動で
pymssqlインポート サーバー=サーバーのアドレスを「187.32.43.13」#接続 ユーザー=「ルート」#接続アカウントの パスワード=「1234」#接続パスワード pymssql.connect(サーバー、ユーザー、パスワードを入力して 、「 あなたは、デフォルトのデータベース名を接続する」)などコネティカット: カーソルAS conn.cursor(as_dict =真)とします。#ストアデータ辞書 cursor.execute( '名FROMのSalesRep SELECT * =%のS'、 'ジョン・ドウ') :カーソル内の行のための 印刷(「IDを=%D、名前=%S 「%(行[ 'ID']、行[ '名前']))
3)ストアドプロシージャを呼び出します。
:pymssql.connect(サーバー、ユーザー、パスワード、 "tempdbの")でCONNなどで カーソルとしてconn.cursor(as_dict =真)と: cursor.execute( ""」 CREATE PROCEDURE FindPersonは )VARCHAR(100 @name AS BEGIN SELECT *名前= @name者FROM END ") "" cursor.callproc( 'FindPerson'、( 'ジェーンドゥ')): カーソル内の行の 印刷(" ID =%dを、NAME =%S」%(行[ 'ID']、行[ '名前']))
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( 'WHERE ID(%s内のEMPL SELECT * FROM)'、\ (tuple([3, 5, 7, 11]),)) #关闭连接 はconn.close()
Githubの上にホストされているpymssqlます。https://github.com/pymssql