亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

使用Python操作SQL Server數(shù)據(jù)庫

如果有條件可以使用遠程連接或者TeamViewer等工具,操作帶GUI的數(shù)據(jù)庫管理器,實施起來可以很省心。可以直接查看結果,模板化查詢甚至提示語句錯誤等。

如果是使用linux本地或者ssh訪問SQL?Server數(shù)據(jù)庫的,稍微麻煩點??梢允褂胹qlcmd作為替代工具。后面會介紹。

沒有mysql一樣的show database;命令,所以顯示所有的數(shù)據(jù)庫都比較麻煩??梢允褂眠@條命令:select name from sysobjects where xtype='u'

SQL Server中各個系統(tǒng)表的作用

sysaltfiles????僅在主數(shù)據(jù)庫 保存數(shù)據(jù)庫的文件

syscharsets????僅在主數(shù)據(jù)庫 字符集與排序順序

sysconfigures??僅在主數(shù)據(jù)庫 配置選項

syscurconfigs??僅在主數(shù)據(jù)庫 當前配置選項

sysdatabases???僅在主數(shù)據(jù)庫 服務器中的數(shù)據(jù)庫

syslanguages???僅在主數(shù)據(jù)庫 語言

syslogins??????僅在主數(shù)據(jù)庫 登陸帳號信息

sysoledbusers??僅在主數(shù)據(jù)庫 鏈接服務器登陸信息

sysprocesses???僅在主數(shù)據(jù)庫 進程

sysremotelogins?僅在主數(shù)據(jù)庫 遠程登錄帳號

syscolumns?????每個數(shù)據(jù)庫 列

sysconstrains??每個數(shù)據(jù)庫 限制

sysfilegroups??每個數(shù)據(jù)庫 文件組

sysfiles???????每個數(shù)據(jù)庫 文件

sysforeignkeys?每個數(shù)據(jù)庫 外部關鍵字

sysindexs??????每個數(shù)據(jù)庫 索引

sysmenbers?????每個數(shù)據(jù)庫 角色成員

sysobjects?????每個數(shù)據(jù)庫 所有數(shù)據(jù)庫對象

syspermissions?每個數(shù)據(jù)庫 權限

systypes??????每個數(shù)據(jù)庫 用戶定義數(shù)據(jù)類型

sql cmd(sqlserver客戶端也可以)

直接訪問數(shù)據(jù)庫:

sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DB

示例sqlcmd -S "127.0.0.1" -U "sa" -P "12345678"

遇到查詢操作時提示“對象名無效”的情況:

可能因為沒有選擇數(shù)據(jù)庫,或者數(shù)據(jù)庫里沒有該表。一定要跟上參數(shù)-d。進入執(zhí)行模式之后可以輸入自己的SQL語句??梢赃B續(xù)多條,命令最后以GO語句結尾,是SQL Server的語法。若要提高性能,請在一個 sqlcmd 會話中執(zhí)行盡可能多的操作,而不是在一系列會話中來執(zhí)行這些操作。

輸入/輸出選項-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage],用于指定輸入和輸出代碼頁。代碼頁頁碼是指定已安裝的 Windows 代碼頁的數(shù)值。

代碼頁轉(zhuǎn)換規(guī)則:

如果未指定代碼頁, sqlcmd 會將當前代碼頁同時用于輸入文件和輸出文件,除非輸入文件為 Unicode 文件,在此情況下無需進行轉(zhuǎn)換。

sqlcmd 自動識別 Big-endian Unicode 和 Little-endian Unicode 輸入文件。 如果已指定 -u 選項,輸出將始終為 Little-endian Unicode。

如果未指定輸出文件,輸出代碼頁將為控制臺代碼頁。借助此方法,可以在控制臺上正確顯示輸出。假定多個輸入文件具有相同的代碼頁??梢詫?Unicode 和非 Unicode 輸入文件混合在一起。在命令提示符處輸入 chcp 以驗證 Cmd.exe 的代碼頁。

-i input_file[,輸入_file2...]

標識包含一批 SQL 語句或存儲過程的文件??梢灾付ㄒ错樞蜃x取和處理的多個文件。文件名之間不要使用任何空格。sqlcmd 將首先檢查所有指定的文件是否都存在。如果有一個或多個文件不存在, sqlcmd 將退出。-i 和 -Q/-q 選項是互斥的。

-i C:\<filename>

-i \\<Server>\<Share$>\<filename>

-i "C:\Some Folder\<file name>"

清空表

刪除表:

delete from?表名

清除表中的所有數(shù)據(jù)、保留表結構( 清除表中所有行,保留表結構、與delete類似):

truncate table?表名

比delete速度快,效率高,使用的系統(tǒng)和事務日志資源少。

刪除表(所有數(shù)據(jù)及表結構):

drop table?表名

pymssql庫

如果使用pymssql庫操作SqlServer連接,基本上就是一把梭。

基本的建立連接:

HOST = '127.0.0.1'

USER = 'USERNAME'

PW = 'PASSWORD'

DB = 'DBNAME'

conn = pymssql.connect(host=HOST, user=USER, password=PW, database=DB)

cursor = conn.cursor()

執(zhí)行SQL語句(查詢):

cursor.execute('SELECT * FROM mytable')

row = cursor.fetchone()

while row:

row = cursor.fetchone()

conn.close()

在操作執(zhí)行SQL語句的函數(shù).execute()的時候,傳入語句不能臨時進行拼接,必須是常量或者格式化的變量??赡苁强紤]注入等問題,故意設定的。

執(zhí)行SQL語句(其他):

cursor.execute("INSERT INTO position VALUES (%s, %s)", (num, address))

conn.commit()

除了查詢語句比較特殊,其他的語句一般都需要額外的使用.commit()進行數(shù)據(jù)提交。如果不提交,可以即便語句執(zhí)行了,也沒有結果返回。此外,連接一開始設定了自動提交屬性,可以忽略這條。

版權聲明:轉(zhuǎn)載文章來自公開網(wǎng)絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯(lián)系刪除或授權事宜。

相關新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構!