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


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

применимо к: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 используется с базами данных, представляющими даты с использованием истинного типа данных даты. В отличие от этого, формат даты и времени используется с базами данных, которые поддерживают соответствующий тип данных.

В следующей таблице приведен формат даты, который можно использовать в разных панелях конструктора запросов и представлений.

панель Формат даты
Критерии Локально-специализированный, специализированный для базы данных стандарт 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;