Поделиться через


Правила ввода значений для поиска (визуальные инструменты для баз данных)

В этом подразделе содержатся соглашения, которых следует придерживаться при вводе следующих типов значений литералов в условиях поиска:

  • текстовых значений;
  • числовых значений;
  • дат;
  • логических значений.
ms181030.note(ru-ru,SQL.90).gifПримечание.
Сведения, содержащиеся в этом подразделе, базируются на правилах, определенных стандартом SQL-92. Но каждая база данных может по-своему реализовывать SQL. Поэтому правила, описанные здесь, могут быть применимы не во всех случаях. При возникновении вопросов по вводу значений поиска для конкретной базы данных обращайтесь к документации по используемой базе данных.

Поиск по текстовым значениям

Следующие правила применяются при вводе в условие поиска текстовых значений:

  • Кавычки Заключайте текстовые значения в одинарные кавычки, например (при указании фамилии):

    'Smith'
    

    При вводе условия поиска в панели критериев можно просто ввести текстовое значение, и конструктор запросов и представлений автоматически заключит его в одинарные кавычки.

    ms181030.note(ru-ru,SQL.90).gifПримечание.
    В некоторых базах данных элементы в одинарных кавычках интерпретируются как значения литералов, тогда как элементы, заключенные в двойные кавычки, — как объекты базы данных (например, имена столбцов и таблиц). Таким образом, даже если конструктор запросов и представлений воспримет элементы, заключенные в двойные кавычки, они могут быть интерпретированы не так, как ожидается.
  • Использование апострофов Если искомые данные содержат одинарную кавычку (апостроф), введите вместо него две одинарных кавычки, чтобы указать, что апостроф входит в значение литерала, а не завершает его. Например, при поиске значения «Swann's Way» введите:

    ='Swann''s Way'
    
  • Максимальный размер Не превышайте при вводе длинных строк максимальную длину инструкции SQL для базы данных.

  • Учет регистра символов Соблюдайте регистр символов, если используемая база данных его учитывает. Чувствительность поиска текста к регистру символов определяется базой данных. Например, некоторые базы данных трактуют оператор «=» как точное совпадение с учетом регистра символов, а другие допускают любые комбинации прописных и строчных букв.
    Если нет уверенности в том, что поиск в базе данных учитывает регистр символов, пользуйтесь для преобразования регистра в условии поиска функциями UPPER и LOWER, как показано в следующем примере:

    WHERE UPPER(lname) = 'SMITH'
    

Поиск по числовым значениям

При вводе в условие поиска числовых значений должны применяться следующие правила:

  • Кавычки Не заключайте числа в кавычки.

  • Нецифровые символы Не вводите нецифровые символы, за исключением разделителя целой и дробной части (который определен в диалоговом окне Язык и стандарты панели управления Windows) и знака минус (-). Не вводите разделители десятичных групп (пробел между тысячами) и символы обозначения валют.

  • Десятичный признак При вводе целых чисел можно указать признак десятичного числа, указывающий на то, производится ли поиск целого или действительного числа.

  • Экспоненциальное представление Очень большие или очень малые числовые значения могут быть введены в экспоненциальном представлении, как показано в следующем примере:

    > 1.23456e-9
    

Поиск по датам

Формат ввода даты зависит от базы данных и от того, в какой панели конструктора запросов и представлений вводятся данные.

ms181030.note(ru-ru,SQL.90).gifПримечание.
Если формат даты, допустимый для источника данных, неизвестен, введите дату в столбце фильтра панели критериев в каком-нибудь известном формате. Конструктор преобразовывает большинство таких значений в нужный формат.

Конструктор запросов и представлений может работать со следующими форматами даты:

  • Определяется языковым стандартом Формат даты, указанный в диалоговом окне Свойства языка и стандартов 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
    

См. также

Другие ресурсы

Определение критериев поиска (визуальные инструменты для баз данных)

Справка и поддержка

Получение помощи по SQL Server 2005