Метаданные в SQLite







Метаданные – это информация о данных в базе данных. Метаданные в SQLite содержат в себе информацию о таблицах и столбцах, в которых мы храним данные. Количество строк под воздействием оператора SQL – это метаданные. Количество строк и столбцов, возвращаемые в результирующий набор, также относятся к метаданным. Метаданные в SQLite могут быть получены с использованием команды PRAGMA. Объекты SQLite могут иметь атрибуты, которые являются метаданными. Наконец, мы также можем достать определённые метаданные от запроса таблицы sqlite_master системы SQLite.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
con = lite.connect('test.db')
with con:
cur = con.cursor()
cur.execute('PRAGMA table_info(Cars)')
data = cur.fetchall()
for d in data:
print d[0], d[1], d[2]
В этом примере, мы пускаем в обращение команду PRAGMA table_info(tableName), чтобы получить некоторую метаинформацию о нашей таблице Cars.
Скачать новые программы для операционной системы Android. Новые платные приложения и игры X-Core: Galactic Plague всегда новые версии. Новый источник получения чистых приложений.
cur.execute('PRAGMA table_info(Cars)')
Команда PRAGMA table_info(tableName) возвращает одну строку для каждого столбца в таблице Cars. Столбцы в результирующем наборе содержат в себе порядковый номер столбца, название столбца, тип данных, может ли столбец быть NULL или нет, а также значение по умолчанию для столбца.
for d in data:
print d[0], d[1], d[2]
Из предоставленной информации, мы печатаем порядковый номер столбца, название столбца и тип данных столбца.
$ ./colnames1.py
0 Id INT
1 Name TEXT
2 Price INT
Выходная информация примера
Далее мы напечатаем все строки из таблицы Cars с именами столбцов.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
con = lite.connect('test.db')
with con:
cur = con.cursor()
cur.execute('SELECT * FROM Cars')
col_names = [cn[0] for cn in cur.description]
rows = cur.fetchall()
print "%s %-10s %s" % (col_names[0], col_names[1], col_names[2])
for row in rows:
print "%2s %-10s %s" % row
Мы печатаем содержание таблицы Cars в консоль. Теперь, мы также включаем имена столбцов. Записи выравниваются с именами столбцов.
col_names = [cn[0] for cn in cur.description]
Мы получаем имена столбцов из свойства description объекта указателя.
print "%s %-10s %s" % (col_names[0], col_names[1], col_names[2])
Эта строка печатает три имени столбцов таблицы Cars.
for row in rows:
print "%2s %-10s %s" % row
Мы печатаем строки, используя цикл for. Данные выравниваются с именами столбцов.
$ ./colnames2.py
Id Name Price
1 Audi 52642
2 Mercedes 57127
3 Skoda 9000
4 Volvo 29000
5 Bentley 350000
6 Citroen 21000
7 Hummer 41400
8 Volkswagen 21600
Выходная информация
В нашем последнем примере, связанном с метаданными, мы перечислим все таблицы в базе данных test.db.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
con = lite.connect('test.db')
with con:
cur = con.cursor()
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
rows = cur.fetchall()
for row in rows:
print row[0]
Пример кода печатает все доступные в текущей базе данных таблицы в терминал.
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
Имена таблиц хранятся внутри таблицы sqlite_master системы.
$ ./listtables.py
Images
sqlite_sequence
Salaries
Cars
Это были таблицы в моей системе.
Оплатить персональный перевод в интернете не так то просто, между тем, фактически возможно. Работая удаленно, к примеру, фрилансером, различные работодателиЕсть огромнейшее число страниц, позволяющих направить деньги фактически анонимно попробуйте здесь. большинство имеют проблему скрытного платежа электронных счетов.