|
Программирование >> Преобразование значений null
Решение Следующие решения предполагают, что требуется представить список столбцов, их типов и порядковых номеров для таблицы EMP схемы SMEAGOL. Делаем запрос к SYSCAT.COLUMNS: 1 select colname, typename, colno 2 from syscat.columns 3 where tabname = EMP 4 and tabschema = SMEAGOL Oracle Делаем запрос к ALL TAB COLUMNS: 1 select column name, data type, column id 2 from all tab columns 3 where owner = SMEAGOL 4 and table name = EMP PostgreSQL, MySQL и SQL Server Делаем запрос к INFORMATION SCHEMA.COLUMNS: 1 select column name, data type, ordinal position 2 from information schema.columns 3 where table schema = SMEAGOL 4 and table name = EMP Обсуждение Каждый производитель предоставляет средства для получения подробной информации о столбцах. В приведенных выше примерах возвращаются только имена столбцов, их типы и порядковые номера. Кроме того, можно получить полезную информацию о длине столбца, возможности сохранения в нем значения NULL и его значениях по умолчанию. Как получить список индексированных столбцов таблицы Задача Требуется получить список индексов, их столбцов и позиций столбцов (если такая информация доступна) в индексе для данной таблицы. Решение Во всех приведенных ниже специальных решениях для разных СУБД предполагается, что составляется список индексов таблицы EMP схемы SMEAGOL. Делаем запрос к SYSCAT.INDEXES: 1 select a.tabname, b.indname, b.colname, b.colseq 2 from syscat.indexes a, 3 syscat.indexcoluse b 3 where a.tabname = EMP 4 and a.tabschema = SMEAGOL 5 and a.indschema = b.indschema 6 and a.indname = b.indname Oracle Делаем запрос к SYS.ALL IND COLUMNS: select table name, index name, column name, column position from sys.all ind columns where table name = EMP and table owner = SMEAGOL PostgreSQL Делаем запрос к PG CATALOG.PG INDEXES и INFORMATION SCHEMA.COLUMNS: 1 select a.tablename,a.indexname,b.column name 2 from pg catalog.pg indexes a, 3 information schema.columns b 4 where a.schemaname = SMEAGOL 5 and a.tablename = b.table name MySQL Используем команду SHOW INDEX: show index from emp SQL Server Делаем запрос к SYS.TABLES, SYS.INDEXES, SYS.INDEX COLUMNS и SYS.COLUMNS: 1 select a.name table name, 2 b.name index name, 3 d.name column name, 4 c.index column id 5 from sys.tables a, 6 sys.indexes b, 7 sys.index columns c,
Обсуждение Делая запросы к таблице, важно знать, какие из ее столбцов проиндексированы, а какие - нет. Индексы могут обеспечить хорошую производительность запросов к столбцам, которые часто используются в фильтрах и к которым осуществляется много запросов. Индексы также полезны при объединении таблиц. Зная, какие столбцы индексированы, вы предупреждаете возможные проблемы с производительностью. Кроме того, может потребоваться информация о самих индексах: их глубине вложенности, количестве уникальных ключей в них, разветвленно-сти и т. д. Подобную информацию можно получить из представлений/ таблиц, запросы к которым показаны в решениях данного рецепта. Как получить список ограничений, наложенных на таблицу Задача Требуется создать список ограничений, определенных для таблицы в некоторой схеме, и столбцов, на которые эти ограничения наложены. Например, стоит задача получить ограничения и столбцы, на которые они наложены, для таблицы EMP. Решение DB2 Делаем запрос к SYSCAT.TABCONST и SYSCAT.COLUMNS: 1 select a.tabname, a.constname, b.colname, a.type 2 from syscat.tabconst a, 3 syscat.columns b 4 where a.tabname = EMP 5 and a.tabschema = SMEAGOL 6 and a.tabname = b.tabname 7 and a.tabschema = b.tabschema Oracle Делаем запрос к SYS.ALL CONSTRAINTS и SYS.ALL CONS CO-LUMNS: 1 select a.table name, 2 a.constraint name,
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |