国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[零基礎(chǔ)學python]用Python操作數(shù)據(jù)庫(3)

BDEEFE / 2127人閱讀

摘要:用選擇要操作的數(shù)據(jù)庫,然后通過指針就可以操作這個數(shù)據(jù)庫了。這樣就在這個數(shù)據(jù)庫中創(chuàng)建了一個名為的表這是查看表的方式。樹欲靜而風不止,小偷在行動。所以,要特別提醒諸位注意。

通過python操作數(shù)據(jù)庫的行為,除了能夠完成前面兩講中的操作之外(當然,那是比較常用的),其實任何對數(shù)據(jù)庫進行的操作,都能夠通過python-mysqldb來實現(xiàn)。

建立數(shù)據(jù)庫

在《用python操作數(shù)據(jù)庫(1)》中,我是通過mysql>寫SQL語句,建立了一個名字叫做qiwsirtest的數(shù)據(jù)庫,然后用下面的方式跟這個數(shù)據(jù)庫連接

>>> import MySQLdb
>>> conn = MySQLdb.connect(host="localhost",user="root",passwd="123123",db="qiwsirtest",charset="utf8")

在上面的連接中,參數(shù)db="qiwsirtest"其實可以省略,如果省略,就是沒有跟任何具體的數(shù)據(jù)庫連接,只是連接了mysql。

>>> import MySQLdb
>>> conn = MySQLdb.connect("localhost","root","123123",port=3306,charset="utf8")

這種連接沒有指定具體數(shù)據(jù)庫,接下來就可以用類似mysql>交互模式下的方式進行操作。

>>> conn.select_db("qiwsirtest")
>>> cur = conn.cursor()
>>> cur.execute("select * from users")
7L
>>> cur.fetchall()
((1L, u"qiwsir", u"123123", u"qiwsir@gmail.com"), (2L, u"mypython", u"123456", u"python@gmail.com"), (3L, u"google", u"111222", u"g@gmail.com"), (4L, u"facebook", u"222333", u"f@face.book"), (5L, u"github", u"333444", u"git@hub.com"), (6L, u"docker", u"444555", u"doc@ker.com"), (7L, u"u8001u9f50", u"9988", u"qiwsir@gmail.com"))

conn.select_db()選擇要操作的數(shù)據(jù)庫,然后通過指針就可以操作這個數(shù)據(jù)庫了。其它的操作跟前兩講一樣了。

如果不選數(shù)據(jù)庫,而是要新建一個數(shù)據(jù)庫,如何操作?

>>> cur = conn.cursor()
>>> cur.execute("create database newtest")
1L

建立數(shù)據(jù)庫之后,就可以選擇這個數(shù)據(jù)庫,然后在這個數(shù)據(jù)庫中建立一個數(shù)據(jù)表。

>>> cur.execute("create table newusers (id int(2) primary key auto_increment, username varchar(20), age int(2), email text)")
0L

括號里面是引號,引號里面就是創(chuàng)建數(shù)據(jù)表的語句,看官一定是熟悉的。這樣就在newtest這個數(shù)據(jù)庫中創(chuàng)建了一個名為newusers的表

>>> cur.execute("show tables")
1L
>>> cur.fetchall()
((u"newusers",),)

這是查看表的方式。當然,看官可以在mysql>交互模式下查看是不是存在這個表。如下:

mysql> use newtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------+
| Tables_in_newtest |
+-------------------+
| newusers          |
+-------------------+
1 row in set (0.00 sec)

mysql> desc newusers;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int(2)      | NO   | PRI | NULL    | auto_increment |
| username | varchar(20) | YES  |     | NULL    |                |
| age      | int(2)      | YES  |     | NULL    |                |
| email    | text        | YES  |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

以上就通過python-mysqldb實現(xiàn)了對數(shù)據(jù)庫和表的建立。

當然,能建就能刪除。看官可以自行嘗試,在這里就不贅述,原理就是在cur.execute()中寫SQL語句。

關(guān)閉一切

當進行完有關(guān)數(shù)據(jù)操作之后,最后要做的就是關(guān)閉游標(指針)和連接。用如下命令實現(xiàn):

>>> cur.close()
>>> conn.close()

注意關(guān)閉順序,和打開的順序相反。

為什么要關(guān)閉?這個問題有點那個了。你把房子里面都收拾好了,如果離開房子,不關(guān)門嗎?不要以為自己生活在那個理想社會。樹欲靜而風不止,小偷在行動。更何況,如果不關(guān)閉,服務器的內(nèi)容總?cè)切〇|西而沒有釋放,早晚就滿了。所以,必須關(guān)閉。必須的。

