Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydrukuj wyniki w formacie MySQL za pomocą Pythona

Nie ma potrzeby korzystania z zewnętrznej biblioteki. Drukuje dane z nazwami kolumn. Wszystkie wiersze ze zmienną 'columns' można usunąć, jeśli nie potrzebujesz nazw kolumn.

sql = "SELECT * FROM someTable"
cursor.execute(sql)
conn.commit()
results = cursor.fetchall()

widths = []
columns = []
tavnit = '|'
separator = '+' 

for cd in cursor.description:
    widths.append(max(cd[2], len(cd[0])))
    columns.append(cd[0])

for w in widths:
    tavnit += " %-"+"%ss |" % (w,)
    separator += '-'*w + '--+'

print(separator)
print(tavnit % tuple(columns))
print(separator)
for row in results:
    print(tavnit % row)
print(separator)

To jest wynik:

+--------+---------+---------------+------------+------------+
| ip_log | user_id | type_id       | ip_address | time_stamp |
+--------+---------+---------------+------------+------------+
| 227    | 1       | session_login | 10.0.0.2   | 1358760386 |
| 140    | 1       | session_login | 10.0.0.2   | 1358321825 |
| 98     | 1       | session_login | 10.0.0.2   | 1358157588 |
+--------+---------+---------------+------------+------------+

Magia tkwi w trzeciej kolumnie każdego cursor.description linia (o nazwie cd[2] w kodzie). Ta kolumna reprezentuje długość w znakach najdłuższej wartości. W związku z tym rozmiar wyświetlanej kolumny jest większy między tą wartością a długością samego nagłówka kolumny (max(cd[2], len(cd[0])) ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nie można zwiększyć limitu otwartych plików w mariadb 10 na centos7

  2. Jakie znaki należy zmienić, aby zapobiec wstrzykiwaniu (My)SQL?

  3. Wersja php-mysql powoduje konflikt z serwerem Mysql

  4. Jak mogę odzyskać instancję ostatnio dodanego elementu?

  5. Sortowanie kolumny ciągów zawierającej liczby w SQL?