电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

如何使用Pycharm連接SQL Sever(詳細(xì)教程)

瀏覽:233日期:2023-05-02 10:03:24
目錄
  • 步驟一:先檢測自己的SQL Sever有沒有打開密碼功能
  • 步驟二:建立一個空數(shù)據(jù)庫,并且建立一個專屬用戶
  • 步驟三:打開1433 端口
  • 步驟四:在pycharm中測試
  • 步驟五:服務(wù)器含有漢語的亂碼錯誤修正

如何使用pycharm連接SQL Sever:

應(yīng)該是所有的錯誤都經(jīng)歷了(不得不說挺崩潰的)

Tip:不要跳步操作。

步驟一:先檢測自己的SQL Sever有沒有打開密碼功能

如果沒有打開密碼功能僅新建登錄名會出現(xiàn)

標(biāo)題: 連接到服務(wù)器 ------------------------------ 無法連接到 LAPTOP-40O6HVDS。 ------------------------------ 其他信息: 已成功與服務(wù)器建立連接,但是在登錄過程中發(fā)生錯誤。 (provider: Shared Memory Provider, error: 0 - 管道的另一端上無任何進(jìn)程。) (Microsoft SQL Server,錯誤: 233)

打開密碼功能具體實現(xiàn)操作如下:

我的SQL Sever下載的時候就是用的電腦身份驗證登錄的,需要設(shè)置密碼登錄:

找到對象資源管理器的第一個,單擊鼠標(biāo)右鍵后出現(xiàn)以下頁面:

點擊屬性,進(jìn)入頁面后點擊安全性,會出現(xiàn):

服務(wù)器身份驗證選中第二個SQL Sever 和Window 身份驗證)模式之后點擊確定。

步驟二:建立一個空數(shù)據(jù)庫,并且建立一個專屬用戶

建立專屬用戶和空數(shù)據(jù)庫的原因是防止以后對數(shù)據(jù)庫操作失誤時影響到其它的數(shù)據(jù)庫。

首先需要點擊新建查詢并且執(zhí)行以下操作

create database soft2104

