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


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

Применимо к: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  
    

См. также:

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