|
|
| (не показана 1 промежуточная версия 1 участника) |
| Строка 1: |
Строка 1: |
| − | Ниже приводится список полезных запросов. | + | Ниже приводится список полезных запросов к таблицам Гедымина. По этой теме, см. также [[Полезные запросы к системным таблицам Firebird]]. |
| | | | |
| | == Документы == | | == Документы == |
| Строка 67: |
Строка 67: |
| | UPPER(c.name) LIKE 'ИП%' | | UPPER(c.name) LIKE 'ИП%' |
| | </pre> | | </pre> |
| − |
| |
| − | == Запросы к системным таблицам ==
| |
| − |
| |
| − | === Табліцы БД ===
| |
| − |
| |
| − | RDB$RELATIONS (табліцы)
| |
| − |
| |
| − | Выбраць назвы ўсіх табліц БД (яны захоўваюцца ў табліцы RDB$RELATIONS)
| |
| − |
| |
| − | select *
| |
| − | from rdb$relations
| |
| − |
| |
| − | Падлічыць колькасьць табліц у БД
| |
| − |
| |
| − | select count(*)
| |
| − | from rdb$relations
| |
| − |
| |
| − | Выбраць толькі табліцы структуры БД (з прэфіксам RDB)
| |
| − |
| |
| − | select *
| |
| − | from rdb$relations
| |
| − | where rdb$relation_name like '%RDB%'
| |
| − |
| |
| − | Падлічыць колькасьць табліц структуры БД
| |
| − |
| |
| − | select count(*)
| |
| − | from rdb$relations
| |
| − | where rdb$relation_name like '%RDB%'
| |
| − |
| |
| − | Выбраць толькі табліцы БД, зьвязаныя са складам (з прэфіксам INV)
| |
| − |
| |
| − | select *
| |
| − | from rdb$relations
| |
| − | where rdb$relation_name like '%INV%'
| |
| − |
| |
| − | === Палі табліц ===
| |
| − |
| |
| − | RDB$RELATION_FIELDS (палі)
| |
| − |
| |
| − | Выбраць усе назвы палёў усіх табліц БД (яны захоўваюцца ў табліцы RDB$RELATION_FIELDS)
| |
| − |
| |
| − | select * from rdb$relation_fields
| |
| − |
| |
| − | Падлічыць колькі палёў уваходзіць у кожную табліцу (групаваць па полю імені табліцы)
| |
| − |
| |
| − | select rdb$relation_name, count(rdb$field_name) as kolk_palej
| |
| − | from rdb$relation_fields
| |
| − | group by rdb$relation_name
| |
| − |
| |
| − | Выбраць назвы палёў, якія ўваходзяць у табліцу GD_CONTACT
| |
| − |
| |
| − | select f.*
| |
| − | from rdb$relation_fields f
| |
| − | join rdb$relations r on r.rdb$relation_name = f.rdb$relation_name
| |
| − | where
| |
| − | r.rdb$relation_name = 'GD_CONTACT'
| |
| − |
| |
| − | альбо
| |
| − |
| |
| − | select *
| |
| − | from rdb$relation_fields
| |
| − | where rdb$relation_name = 'GD_CONTACT'
| |
| − |
| |
| − | Выбраць назвы табліц, якія маюць дрэвавідную структуру
| |
| − |
| |
| − | select r.rdb$relation_name
| |
| − | from rdb$relation_fields r
| |
| − | where r.rdb$field_name = 'LB'
| |
| − |
| |
| − | ==== Список полей с указанием таблиц, на которые ссылаются поля ====
| |
| − |
| |
| − | SELECT
| |
| − | rf.rdb$field_name AS Field_Name,
| |
| − | rc2.rdb$relation_name AS References_Table,
| |
| − | s2.rdb$field_name AS References_Field,
| |
| − | rf.rdb$field_position
| |
| − | FROM
| |
| − | rdb$relation_fields rf
| |
| − | JOIN rdb$relation_constraints rc ON
| |
| − | rc.rdb$relation_name = rf.rdb$relation_name
| |
| − | AND rc.rdb$constraint_type = 'FOREIGN KEY'
| |
| − | JOIN rdb$index_segments s ON
| |
| − | s.rdb$index_name = rc.rdb$index_name
| |
| − | AND s.rdb$field_name = rf.rdb$field_name
| |
| − | JOIN rdb$ref_constraints rfc ON
| |
| − | rfc.rdb$constraint_name = rc.rdb$constraint_name
| |
| − | JOIN rdb$relation_constraints rc2 ON
| |
| − | rc2.rdb$constraint_name = rfc.rdb$const_name_uq
| |
| − | JOIN rdb$index_segments s2 ON
| |
| − | s2.rdb$index_name = rc2.rdb$index_name
| |
| − | WHERE
| |
| − | rf.rdb$relation_name = :RN
| |
| − |
| |
| − | UNION
| |
| − |
| |
| − | SELECT
| |
| − | rf.rdb$field_name AS Field_Name,
| |
| − | CAST(' ' AS CHAR(31)) AS References_Table,
| |
| − | CAST(' ' AS CHAR(31)) AS References_Field,
| |
| − | rf.rdb$field_position
| |
| − | FROM
| |
| − | rdb$relation_fields rf
| |
| − | WHERE
| |
| − | rf.rdb$relation_name = :RN
| |
| − | AND NOT rf.rdb$field_name IN (
| |
| − | SELECT s.rdb$field_name
| |
| − | FROM
| |
| − | rdb$index_segments s
| |
| − | JOIN rdb$relation_constraints rc ON
| |
| − | rc.rdb$index_name = s.rdb$index_name
| |
| − | AND rc.rdb$constraint_type = 'FOREIGN KEY'
| |
| − | AND rc.rdb$relation_name = :RN
| |
| − | )
| |
| − |
| |
| − | ORDER BY
| |
| − | 4
| |
| − |
| |
| − | === Дамены ===
| |
| − |
| |
| − | RDB$FIELDS (дамены)
| |
| − |
| |
| − | Выбраць усе дамены БД (яны захоўваюцца ў табліцы RDB$FIELDS)
| |
| − |
| |
| − | select *
| |
| − | from rdb$fields
| |
| − |
| |
| − | Выбраць імёны палёў, якія маюць тып (дамен) ня NULL
| |
| − |
| |
| − | select f.rdb$field_name, f.rdb$relation_name
| |
| − | from rdb$relation_fields f
| |
| − | join rdb$fields d
| |
| − | on d.rdb$field_name = f.rdb$field_source
| |
| − | where d.rdb$null_flag = 1
| |
| − |
| |
| − | === Абмежавальнікі ===
| |
| − |
| |
| − | RDB$RELATION_CONSTRAINTS (абмежавальнікі: першасныя і вонкавыя ключы, NOT NULL, інш.)
| |
| − |
| |
| − | Выбраць усе абмежавальнікі ўсіх табліц БД
| |
| − |
| |
| − | select *
| |
| − | from rdb$relation_constraints
| |
| − |
| |
| − | Сьпіс табліц і палёў па якім існуюць два ці болей аднолькавыя зьнешнія спасылкі.
| |
| − |
| |
| − | <syntaxhighlight lang="SQL">
| |
| − | SELECT
| |
| − | rf.rdb$relation_name,
| |
| − | rf.rdb$field_name,
| |
| − | LIST(TRIM(rc.rdb$constraint_name)),
| |
| − | COUNT(*)
| |
| − | FROM
| |
| − | rdb$indices i
| |
| − | JOIN rdb$index_segments iseg ON iseg.rdb$index_name = i.rdb$index_name
| |
| − | JOIN rdb$relation_constraints rc ON rc.rdb$index_name = i.rdb$index_name
| |
| − | AND rc.rdb$constraint_type = 'FOREIGN KEY'
| |
| − | JOIN rdb$relation_fields rf ON rf.rdb$relation_name = i.rdb$relation_name
| |
| − | AND iseg.rdb$field_name = rf.rdb$field_name
| |
| − | GROUP BY
| |
| − | 1, 2
| |
| − | HAVING
| |
| − | COUNT(*) > 1
| |
| − | </syntaxhighlight>
| |
| − |
| |
| − | === Індэксы ===
| |
| − |
| |
| − | RDB$INDICES (індэксы)
| |
| − |
| |
| − | Выбраць усе індэксы ўсіх табліц БД
| |
| − |
| |
| − | select *
| |
| − | from rdb$indices
| |
| − |
| |
| − | Выбраць усе табліцы, якія спасылаюцца на табліцу GD_DOCUMENT
| |
| − |
| |
| − | select rdb$relation_name
| |
| − | from rdb$indices
| |
| − | where rdb$foreign_key = 'GD_PK_DOCUMENT'
| |
| − |
| |
| − | Выбраць усе табліцы, якія спасылаюцца на табліцу GD_DOCUMENT, выключаючы дубліруючыя запісы
| |
| − |
| |
| − | select distinct rdb$relation_name
| |
| − | from rdb$indices
| |
| − | where rdb$foreign_key = 'GD_PK_DOCUMENT'
| |
| − |
| |
| − | RDB$INDEX_SEGMENTS (складнікі індэксаў, зь якіх палёў складаюцца індэксы)
| |
| − |
| |
| − | Выбраць складнікі (палі) ўсіх індэксаў
| |
| − |
| |
| − | select *
| |
| − | from rdb$index_segments
| |
| − |
| |
| − |
| |
| − | select i.rdb$relation_name, s.rdb$field_name
| |
| − | from rdb$indices i
| |
| − | join rdb$index_segments s
| |
| − | on i.rdb$index_name = s.rdb$index_name
| |
| − |
| |
| − | Палі табліц, якія зьвязаныя з табліцай GD_DOCUMENT
| |
| − |
| |
| − | select i.rdb$relation_name, s.rdb$field_name
| |
| − | from rdb$indices i
| |
| − | join rdb$index_segments s
| |
| − | on i.rdb$index_name = s.rdb$index_name
| |
| − | and i.rdb$foreign_key = 'GD_PK_DOCUMENT'
| |
| − |
| |
| − | === Залежнасьці ===
| |
| − |
| |
| − | RDB$DEPENDENCIES (залежнасьці паміж табліцамі)
| |
| − |
| |
| − | Выбраць усе залежнасьці паміж табліцамі БД
| |
| − |
| |
| − | select *
| |
| − | from rdb$dependencies
| |
| − |
| |
| − | Выбраць усе дамены Гедыміна
| |
| − |
| |
| − | select *
| |
| − | from AT_FIELDS
| |
| − |
| |
| | | | |
| | [[Category:База данных]] | | [[Category:База данных]] |
| | + | [[Category:Школа системного администратора]] |
Запрос извлекает контакты, наименования которых начинаются с одинаковой последовательности символов. Длину последовательности можно регулировать.