Итерация по столбцам таблицы в базе данных и печать количества записей в ней - PullRequest
1 голос
/ 10 июня 2019

Перебирая столбцы таблицы в базе данных и печатая количество записей в ней

, уже подключенных к базе данных, необходимо перебирать столбцы таблицы и печатать количество записей в каждом архиве как имянапечатано ниже

import mysql.connector
from mysql.connector import Error
try:
   mySQLconnection = mysql.connector.connect(host='localhost',
                                    database='nmoorg',
                                   user='root',
                                   password='ChvU5M12')
   sql_select_Query = "select * from archive"
   cursor = mySQLconnection .cursor()
   cursor.execute(sql_select_Query)
   records = cursor.fetchall()
   print("Total number of rows in python_developers is - ",  cursor.rowcount)
   print ("Printing each row's column values i.e.  developer record")

   for row in records:
       print("archive name = ", row[1], )

   cursor.close()

except Error as e :
    print ("Error while connecting to MySQL", e )
finally:
    #closing database connection.
    if(mySQLconnection .is_connected()):
        connection.close()
        print("MySQL connection is closed")

Мне нужно посчитать количество записей в столбце вместо таблицы

1 Ответ

0 голосов
/ 10 июня 2019
SELECT COUNT(*) num FROM archive

- это способ подсчета строк в таблице.

SELECT COUNT(*) num, COUNT(column) num_column FROM archive

- это способ подсчета как всех строк, так и количества строк с ненулевым значением в archive.column.

Я думаю, это то, что вы подразумеваете под считать количество записей в столбце вместо таблицы .

Подсчет с помощью SELECT * и подсчет строк в наборе результатов шокирующе неэффективен.Кроме того, .fetchall() будет утомлять вашу оперативную память, если таблица имеет какой-либо интересный размер.Весь смысл SQL в том, чтобы вы могли обрабатывать наборы данных на несколько порядков больше, чем ваша RAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...