Правила ввода значений для поиска (визуальные инструменты для баз данных)
Область применения: SQL Server
В этом подразделе содержатся соглашения, которых следует придерживаться при вводе следующих типов литеральных значений в условиях поиска:
текстовых значений;
числовых значений;
Даты
логических значений.
Примечание.
Сведения в этом подразделе базируются на правилах, определенных стандартом 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 authors WHERE contract = 0
Если неизвестно, какое значение указывать для поиска True, попробуйте указать 1, как в следующем примере:
SELECT * FROM authors WHERE contract = 1
В качестве альтернативного решения можно ограничить область поиска указанием ненулевого значения, как в следующем примере:
SELECT * FROM authors WHERE contract <> 0
См. также
Определение критериев поиска (визуальные инструменты для баз данных)