關(guān)于亂碼問題

這個問題是編寫web時常常困擾程序員的問題,亂碼的本質(zhì)來自于編碼格式的設(shè)置混亂。所以,要特別提醒諸位注意。在用python-mysqldb的時候,為了放置亂碼,可以做如下統(tǒng)一設(shè)置:

Python文件設(shè)置編碼 utf-8(文件前面加上 #encoding=utf-8)

MySQL數(shù)據(jù)庫charset=utf8(數(shù)據(jù)庫的設(shè)置方法,可以網(wǎng)上搜索)

Python連接MySQL是加上參數(shù) charset=utf8(在前面教程中都這么演示了,很重要)

設(shè)置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8),這個后面會講述)

代碼示例:

#encoding=utf-8

import sys
import MySQLdb

reload(sys)
sys.setdefaultencoding("utf-8")

db=MySQLdb.connect(user="root",charset="utf8") 

MySQL的配置文件設(shè)置也必須配置成utf8 設(shè)置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設(shè)置默認的字符集(通常在/etc/mysql/my.cnf):

[client] default-character-set = utf8
[mysqld] default-character-set = utf8

windows操作系統(tǒng)請看官自己google。


在我的網(wǎng)站上,有完整的本教程目錄,邀請您光臨,并不吝賜教: www.itdiffer.com

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37428.html

相關(guān)文章

  • [基礎(chǔ)python]有容乃大的list(1)

    摘要:定義在中,用方括號表示一個,在方括號里面,可以是,也可以是類型的數(shù)據(jù),甚至也能夠是這種布爾值。前面在對進行操作的時候,有一些內(nèi)置函數(shù),比如,這是去掉左右空格的內(nèi)置函數(shù),也是的方法。 前面的學習中,我們已經(jīng)知道了兩種python的數(shù)據(jù)類型:int和str。再強調(diào)一下對數(shù)據(jù)類型的理解,這個世界是由數(shù)據(jù)組成的,數(shù)據(jù)可能是數(shù)字(注意,別搞混了,數(shù)字和數(shù)據(jù)是有區(qū)別的),也可能是文字、或者是聲音、...

    lewif 評論0 收藏0
  • [基礎(chǔ)Python]正規(guī)地說一句話

    摘要:語句,遍列列表字符串字典集合等迭代器,依次處理迭代器中的每個元素。與配合使用處理在程序運行中出現(xiàn)的異常情況。表示此行為空,不運行任何操作。在迭代器函數(shù)內(nèi)使用,用于返回一個元素。恭請到上瀏覽及時更新的教程零基礎(chǔ)學 小孩子剛剛開始學說話的時候,常常是一個字一個字地開始學,比如學說餃子,對他/她來講,似乎有點難度,大人也聰明,于是就簡化了,用餃餃來代替,其實就是讓孩子學會一個字就能表達。當然...

    Freeman 評論0 收藏0
  • 基礎(chǔ)如何爬蟲技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務,現(xiàn)整理出零基礎(chǔ)如何學爬蟲技術(shù)以供學習,。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務,服務范圍涵蓋社交網(wǎng)絡(luò)電子商務分類信息學術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務,現(xiàn)整理出零基礎(chǔ)如何學爬蟲技術(shù)以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...

    KunMinX 評論0 收藏0
  • [基礎(chǔ)python]print能干的事情

    摘要:在干事情之前,先看看這個東東。行文到此,提醒列位,如果用的,請用,要加個括號。這樣的輸出算是對前面輸出的擴展了。據(jù)說,會逐漸逐漸取代前面的。恭請列為到我的上及時更新的內(nèi)容零基礎(chǔ)學 print的一些基本用法,在前面的講述中也涉及一些,本講是在復習的基礎(chǔ)上,盡量再多點內(nèi)容。 eval() 在print干事情之前,先看看這個東東。不是沒有用,因為說不定某些時候要用到。 >>> help...

    kk_miles 評論0 收藏0
  • [基礎(chǔ)Python]dict()的操作方法

    摘要:還有別的方法得到鍵值嗎有一般不是只有一個方法實現(xiàn)某個操作的。刪除鍵值對的方法有兩個,但是兩者有一點區(qū)別,根據(jù)刪除相應的鍵值對,并返回該值沒有返回值,如果刪除鍵不存在,返回錯誤用可以把合并到中。 dict的很多方法跟list有類似的地方,下面一一道來,并且會跟list做一個對比 嵌套 嵌套在list中也存在,就是元素是list,在dict中,也有類似的樣式: >>> a_list ...

    vpants 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<