Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
SELECT clips.NAME, clips.DATE_OUT, clips.AUTHOR, clips.TOPIC, clips.ANNOT
FROM clips
WHERE (clips.NAME like ("*" + [Forms]![ПОИСК]!clips_NAME + "*") Or [Forms]![ПОИСК]!clips_NAME = "") And
(clips.topic like ("*" + [Forms]![ПОИСК]!topics_NAME + "*") Or [Forms]![ПОИСК]!topics_NAME = "" Or [Forms]![ПОИСК]!topics_NAME Is Null) And
(clips.Author like ("*" + [Forms]![ПОИСК]!Authors_NAME + "*") Or [Forms]![ПОИСК]!Authors_NAME = "" Or [Forms]![ПОИСК]!Authors_NAME Is Null) And
(clips.ANNOT like ("*" + [Forms]![ПОИСК]!ANNOT + "*") Or [Forms]![ПОИСК]!ANNOT = ""Or [Forms]![ПОИСК]!ANNOT Is Null) And
((clips.Date_out <= [Forms]![ПОИСК]!Date_max And clips.Date_out >= [Forms]![ПОИСК]!Date_min) Or clips.Date_out Is Null);
База данных на Access.
Переделка другой БД, в которой зачем-то все авторы хранились в отдельной таблице, а в основной таблице - айдишники. Можно ведь просто прописать авторов в основную таблицу и не париться.
Разумеется. Существует множество способов хранения данных, отличных от реляционных (графовые базы, ки-валуе базы, OLAP кубы, итд) и у них совсем другие языки.
И API к реляционным субд тоже не обязано состоять из DDL/DML SQL.
Так вот "SQL" — это язык, а реляционная база — это база, состоящая из таблиц, которые можно джойнить. Единственное, что их объединяет — оператор "JOIN".
И кроме того один из отцов реляционных СУБД был не в восторге от языка SQL.
>>можно обращаться к нереляционным базам
У MS было много ADODB драйверов к различным подсистемам, не имеющим отношения к реляционным СУБД, и как всякий ADO они предоставляли SQL интерфейс (а был так же и обычный API).
Был, например, WQL: язык для запросов к WMI.
SELECT * FROM Win32_Service
возвращал все сервисы.
Был ADODB драйвер для Active Directory (это дерево, по сути LDAP)
SELECT title, telephoneNumber From 'LDAP://DC=FOO, DC=COM' WHERE
objectClass='user'
>>И наоборот, к реляционным базам можно обращаться не через SQL.
Да. Мы же тут недавно говорили про clipper, разве там был SQL?
И наконец есть языки похоже на SQL, но им не являющиеся.
Например MDX для запросов к OLAP кубам
SELECT
{ [Measures].[Visitors] } ON COLUMNS,
{ Languages].[PHP], [Languages].[SQL] } ON ROWS
FROM Items
WHERE ( [Comments].[Anon])
И API к реляционным субд тоже не обязано состоять из DDL/DML SQL.
Так вот "SQL" — это язык, а реляционная база — это база, состоящая из таблиц, которые можно джойнить. Единственное, что их объединяет — оператор "JOIN".
Гипотетически через псевдо-SQL можно обращаться к нереляционным базам. В Постгресе ячейка может хранить массивы. В MariaDB таблица может хранить графы:
https://mariadb.com/kb/en/library/oqgraph-storage-engine/
Есть даже ки-валуе базы с псевдо-SQL.
И наоборот, к реляционным базам можно обращаться не через SQL.
>>можно обращаться к нереляционным базам
У MS было много ADODB драйверов к различным подсистемам, не имеющим отношения к реляционным СУБД, и как всякий ADO они предоставляли SQL интерфейс (а был так же и обычный API).
Был, например, WQL: язык для запросов к WMI.
возвращал все сервисы.
Был ADODB драйвер для Active Directory (это дерево, по сути LDAP)
>>И наоборот, к реляционным базам можно обращаться не через SQL.
Да. Мы же тут недавно говорили про clipper, разве там был SQL?
И наконец есть языки похоже на SQL, но им не являющиеся.
Например MDX для запросов к OLAP кубам
драйвера были конечно к OLEDB, ADO работал поверх.