執(zhí)行會出現(xiàn)一個soft2104的新數(shù)據(jù)庫(soft2104我的數(shù)據(jù)庫名稱,后續(xù)需要放在pycharm里

如果你覺得數(shù)據(jù)庫難聽可以執(zhí)行如下操作進(jìn)行刪除數(shù)據(jù)庫:(不過需要新建一個數(shù)據(jù)庫

use master --刪數(shù)據(jù)庫drop database soft2104 --刪數(shù)據(jù)庫 

建立好數(shù)據(jù)庫后雙擊安全性

雙擊登錄名后點擊鼠標(biāo)右鍵,點擊新建登錄名

編輯一個登錄名yunmengze這個是我的用戶名,后續(xù)需要放在pycharm里

接下來點擊SQL Sever 身份驗證輸入密碼,隨便起一個密碼,忘了可以再更改。在這里我就用123456代替(123456是我的密碼,后續(xù)需要放在pycharm里)。

接下來把強(qiáng)制實施密碼策略的對號給點掉(不然后來會遇到各種登錄問題)

變成這樣:

點擊用戶映射,將你的數(shù)據(jù)庫打勾

將下邊的db_ower對勾選中

點擊確定,之后進(jìn)行驗證:

點擊電腦和叉的標(biāo)志退出服務(wù)器斷開連接,之后點擊電腦和綠線的標(biāo)志連接服務(wù)器

點擊SQL Sever 身份驗證輸入賬號密碼如果成功的連接,就會進(jìn)入數(shù)據(jù)庫,你只能對你用戶對應(yīng)下的數(shù)據(jù)庫進(jìn)行各種操作:

如果你的SQL Sever沒有打開密碼功能就會出現(xiàn)以下提示

標(biāo)題: 連接到服務(wù)器 ------------------------------ 無法連接到 LAPTOP-40O6HVDS。 ------------------------------ 其他信息: 已成功與服務(wù)器建立連接,但是在登錄過程中發(fā)生錯誤。 (provider: Shared Memory Provider, error: 0 - 管道的另一端上無任何進(jìn)程。) (Microsoft SQL Server,錯誤: 233)

步驟三:打開1433 端口

首先需要檢測自身的 1433 端口是否打開(一般默認(rèn)的都是關(guān)閉的需要自己打開)

1433應(yīng)該是電腦的一個端口,可以鏈接電腦的(其實不需要知道是什么)

點擊:win和R,輸入cmd點擊回車出現(xiàn)如下界面:

輸入telnet localhost 1433并點擊回車

一般會出現(xiàn)一下錯誤

'telnet' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序

解決辦法:

點擊:win和R,輸入control點擊回車出現(xiàn)如下界面:

點擊程序(不要點到卸載程序)

點擊啟動或關(guān)閉Windows 功能

將Telnet客戶端對號選中,點擊確定,會經(jīng)過大概1分鐘左右的等待頁面

再次重復(fù)win和R,輸入cmd點擊,輸入telnet localhost 1433并點擊回車出現(xiàn)以下錯誤

正在連接localhost...無法打開到主機(jī)的連接。 在端口 1433: 連接失敗

(你已經(jīng)成功了一半了)

打開以下程序:

找不到就在搜索框里輸入sql

打開之后會出現(xiàn)以下界面:

禁用所有上述出現(xiàn)的程序必須先這么做

點擊SQL Sever網(wǎng)絡(luò)配置,然后點擊MSSQLSEVER的協(xié)議

雙擊這個TCP/IP,進(jìn)入之后將TCP/IP的啟用改為 是

點擊IP地址:

將IP1、IP2的啟用改為是,觀察TCP端口是不是1433。(一共改兩個)

往下滑出現(xiàn)IPAll,觀察其TCP端口是不是1433,最后別忘記點應(yīng)用不是點擊確定

經(jīng)過上述操作后重啟電腦,重新打開該軟件,然后再將下邊的東西改成啟動SQL Sever代理啟動失敗與否不會影響SQL Sever的使用。

點擊:win和R,輸入cmd點擊回車,并在其中輸入telnet localhost 1433 當(dāng)頁面跳轉(zhuǎn)到以下頁面則說明你的1433配置成功:

步驟四:在pycharm中測試

經(jīng)過以上操作之后打開pycharm在終端輸入,安裝pycharm和SQL Sever鏈接的庫:

pip install pymssql

pymssql庫安裝成功后建立新的py文件并輸入以下代碼并執(zhí)行

import pymssql connect = pymssql.connect(host="localhost",server="LAPTOP-40O6HVDS", port="1433",user="yunmengze", password= "123456", database="soft2104")  # host不要改其參數(shù),server改成你的服務(wù)器名, port不要改其參數(shù),user你的用戶名, password你的密碼, database你的數(shù)據(jù)庫名if connect:

'yunmengze', '123456', 'soft2104'是上述步驟二操作中設(shè)置的。

LAPTOP-40O6HVDS是我的服務(wù)器名稱,在這里你需要打開你的SQL Sever登錄界面進(jìn)行查看

如果上述的,代碼執(zhí)行失敗,失敗示例如下(服務(wù)器名字是漢語的):

請用以下代碼調(diào)試,如果這樣能夠連接成功請利用步驟五修改服務(wù)器名稱

import pymssqlconnect = pymssql.connect(host="localhost",server="LAPTOP-40O6HVDS", port="1433",user="yunmengze", password= "123456", database="soft2104",charset="GBK")  # host不要改其參數(shù),server改成你的服務(wù)器名, port不要改其參數(shù),user你的用戶名, password你的密碼, database你的數(shù)據(jù)庫名,charset不要改變其參數(shù)。if connect:    print("數(shù)據(jù)庫連接成功")else:    print("連接失敗")

如果你的運(yùn)行結(jié)果是:數(shù)據(jù)庫連接成功

恭喜你的pycharm和SQL Sever鏈接成功。

(剩下的就是學(xué)習(xí)如何以pycharm為媒介來操作SQL Sever了)

SQL Sever在pycharm中的導(dǎo)入數(shù)據(jù)需要修改用戶權(quán)限,如果你經(jīng)過一番波折連接成功建議您往下看……

步驟五:服務(wù)器含有漢語的亂碼錯誤修正

下面根據(jù)我經(jīng)歷的一下問題做一些補(bǔ)充:

如果你的服務(wù)器沒有漢語請?zhí)^該步驟。

如果你的服務(wù)器是漢語的,登錄的時候需要charset="GBK",但是對后續(xù)的在數(shù)據(jù)增加時會因為GBK有亂碼的風(fēng)險,需要做下列一下修改:

點擊此電腦的屬性

進(jìn)入后點擊重命名這臺電腦

重命名后重啟電腦(為了教程我也是重命名了,………………)

重啟電腦后再打開sql sever點擊服務(wù)器,就可以對服務(wù)器進(jìn)行選擇,選擇你命名的電腦名稱的服務(wù)器,嘗試一下就會發(fā)現(xiàn)也可以進(jìn)入。

下面教程一種更改服務(wù)器名稱在pycharm來隱藏真實的服務(wù)器名稱的方法:

修改服務(wù)器的名稱(相當(dāng)于加一個小名),下列操作是在sql sever里新建查詢中執(zhí)行的,需要根據(jù)提示修改其中的oldservername和newservername:

/*select @@SERVERNAME--查詢當(dāng)前服務(wù)器實際名稱,在后續(xù)操作過程中不會影響該值,服務(wù)器的大名select SERVERPROPERTY("ServerName")--查看所有定義的服務(wù)器*/sp_helpserver    --可以查看服務(wù)器的小名--根據(jù)查出的小名進(jìn)行修改oldservername的值sp_dropserver "oldservername" --newservername是更改后的名稱sp_addserver "newservername","local" --將更改后的名稱應(yīng)用newservername是你需要改的sp_serveroption "newservername", "data access", "on"--oldservername原來的服務(wù)器名,newservername新的服務(wù)器名

修改后,用新的服務(wù)器名稱也能進(jìn)入服務(wù)器,注意不要有漢語

實際服務(wù)器如果有漢語請通過上一個方法修改服務(wù)器名稱先對真實服務(wù)器名稱修改,增加昵稱的方式不會更改原來服務(wù)器中包含漢語使服務(wù)器無法進(jìn)入或亂碼的錯誤。

SQL Sever在pycharm中的導(dǎo)入數(shù)據(jù),增,刪,查操作

如果你想大量導(dǎo)入數(shù)據(jù)導(dǎo)入數(shù)據(jù)前需要在sql sever里建立好表格),使用bulk函數(shù),例如:

