<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        如何使用python對數據庫(mysql)進行操作

        來源:懂視網 責編:小采 時間:2020-11-27 14:24:58
        文檔

        如何使用python對數據庫(mysql)進行操作

        如何使用python對數據庫(mysql)進行操作:一、數據庫基本操作1. 想允許在數據庫寫中文,可在創建數據庫時用下面命令create database zcl charset utf8;2. 查看students表結構desc students;3. 查看創建students表結構的語句show create table students;4. 刪除數據庫d
        推薦度:
        導讀如何使用python對數據庫(mysql)進行操作:一、數據庫基本操作1. 想允許在數據庫寫中文,可在創建數據庫時用下面命令create database zcl charset utf8;2. 查看students表結構desc students;3. 查看創建students表結構的語句show create table students;4. 刪除數據庫d

        一、數據庫基本操作

        1. 想允許在數據庫寫中文,可在創建數據庫時用下面命令

        create database zcl charset utf8;

        2. 查看students表結構

        desc students;

        3. 查看創建students表結構的語句

        show create table students;

        4. 刪除數據庫

        drop database zcl;

        5. 創建一個新的字段

        alter table students add column nal char(64); 

        PS: 本人是很討厭上面這種“簡單解釋+代碼”的博客。其實我當時在mysql終端寫了很多的實例,不過因為當時電腦運行一個看視頻的軟件,導致我無法Ctrl+C/V。現在懶了哈哈~~

        二、python連接數據庫

        python3不再支持mysqldb。其替代模塊是PyMySQL。本文的例子是在python3.4環境。

        1. 安裝pymysql模塊

        pip3 install pymysql

        2. 連接數據庫,插入數據實例

        import pymysql
        #生成實例,連接數據庫zcl
        conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
        #生成游標,當前實例所處狀態
        cur = conn.cursor()
        #插入數據
        reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Jack','man',25,1351234,"CN"))
        reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Mary','female',18,1341234,"USA"))
        
        conn.commit() #實例提交命令
        
        cur.close()
        conn.close()
        print(reCount)

        查看結果:

        mysql> select* from students;+----+------+-----+-----+-------------+------+
        | id | name | sex | age | tel | nal |
        +----+------+-----+-----+-------------+------+
        | 1 | zcl | man | 22 | 15622341234 | NULL |
        | 2 | alex | man | 30 | 15622341235 | NULL |
        +----+------+-----+-----+-------------+------+
        2 rows in set

        3. 獲取數據

        import pymysql
        
        conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
        cur = conn.cursor()
        
        reCount = cur.execute('select* from students')
        
        res = cur.fetchone() #獲取一條數據
        res2 = cur.fetchmany(3) #獲取3條數據
        res3 = cur.fetchall() #獲取所有(元組格式)
        print(res)
        print(res2)
        print(res3)
        conn.commit()
        
        cur.close()
        conn.close()

        輸出:

        (1, 'zcl', 'man', 22, '15622341234', None)
        ((2, 'alex', 'man', 30, '15622341235', None), (5, 'Jack', 'man', 25, '1351234', 'CN'), (6, 'Mary', 'female', 18, '1341234', 'USA'))
        ()

        三、事務回滾

        事務回滾是在數據寫到數據庫前執行的,因此事務回滾conn.rollback()要在實例提交命令conn.commit()之前。只要數據未提交就可以回滾,但回滾后ID卻是自增的。請看下面的例子:

        插入3條數據(注意事務回滾):

        import pymysql
        #連接數據庫zcl
        conn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
        #生成游標,當前實例所處狀態
        cur=conn.cursor()
        #插入數據
        reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Jack', 'man', 25, 1351234, "CN"))
        reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)', ('Jack2', 'man', 25, 1351234, "CN"))
        reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Mary', 'female', 18, 1341234, "USA"))
        
        conn.rollback() #事務回滾
        conn.commit() #實例提交命令
        
        cur.close()
        conn.close()
        print(reCount)

        未執行命令前與執行命令后(包含回滾操作)(注意ID號): 未執行上面代碼與執行上面代碼的結果是一樣的!!因為事務已經回滾,故students表不會增加數據!

        mysql> select* from students;+----+------+--------+-----+-------------+------+
        | id | name | sex | age | tel | nal |
        +----+------+--------+-----+-------------+------+
        | 1 | zcl | man | 22 | 15622341234 | NULL |
        | 2 | alex | man | 30 | 15622341235 | NULL |
        | 5 | Jack | man | 25 | 1351234 | CN |
        | 6 | Mary | female | 18 | 1341234 | USA |
        +----+------+--------+-----+-------------+------+
        4 rows in set

        執行命令后(不包含回滾操作):只需將上面第11行代碼注釋。

        mysql> select* from students;+----+-------+--------+-----+-------------+------+
        | id | name | sex | age | tel | nal |
        +----+-------+--------+-----+-------------+------+
        | 1 | zcl | man | 22 | 15622341234 | NULL |
        | 2 | alex | man | 30 | 15622341235 | NULL |
        | 5 | Jack | man | 25 | 1351234 | CN |
        | 6 | Mary | female | 18 | 1341234 | USA |
        | 10 | Jack | man | 25 | 1351234 | CN |
        | 11 | Jack2 | man | 25 | 1351234 | CN |
        | 12 | Mary | female | 18 | 1341234 | USA |
        +----+-------+--------+-----+-------------+------+
        7 rows in set

        總結:雖然事務回滾了,但ID還是自增了,不會因回滾而取消,但這不影響數據的一致性(底層的原理我不清楚~)

        四、批量插入數據

        import pymysql
        #連接數據庫zcl
        conn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')
        #生成游標,當前實例所處狀態
        cur = conn.cursor()
        li = [
         ("cjy","man",18,1562234,"USA"),
         ("cjy2","man",18,1562235,"USA"),
         ("cjy3","man",18,1562235,"USA"),
         ("cjy4","man",18,1562235,"USA"),
         ("cjy5","man",18,1562235,"USA"),
        ]
        
        #插入數據
        reCount = cur.executemany('insert into students(name,sex,age,tel,nal) values(%s,%s,%s,%s,%s)', li)
        
        #conn.rollback() #事務回滾
        conn.commit() #實例提交命令
        
        cur.close()
        conn.close()
        print(reCount)

        pycharm下輸出: 5

        mysql終端顯示:

        mysql> select* from students;   #插入數據前+----+-------+--------+-----+-------------+------+
        | id | name | sex | age | tel | nal |
        +----+-------+--------+-----+-------------+------+
        | 1 | zcl | man | 22 | 15622341234 | NULL |
        | 2 | alex | man | 30 | 15622341235 | NULL |
        | 5 | Jack | man | 25 | 1351234 | CN |
        | 6 | Mary | female | 18 | 1341234 | USA |
        | 10 | Jack | man | 25 | 1351234 | CN |
        | 11 | Jack2 | man | 25 | 1351234 | CN |
        | 12 | Mary | female | 18 | 1341234 | USA |
        +----+-------+--------+-----+-------------+------+
        7 rows in set
        
        
        mysql> mysql> select* from students;   #插入數據后+----+-------+--------+-----+-------------+------+
        | id | name | sex | age | tel | nal |
        +----+-------+--------+-----+-------------+------+
        | 1 | zcl | man | 22 | 15622341234 | NULL |
        | 2 | alex | man | 30 | 15622341235 | NULL |
        | 5 | Jack | man | 25 | 1351234 | CN |
        | 6 | Mary | female | 18 | 1341234 | USA |
        | 10 | Jack | man | 25 | 1351234 | CN |
        | 11 | Jack2 | man | 25 | 1351234 | CN |
        | 12 | Mary | female | 18 | 1341234 | USA |
        | 13 | cjy | man | 18 | 1562234 | USA |
        | 14 | cjy2 | man | 18 | 1562235 | USA |
        | 15 | cjy3 | man | 18 | 1562235 | USA |
        | 16 | cjy4 | man | 18 | 1562235 | USA |
        | 17 | cjy5 | man | 18 | 1562235 | USA |
        +----+-------+--------+-----+-------------+------+
        12 rows in set

        學完的東西要及時總結,有些東西忘記了阿~_~

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        如何使用python對數據庫(mysql)進行操作

        如何使用python對數據庫(mysql)進行操作:一、數據庫基本操作1. 想允許在數據庫寫中文,可在創建數據庫時用下面命令create database zcl charset utf8;2. 查看students表結構desc students;3. 查看創建students表結構的語句show create table students;4. 刪除數據庫d
        推薦度:
        標簽: 操作 數據 數據庫
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国内外成人免费视频| 精品亚洲永久免费精品| 毛片a级毛片免费播放100| 亚洲精品中文字幕无码AV| 最近2019免费中文字幕视频三| 亚洲综合精品香蕉久久网97| 91久久青青草原线免费| 亚洲电影在线播放| 国产精品视频免费一区二区| 亚洲成av人无码亚洲成av人| 国产精品视_精品国产免费| 免费国产高清毛不卡片基地| 亚洲Av无码乱码在线播放| www在线观看播放免费视频日本| 亚洲一级Av无码毛片久久精品| baoyu116.永久免费视频| 99亚洲精品高清一二区| 成年女人看片免费视频播放器| 精品国产亚洲AV麻豆| 亚洲A丁香五香天堂网| a级大片免费观看| 亚洲精品乱码久久久久久下载 | 亚洲日本在线免费观看| 亚洲精品国产国语| 亚洲国产精品成人一区| 3344在线看片免费| 在线亚洲高清揄拍自拍一品区 | 国产V亚洲V天堂无码久久久| 日韩免费电影网站| 亚洲精品无码mⅴ在线观看| 亚洲国产精品尤物YW在线观看| 免费h视频在线观看| 成人亚洲国产va天堂| 亚洲精品字幕在线观看| 免费观看美女用震蛋喷水的视频| 亚洲AV无码一区二区大桥未久| 国产成人A人亚洲精品无码| 成人免费毛片内射美女-百度| 美女免费精品高清毛片在线视| 亚洲va在线va天堂va888www| 免费看香港一级毛片|