mysql字符串转换成字典

mysql字符串转换成字典,第1张

mysql字符串转换成字典可以用php数据表转换成数据字典的程序。网上找到别人写好的php数据表转换成数据字典的程序export2.php,修改export2.php中连接数据库的信息(数据库IP、数据库名称、访问数据库的账号密码。

MYSQL没有这些,MYSQL用SHWO命令查询数据库和表、字段、索引等信息:

一些SHOW语句提供额外的字符集信息。这些语句包括SHOW CHARACTER SET、SHOW COLLATION、SHOW CREATE DATABASE、SHOW CREATE TABLE和SHOW COLUMNS。

SHOW CHARACTER SET命令显示全部可用的字符集。它带有一个可选的LIKE子句来指示匹配哪些字符集名。例如:

mysql> SHOW CHARACTER SET LIKE 'latin%'

+---------+-----------------------------+-------------------+--------+

| Charset | Description                 | Default collation | Maxlen |

+---------+-----------------------------+-------------------+--------+

| latin1  | cp1252 West European        | latin1_swedish_ci |      1 |

| latin2  | ISO 8859-2 Central European | latin2_general_ci |      1 |

| latin5  | ISO 8859-9 Turkish          | latin5_turkish_ci |      1 |

| latin7  | ISO 8859-13 Baltic          | latin7_general_ci |      1 |

+---------+-----------------------------+-------------------+--------+

见13.5.4.1节,“SHOW CHARACTER SET语法”。

SHOW COLLATION语句的输出包括全部可用的字符集。它带有一个可选的LIKE子句来指示匹配哪些 校对规则名。例如:

mysql> SHOW COLLATION LIKE 'latin1%'

+-------------------+---------+----+---------+----------+---------+

| Collation         | Charset | Id | Default | Compiled | Sortlen |

+-------------------+---------+----+---------+----------+---------+

| latin1_german1_ci | latin1  |  5 |         |          |       0 |

| latin1_swedish_ci | latin1  |  8 | Yes     | Yes      |       0 |

| latin1_danish_ci  | latin1  | 15 |         |          |       0 |

| latin1_german2_ci | latin1  | 31 |         | Yes      |       2 |

| latin1_bin        | latin1  | 47 |         | Yes      |       0 |

| latin1_general_ci | latin1  | 48 |         |          |       0 |

| latin1_general_cs | latin1  | 49 |         |          |       0 |

| latin1_spanish_ci | latin1  | 94 |         |          |       0 |

+-------------------+---------+----+---------+----------+---------+

见13.5.4.2节,“SHOW COLLATION语法”。

SHOW CREATE DATABASE语句显示创建给定数据库的CREATE DATABASE语句。结果包括全部数据库选项。支持DEFAULT CHARACTER SET和COLLATE。全部数据库选项存储在命名为db.Opt的文本文件中,该文件能够在数据库目录中找到。

mysql> SHOW CREATE DATABASE test

+----------+-----------------------------------------------------------------+

| Database | Create Database                                                 |

+----------+-----------------------------------------------------------------+

| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+-----------------------------------------------------------------+

见13.5.4.4节,“SHOW CREATE DATABASE语法”

SHOW CREATE TABLE与SHOW CREATE DATABASE相似,但是显示创建给定数据库的CREATE TABLE语句。列定义显示任何字符集规格,并且表选项包括字符集信息。

见13.5.4.5节,“SHOW CREATE TABLE语法”

当以SHOW FULL COLUMNS调用时,SHOW COLUMNS语句显示表中列的校对规则。具有CHAR、VARCHAR或TEXT数据类型的列有非NULL的 校对规则。数值列和其它非字符类型的列有NULL校对规则。例如:

mysql> SHOW FULL COLUMNS FROM person\G

*************************** 1. row ***************************

     Field: id

      Type: smallint(5) unsigned

 Collation: NULL

      Null: NO

       Key: PRI

   Default: NULL

     Extra: auto_increment

Privileges: select,insert,update,references

   Comment:

*************************** 2. row ***************************

     Field: name

      Type: char(60)

 Collation: latin1_swedish_ci

      Null: NO

       Key:

   Default:

     Extra:

Privileges: select,insert,update,references

   Comment:

字符集不是显示的部分。(字符集名隐含在校对规则名中。)

见13.5.4.3节,“SHOW COLUMNS语法”。

Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数据默认连接数据库:

复制代码 代码如下:

MySQLdb.connect(

host=host,

user=user,

passwd=passwd,

db=db,

port=port,

charset='utf8'

)

查询数据:

复制代码 代码如下:

cur = conn.cursor()

cur.execute('select b_id from blog limit 1')data = cur.fetchall()

cur.close()

conn.close()

打印:

复制代码 代码如下:

for row in data:

print type(row)

print row

执行结果:

复制代码 代码如下:

<type 'tuple'>

(1L,)

为tuple类型。

我们可以这么干使得数据查询结果返回字典类型,即 字段=数据导入模块

复制代码 代码如下:

import MySQLdb.cursors

在连接函数里加上这个参数 cursorclass = MySQLdb.cursors.DictCursor 如:

复制代码 代码如下:

MySQLdb.connect(

host=host,

user=user,

passwd=passwd,

db=db,

port=port,

charset='utf8',

cursorclass = MySQLdb.cursors.DictCursor

)

再重新运行脚本,看看执行结果:

复制代码 代码如下:

<type 'dict'>

{'b_id': 1L}

搞定!

注意,在连接的时候port如果要指定则值必须是整型,否则会出错!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7374394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存