bulk insert soft2110 --txt插入到soft2110表格中from "d:2104.txt"   --txt在D盤而且需要其編碼為ANSI才行with(fieldterminator = "\t",rowterminator = "\n") --\t是每行以空格分割,\n是根據(jù)換行將表格導(dǎo)入。

需要更改你的登錄名的權(quán)限,打開方式如下:

雙擊安全性

雙擊登錄名

找到你的登錄名(我的是yunmengze),雙擊服務(wù)器角色將服務(wù)器角色的sysadmin選中

在sql sever里建立表格時需要以下注意:

聲明表格變量時不要用nvarchar,varchar,因為這兩個聲名的字符串編碼是GBK編碼,如果在pycharm里插入數(shù)據(jù)時會因為pycharm執(zhí)行過程使用utf-8編碼導(dǎo)致插入后亂碼。所以在聲明table時字符串盡量用nchar(20),這種方式是utf-8編碼,其中的數(shù)字20是字符串的大小,一個漢字大概能占用2個位置,所以聲明的大小不能太大,更不能過小

示例如下:(先別粘,后續(xù)有總的,先看懂是怎么一回事

use soft2104create table soft2110(xh int,dp nchar(20),pr nchar(20),id nchar(30),nm nchar(20))

如果你之前聲明過soft2110表格但是使用了GBK編碼的nvarchar,varchar,你可以通過以下代碼刪除表格soft2110:

drop table soft2110

以下示例是完整的操作示例(已經(jīng)給你的用戶打開權(quán)限,復(fù)制完整代碼的時間到了):

use soft2104drop table soft2110create table soft2110(xh int,dp nchar(20),pr nchar(20),id nchar(30),nm nchar(20)) bulk insert soft2110 --txt textfrom "d:2104.txt"with(fieldterminator = "\t",rowterminator = "\n")--\t是空格delete from soft2110 where xh=71

示例需要在D盤建立2104.txt文件,示例數(shù)據(jù)是:

1 軟件學(xué)院 軟件2204 31212121212 云夢澤
2 軟件學(xué)院 軟件2204 31313131313 上林賦

注意,保存后需要另存為D盤的2104.txt文件進(jìn)行替換,編碼變成ANSI

增刪改查主要用的是sql sever里的execute函數(shù)示例如下:

在你的連接成功后的pycharm里加入以下代碼,實現(xiàn)對上述的表格實現(xiàn)查找:

cur = connect.cursor()sqlstr = "select * from soft2110"cur.execute(sqlstr)data = cur.fetchall()cur.close()for i in range(len(data)):    for t in range(len(data[i])):print(str(data[i][t]).strip(), end="  ")    print("\r")connect.close()

就會得到以下輸出,注意執(zhí)行之后關(guān)閉了游標(biāo)和連接(如果是帶循環(huán)的操作可以將connect.close()放在退出循環(huán)操作執(zhí)行,最后再斷開與sql sever的連接;斷開游標(biāo): cur.close() 游標(biāo)用的時候打開,不用的時候隨即關(guān)閉):

1 軟件學(xué)院 軟件2204 31212121212 云夢澤
2 軟件學(xué)院 軟件2204 31313131313 上林賦

注意其中data是列表里套用元組的形式,以上兩個for循環(huán)是打開列表和元組的過程:

[(1,軟件學(xué)院,軟件2204,31212121212,云夢澤),(2,軟件學(xué)院,軟件2204,31313131313,上林賦)]

數(shù)據(jù)查詢用的是:

cur.execute(sqlstr)
data = cur.fetchall()

數(shù)據(jù)增,刪用的是:

cur.execute(sqlstr)
connect.commit()

示例如下:

print("輸入案例:“醫(yī)學(xué)院  臨床2204  349849848  岳陽城”")add = input("請輸入‘學(xué)院 專業(yè)  學(xué)號 姓名":")try:    cur = connect.cursor()    sqlstr = "select * from soft2110"    cur.execute(sqlstr)    data = cur.fetchall()    sqlstr = f"select * from soft2110 where id = "{add[2]}""    cur.execute(sqlstr)    acc = cur.fetchall()    if acc:print("學(xué)號重復(fù),請重新插入")return    try:sqlstr =f"insert into soft2110 values ({len(data) + 1},"{add[0]}","{add[1]}","{add[2]}","{add[3]}")"# print(sqlstr)cur.execute(sqlstr)connect.commit()print("插入成功")    except:print("插入失敗請重試")    cur.close()    connect.close()except:    print("輸入錯誤")

Tip:

sqlstr = f"select * from soft2110 where id = "{add[2]}""

f 和 " "和 { } 結(jié)合是將 { } 內(nèi)的數(shù)據(jù)帶入進(jìn)字符串中,達(dá)到鏈接的作用,不加 f 中 { } 內(nèi)的add[2]數(shù)據(jù)沒辦法讀取到字符串中,達(dá)到運(yùn)算拼接的效果。

例如:

print(f"輸出結(jié)果為{2*3}")

打印:輸出結(jié)果為6

print("輸出結(jié)果為{2*3}")

打印:輸出結(jié)果為{2*3}

刪除操作(思路如下):

de = input("請輸入刪除的學(xué)號:")
sqlstr = f"delete from soft2110 where id = "{de}""

完整的刪除代碼如下:

def delete(connect, de):    cur = connect.cursor()    sqlstr = f"select * from soft2110 where id = "{de}""    cur.execute(sqlstr)    acc = cur.fetchall()    if acc:sqlstr = f"delete from soft2110 where id = "{de}""cur.execute(sqlstr)connect.commit()cur.close()print("刪除成功")    else:print("學(xué)號不存在")cur.close()    returnde = input("請輸入刪除的學(xué)號:")try:    delete(connect, de)except Exception as e:    print(f"Error: {e}")

具體的實現(xiàn)方式是,通過 execute( ) 函數(shù)將數(shù)據(jù)庫中的操作移動到python中,先對數(shù)據(jù)庫的學(xué)號進(jìn)行預(yù)判斷,如果沒有這個學(xué)號返回學(xué)號不存在的輸出,如果學(xué)號存在則返回刪除成功,如果發(fā)現(xiàn)其他錯誤則返回刪除失敗用try函數(shù)增加了函數(shù)的容錯性,通過將except函數(shù),做到輸出錯誤的目的,通過返回的錯誤類型再進(jìn)行代碼調(diào)試。

到此這篇關(guān)于如何使用Pycharm連接SQL Sever(詳細(xì)教程)的文章就介紹到這了,更多相關(guān)Pycharm連接SQL Sever內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MsSQL
主站蜘蛛池模板: MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 湖南成人高考报名-湖南成考网 | ge超声波测厚仪-电动涂膜机-电动划格仪-上海洪富 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 万博士范文网-您身边的范文参考网站Vanbs.com | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 365文案网_全网创意文案句子素材站 |