Правила ввода значений для поиска (визуальные инструменты для баз данных)
В этом подразделе содержатся соглашения, которых следует придерживаться при вводе следующих типов значений литералов в условиях поиска:
текстовых значений;
числовых значений;
дат;
логических значений.
Примечание |
---|
Сведения, содержащиеся в этом подразделе, базируются на правилах, определенных стандартом SQL-92. Но каждая база данных может по-своему реализовывать SQL. Поэтому правила, описанные здесь, могут быть применимы не во всех случаях. При возникновении вопросов по вводу значений поиска для конкретной базы данных обращайтесь к документации по используемой базе данных. |
Поиск по текстовым значениям
Следующие правила применяются при вводе в условие поиска текстовых значений:
Кавычки Заключайте текстовые значения в одинарные кавычки (например при указании фамилии):
'Smith'
При вводе условия поиска в области критериев можно просто ввести текстовое значение, и конструктор запросов и представлений автоматически заключит его в одинарные кавычки.
Примечание В некоторых базах данных элементы в одинарных кавычках интерпретируются как значения литералов, тогда как элементы, заключенные в двойные кавычки, — как объекты базы данных (например имена столбцов и таблиц). Таким образом, даже если конструктор запросов и представлений воспримет элементы, заключенные в двойные кавычки, они могут быть интерпретированы не так, как ожидается.
Использование апострофов Если искомые данные содержат одинарную кавычку (апостроф), введите вместо него две одинарных кавычки, чтобы указать, что апостроф входит в значение литерала, а не завершает его. Например, при поиске значения «Swann's Way» введите:
='Swann''s Way'
Максимальный размер Не превышайте при вводе длинных строк максимальную длину инструкции SQL для базы данных.
Учет регистра символов Соблюдайте регистр символов, если используемая база данных его учитывает. Чувствительность поиска текста к регистру символов определяется базой данных. Например, некоторые базы данных трактуют оператор «=» как точное совпадение с учетом регистра символов, а другие допускают любые комбинации прописных и строчных букв.
Если нет уверенности в том, что поиск в базе данных учитывает регистр символов, пользуйтесь для преобразования регистра в условии поиска функциями UPPER и LOWER, как показано в следующем примере:
WHERE UPPER(lname) = 'SMITH'
Поиск по числовым значениям
При вводе в условие поиска числовых значений должны применяться следующие правила:
Кавычки Не заключайте числа в кавычки.
Нецифровые символы Не вводите нецифровые символы, за исключением десятичного разделителя (который определен в диалоговом окне Язык и региональные стандарты панели управления Windows) и знака минус (-). Не вводите разделители десятичных групп (пробел между тысячами) и символы обозначения валют.
Десятичный признак При вводе целых чисел можно указать признак десятичного числа, указывающий, производится ли поиск целого или действительного числа.
Экспоненциальное представление Очень большие или очень малые числовые значения могут быть введены в экспоненциальном представлении, как показано в следующем примере:
> 1.23456e-9
Поиск по датам
Формат ввода даты зависит от базы данных и от того, в какой области конструктора запросов и представлений вводятся данные.
Примечание |
---|
Если формат даты, допустимый для источника данных, неизвестен, введите дату в столбце фильтра области критериев в каком-нибудь известном формате. Конструктор преобразовывает большинство таких значений в нужный формат. |
Конструктор запросов и представлений может работать со следующими форматами даты:
Определяется языковым стандартом Формат даты, указанный в диалоговом окне Свойства языка и стандартов Windows.
Определяется базой данных Любой формат, воспринимаемый базой данных.
По стандарту ANSI Формат, в котором используются фигурные скобки, маркер «d» для обозначения даты и дата в символьном виде, как в следующем примере:
{ d '1990-12-31' }
Дата и время по стандарту ANSI Аналогично дате по стандарту ANSI, но с указанием маркера «ts» вместо «d» и с добавлением к дате часов, минут и секунд (в 24-часовом формате), как в следующем примере (для 31 декабря 1990 года):
{ ts '1990-12-31 00:00:00' }
В общем случае форматы даты по стандарту ANSI применяются в базах данных, в которых для представления даты используется подлинный формат даты, а формат datetime — в базах данных, поддерживающих тип данных datetime.
В следующей таблице приведены все форматы даты, которые могут быть указаны в различных областях конструктора запросов и представлений.
Область |
Формат даты |
---|---|
Критерии |
Определяется языковым стандартом, базой данных, стандартом ANSI Дата, введенная в области критериев, в области «SQL» преобразуется в формат, совместимый с базой данных. |
SQL |
Определяется базой данных, стандартом ANSI |
Результаты |
Определяется языковым стандартом |
Поиск по логическим значениям
Форматы логических значений различаются для разных баз данных. Чаще всего значение False хранится в виде нуля (0). Значение True чаще всего хранится в виде 1 или иногда -1. При вводе логических значений в условиях поиска применяются следующие правила:
Для поиска значения False указывайте нуль, как в следующем примере:
SELECT * FROM authorsWHERE contract = 0
Если неизвестно, какое значение указывать для поиска True, попробуйте указать 1, как в следующем примере:
SELECT * FROM authorsWHERE contract = 1
В качестве альтернативного решения можно ограничить область поиска указанием ненулевого значения, как в следующем примере:
SELECT * FROM authorsWHERE contract <> 0