Udostępnij za pomocą


Reguły wprowadzania wartości wyszukiwania (Visual Database Tools)

Dotyczy:programu SQL Server

W tym artykule omówiono konwencje, których należy użyć podczas wprowadzania następujących typów wartości literałów dla warunku wyszukiwania:

  • Wartości tekstowe
  • Wartości liczbowe
  • Daty
  • Wartości logiczne

Notatka

Informacje zawarte w tym artykule pochodzą z reguł dla standardowego programu SQL-92. Jednak każda baza danych może zaimplementować bazę danych SQL na własny sposób. W związku z tym wytyczne podane w tym miejscu mogą nie mieć zastosowania w każdym przypadku. Jeśli masz pytania dotyczące wprowadzania wartości wyszukiwania dla określonej bazy danych, zapoznaj się z dokumentacją używanej bazy danych.

Wyszukiwanie wartości tekstowych

Podczas wprowadzania wartości tekstowych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:

  • cudzysłów ująć wartości tekstowe w pojedyncze cudzysłowy, jak w tym przykładzie dla nazwiska:

    'Smith'
    

    Jeśli wprowadzasz warunek wyszukiwania w okienku Kryteria (Narzędzia bazy danych wizualizacji), możesz po prostu wpisać wartość tekstową, a projektant zapytań i widoków automatycznie umieszcza wokół niego pojedyncze cudzysłowy.

    Notatka

    W niektórych bazach danych terminy w pojedynczych cudzysłowach są interpretowane jako wartości literału, natomiast terminy w podwójnym cudzysłowie są interpretowane jako obiekty bazy danych, takie jak odwołania do kolumn lub tabeli. W związku z tym, mimo że projektant zapytań i widoków może zaakceptować terminy w podwójnym cudzysłowie, może interpretować je inaczej niż oczekiwano.

  • Osadzanie apostrofów Jeśli wyszukiwane dane zawierają pojedynczy cudzysłów (apostrof), możesz wprowadzić dwa pojedyncze cudzysłów, aby wskazać, że pojedynczy cudzysłów oznacza pojedynczy cudzysłów jako wartość literału, a nie ogranicznik. Na przykład następujący warunek wyszukuje wartość "Swann's Way:"

    ='Swann''s Way'
    
  • Limity długości Nie przekraczaj maksymalnej długości instrukcji SQL dla bazy danych podczas wprowadzania długich ciągów.

  • Ważność wielkości liter Postępuj zgodnie z regułami poufności przypadków dla używanej bazy danych. Używana baza danych określa, czy w wyszukiwaniu tekstowym jest rozróżniana wielkość liter. Na przykład niektóre bazy danych interpretują operator "=", aby oznaczać dokładne dopasowanie z uwzględnieniem wielkości liter, ale inne zezwalają na dopasowania dowolnej kombinacji wielkich i małych liter.

    Jeśli nie masz pewności, czy baza danych używa wyszukiwania z uwzględnieniem wielkości liter, możesz użyć funkcji UPPER lub LOWER w warunku wyszukiwania, aby przekonwertować przypadek danych wyszukiwania, jak pokazano w poniższym przykładzie:

    WHERE UPPER(lname) = 'SMITH'
    

Wyszukiwanie wartości liczbowych

Podczas wprowadzania wartości liczbowych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:

  • Cudzysłowu

    Nie ujęć liczb w cudzysłów.

  • Znaki nieliczbowe

    Nie dołączaj znaków innych niż numeryczne z wyjątkiem separatora dziesiętnego (zgodnie z definicją w oknie dialogowym Ustawienia regionalne w Panelu sterowania systemu Windows) i znaku ujemnego (-). Nie dołączaj symboli grupowania cyfr (takich jak przecinek między tysiącami) ani symboli waluty.

  • Znaczniki dziesiętne

    Jeśli wprowadzasz liczby całkowite, możesz dołączyć znacznik dziesiętny, niezależnie od tego, czy wyszukiwana wartość jest liczbą całkowitą, czy liczbą rzeczywistą.

  • Notacja naukowa

    Możesz wprowadzić bardzo duże lub bardzo małe liczby przy użyciu notacji naukowej, jak w tym przykładzie:

    > 1.23456e-9
    

Wyszukiwanie w datach

Format używany do wprowadzania dat zależy od używanej bazy danych i w jakim okienku projektanta zapytań i widoków wprowadzasz datę.

Notatka

Jeśli nie wiesz, którego formatu używa źródło danych, wpisz datę w kolumnie filtru okienka Kryteria w dowolnym formacie znanym. Projektant konwertuje większość takich wpisów na odpowiedni format.

Projektant zapytań i widoków może pracować z następującymi formatami dat:

  • Ustawienia regionalne specyficzne dla ustawień regionalnych

    Format określony dla dat w oknie dialogowym Właściwości ustawień regionalnych systemu Windows .

  • Specyficzne dla bazy danych

    Dowolny format zrozumiały dla bazy danych.

  • Standardowa data ANSI

    Format, który używa nawiasów klamrowych, znacznika "d" do wyznaczenia daty i ciągu daty, jak w poniższym przykładzie:

    { d '1990-12-31' }
    
  • Standardowa data/godzina usługi ANSI

    Podobnie jak w przypadku daty standardowej ANSI, ale używa "ts" zamiast "d" i dodaje godziny, minuty i sekundy do daty (przy użyciu zegara 24-godzinnego), jak w tym przykładzie dla 31 grudnia 1990 r.:

    { ts '1990-12-31 00:00:00' }
    

    Ogólnie rzecz biorąc, standardowy format daty ANSI jest używany z bazami danych reprezentującymi daty przy użyciu rzeczywistego typu danych daty. Natomiast format daty/godziny jest używany z bazami danych obsługującymi typ danych typu data/godzina.

Poniższa tabela zawiera podsumowanie formatu daty, którego można użyć w różnych okienkach Projektanta zapytań i widoków.

Panel Format daty
Kryteria Standard ANSI zależny od ustawień regionalnych i bazy danych

Daty wprowadzone w okienku Kryteria (Visual Database Tools) są konwertowane na format zgodny z bazą danych w okienku SQL.
SQL Standard ANSI specyficzny dla bazy danych
Wyniki Specyficzne dla ustawień regionalnych

Wyszukiwanie wartości logicznych

Format danych logicznych różni się od bazy danych do bazy danych. Bardzo często wartość False jest przechowywana jako zero (0). Wartość True jest najczęściej przechowywana jako 1 i od czasu do czasu jako -1. Podczas wprowadzania wartości logicznych w warunkach wyszukiwania mają zastosowanie następujące wskazówki:

  • Aby wyszukać wartość False, użyj zera, jak w poniższym przykładzie:

    SELECT *
    FROM authors
    WHERE contract = 0;
    
  • Jeśli nie masz pewności, jakiego formatu należy użyć podczas wyszukiwania wartości True, spróbuj użyć wartości 1, jak w poniższym przykładzie:

    SELECT *
    FROM authors
    WHERE contract = 1;
    
  • Alternatywnie można rozszerzyć zakres wyszukiwania, wyszukując dowolną wartość inną niż zero, jak w poniższym przykładzie:

    SELECT *
    FROM authors
    WHERE contract <> 0;