mysql获取某个表的所有属性名及其数据

MYSQL类实现从数据库相应的表中获取所有属性及其数据,数据为元组类型。返回结果存放在字典中

import pymysql

class MYSQL:
    def __init__(self):
        pass

    def __del__(self):
        self._cursor.close()
        self._connect.close()

    def connectDB(self):
        """
        连接数据库
        :return:
        """
        try:
            self._connect = pymysql.Connect(
                host=‘localhost‘,
                port=3306,
                user=‘root‘,
                passwd=‘123456‘,
                db=‘test‘,
                charset=‘utf8‘
            )

            return 1
        except:
            return 0

    def readObject(self, target):
        """
        读取评价对象
        :return: list对象:所有的评价对象及其数据,数据的行数
        """
        self._cursor=self._connect.cursor()
        result = {}  # {字段:该字段的所有值列表(包含字段)}
        name = []    # target表的所有字段的列表
        data = ()
        sql = "select COLUMN_NAME from information_schema.COLUMNS where table_name = ‘%s‘"
        name_sql = "select %s from %s"
        self._cursor.execute(sql % target)
        results = self._cursor.fetchall()
        for row in results:
            name.append(row[0])

        # print(name)

        for i in name:
            self._cursor.execute(name_sql % (i, target))
            data = self._cursor.fetchall()
            # Python 字典 setdefault() 函数
            # 如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值
            result.setdefault(i, data)

        return result, len(data)

if __name__ == ‘__main__‘:

    mysql = MYSQL()
    flag = mysql.connectDB()
    if flag == 0:
        print(‘数据库连接失败‘)
    else:
        print(‘数据库连接成功‘)
        data, row_count = mysql.readObject(‘employee‘)
        print(data)
        print(row_count)

输出结果:

数据库连接成功
{‘FIRST_NAME‘: ((‘Mac‘,), (‘Marry‘,), (‘Bob‘,)), ‘LAST_NAME‘: ((‘Mohan‘,), (‘Mohan‘,), (‘Mohan‘,)), ‘AGE‘: ((20,), (32,), (21,)), ‘SEX‘: ((‘M‘,), (‘M‘,), (‘F‘,)), ‘INCOME‘: ((2000.0,), (3000.0,), (4000.0,))}
3

原文地址:https://www.cnblogs.com/fuqia/p/8994681.html

时间: 2024-10-10 15:29:05

mysql获取某个表的所有属性名及其数据的相关文章

MySQL获取Schema表名和字段信息

MySQL获取Schema表名和字段信息 获取表名 select TABLE_NAME,TABLE_TYPE,ENGINE,TABLE_ROWS,TABLE_COMMENT,CREATE_TIME,UPDATE_TIME, CHECK_TIME from information_schema.TABLES where TABLE_SCHEMA='t_shop' ; 获取字段名 select COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NUL

mysql获取外键, 根据数据库名和表名获取表所对应的所有外键

SELECT ii.`COLUMN_NAME` FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS ii WHERE ii.`CONSTRAINT_SCHEMA`='xius' AND ii.`TABLE_NAME`='comment_user' AND ii.`REFERENCED_COLUMN_NAME` != 'null'; xius: 数据库名 comment_user: 表名

MySQL获取其他表的主键

通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_INSERT_ID()函数 通过SQL @@IDENTITY 变量 1. 通过JDBC2.0提供的insertRow()方式 自jdbc2.0以来,可以通过下面的方式

mysql获取一个表中的下一个自增(id)值的方法

MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get the next auto_increment value from a table run this query: SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = $tblName. Don’t for

mysql 获取一个表中缺失的最小编号

select count(*),t1.`name` from test_id t1INNER JOIN test_id t2on t1.id >= t2.idgroup by t1.id,t1.`name`HAVING count(*) < t1.idorder by t1.idlimit 1;select * from test_id; 表结构看上一篇

JS获取form表单所有属性值

// 得到一个表单里的全部信息function getFormQueryString() { var frmID=document.forms[0]; var i,queryString="",and=""; var item; // for each form's object var itemValue; // store each form object's value for(i=0;i<frmID.length;i++) {  item=frmID[

微信小程序--获取form表单初始值提交数据

<form bindsubmit="formSubmit"> <view class="txt"> <view class="ima"></view> <view class="txt2">姓名</view> <input placeholder="请输入姓名" maxlength="10" class=&qu

mysql GROUP_CONCAT+ GROUP BY + substring_index获取分组的前几名

mysql方法来源于:http://www.cnblogs.com/jjcc/p/5896588.html ###在网上看到一篇,非常赞的方法 比如说要获取班级的前3名,mysql就可以用GROUP_CONCAT  + GROUP BY + substring_index实现. 考试表 DROP TABLE IF EXISTS `test`;CREATE TABLE `test` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join