Udostępnij przez


Szybka instrukcja języka ENTITY SQL

Ten temat zawiera krótkie informacje na temat zapytań Entity SQL. Zapytania w tym temacie są oparte na modelu AdventureWorks Sales.

Wartości stałe

Sznurek

Istnieją literały ciągów znaków Unicode i innych niż Unicode. Ciągi Unicode są poprzedzane N. Na przykład N'hello'.

Poniżej przedstawiono przykład literału ciągu innego niż Unicode:

'hello'
--same as
"hello"

Wyjście:

Wartość
Witam

Data i Czas

W literałach DateTime części daty i godziny są obowiązkowe. Brak wartości domyślnych.

Przykład:

DATETIME '2006-12-25 01:01:00.000'
--same as
DATETIME '2006-12-25 01:01'

Wyjście:

Wartość
25.12.2006 01:01:00

Liczba całkowita

Literały całkowite mogą być typu Int32 (123), UInt32 (123U), Int64 (123L) i UInt64 (123UL).

Przykład:

--a collection of integers
{1, 2, 3}

Wyjście:

Wartość
1
2
3

Pozostałe

Inne literały obsługiwane przez jednostkę SQL to Guid, Binary, Float/Double, Decimal i null. Literały null w SQL dla encji są uznawane za zgodne z każdym innym typem w modelu konceptualnym.

Konstruktory typów

RZĄD

Wiersz tworzy anonimową, strukturalnie typizowaną wartość (rekord) w następujący sposób: ROW(1 AS myNumber, 'Name' AS myName).

Przykład:

SELECT VALUE row (product.ProductID AS ProductID, product.Name
    AS ProductName) FROM AdventureWorksEntities.Product AS product

Wyjście:

IdentyfikatorProduktu Nazwa
1 Regulowany wyścig
879 stoisko rowerowe All-Purpose
712 Czapka z logo AWC
...\ ...\

MULTISET

MULTISET tworzy kolekcje, takie jak:

MULTISET(1,2,2,3) --same as - {1,2,2,3}.

Przykład:

SELECT VALUE product FROM AdventureWorksEntities.Product AS product WHERE product.ListPrice IN MultiSet (125, 300)

Wyjście:

IdentyfikatorProduktu Nazwa Numer produktu
842 Touring-Panniers, duży PA-T100

Przedmiot

Konstruktor nazwanego typu tworzy (nazwane) obiekty zdefiniowane przez użytkownika, takie jak person("abc", 12).

Przykład:

SELECT VALUE AdventureWorksModel.SalesOrderDetail (o.SalesOrderDetailID, o.CarrierTrackingNumber, o.OrderQty,
o.ProductID, o.SpecialOfferID, o.UnitPrice, o.UnitPriceDiscount,
o.rowguid, o.ModifiedDate) FROM AdventureWorksEntities.SalesOrderDetail
AS o

Wyjście:

ID_Szczegółów_Zamówienia_Sprzedaży Numer śledzenia przesyłki IlośćZamówienia IdentyfikatorProduktu ...\
1 4911-403C-98 1 776 ...\
2 4911-403C-98 3 777 ...\
...\ ...\ ...\ ...\ ...\

Źródła

REF

REF tworzy odwołanie do instancji typu jednostki. Na przykład następujące zapytanie zwraca odwołania do każdej jednostki Order w zestawie jednostek Orders:

SELECT REF(o) AS OrderID FROM Orders AS o

Wyjście:

Wartość
1
2
3
...\

W poniższym przykładzie użyto operatora wyodrębniania właściwości (.) w celu uzyskania dostępu do właściwości jednostki. Gdy jest używany operator wyodrębniania właściwości, odwołanie jest automatycznie wyłuszczane.

Przykład:

SELECT VALUE REF(p).Name FROM
    AdventureWorksEntities.Product AS p

Wyjście:

Wartość
Regulowany wyścig
stoisko rowerowe All-Purpose
Czapka z logo AWC
...\

DEREF

DEREF dereferencjonuje wartość referencyjną i zwraca wynik tego dereferencjonowania. Na przykład następujące zapytanie tworzy encje zamówienia dla każdego zamówienia w zestawie encji zamówień: SELECT DEREF(o2.r) FROM (SELECT REF(o) AS r FROM LOB.Orders AS o) AS o2..

Przykład:

SELECT VALUE DEREF(REF(p)).Name FROM
    AdventureWorksEntities.Product AS p

Wyjście:

Wartość
Regulowany wyścig
stoisko rowerowe All-Purpose
Czapka z logo AWC
...\

UTWÓRZREFERENCJĘ I KLUCZ

CREATEREF tworzy odwołanie z użyciem klucza. KLUCZ wyodrębnia kluczową część wyrażenia z odwołaniem do typu.

Przykład:

SELECT VALUE Key(CreateRef(AdventureWorksEntities.Product, row(p.ProductID)))
    FROM AdventureWorksEntities.Product AS p

Wyjście:

IdentyfikatorProduktu
980
365
771
...\

Funkcje

Kanoniczny

Przestrzeń nazw dla funkcji kanonicznych to Edm, jak w Edm.Length("string"). Nie trzeba określać przestrzeni nazw, chyba że zaimportowana jest inna przestrzeń nazw zawierająca funkcję o takiej samej nazwie jak funkcja kanoniczna. Jeśli dwie przestrzenie nazw mają tę samą funkcję, użytkownik powinien określić pełną nazwę.

Przykład:

SELECT Length(c. FirstName) AS NameLen FROM
    AdventureWorksEntities.Contact AS c
    WHERE c.ContactID BETWEEN 10 AND 12

Wyjście:

NameLen
6
6
5

Microsoft Provider-Specific

Funkcje specyficzne dla dostawcy firmy Microsoft znajdują się w SqlServer przestrzeni nazw.

Przykład:

SELECT SqlServer.LEN(c.EmailAddress) AS EmailLen FROM
    AdventureWorksEntities.Contact AS c WHERE
    c.ContactID BETWEEN 10 AND 12

Wyjście:

Adres e-mailLen
27
27
26

Przestrzenie nazw

USING określa przestrzenie nazw używane w wyrażeniu zapytania.

Przykład:

using SqlServer; LOWER('AA');

Wyjście:

Wartość
Aa

Stronicowanie

Stronicowanie można wyrazić, deklarując podklauzule SKIP i LIMIT do klauzuli ORDER BY.

Przykład:

SELECT c.ContactID as ID, c.LastName AS Name FROM
    AdventureWorks.Contact AS c ORDER BY c.ContactID SKIP 9 LIMIT 3;

Wyjście:

Identyfikator Nazwa
10 Adina
11 Agcaoili
12 Aguilar

Grupowanie

GRUPOWANIE WEDŁUG określa grupy, do których mają zostać umieszczone obiekty zwracane przez wyrażenie zapytania (SELECT).

Przykład:

SELECT VALUE name FROM AdventureWorksEntities.Product AS P
    GROUP BY P.Name HAVING MAX(P.ListPrice) > 5

Wyjście:

nazwa
Zestaw siedzeń górskich LL
Zestaw siedzeń górskich ML
Zestaw siedzeń górskich HL
...\

Operator nawigacji relacji umożliwia nawigowanie po relacji z jednej encji (od punktu początkowego) do innej (do punktu końcowego). Funkcja NAVIGATE przyjmuje typ relacji kwalifikowany jako <przestrzeń nazw>.<nazwa> typu relacji. Funkcja Navigate zwraca Ref<T>, jeśli kardynalność końca wynosi 1. Jeśli kardynalność na końcu wynosi n, zostanie zwrócona kolekcja< ref<T>>.

Przykład:

SELECT a.AddressID, (SELECT VALUE DEREF(v) FROM
    NAVIGATE(a, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) AS v)
    FROM AdventureWorksEntities.Address AS a

Wyjście:

AddressID
1
2
3
...\

WYBIERZ WARTOŚĆ I WYBIERZ

WYBIERZ WARTOŚĆ

Jednostka SQL udostępnia klauzulę SELECT VALUE, aby pominąć niejawną konstrukcję wiersza. W klauzuli SELECT VALUE można określić tylko jeden element. W przypadku użycia takiej klauzuli nie jest tworzone żadne otoczenie wiersza dla elementów w klauzuli SELECT, a kolekcję żądanego kształtu można utworzyć, na przykład: SELECT VALUE a.

Przykład:

SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p

Wyjście:

Nazwa
Regulowany wyścig
stoisko rowerowe All-Purpose
Czapka z logo AWC
...\

Wybierz

Jednostka SQL udostępnia również konstruktor wierszy do konstruowania dowolnych wierszy. Funkcja SELECT przyjmuje co najmniej jeden element w projekcji i powoduje utworzenie rekordu danych z polami, na przykład: SELECT a, b, c.

Przykład:

WYBIERZ p.Name, p.ProductID FROM AdventureWorksEntities.Product jako dane wyjściowe p:

Nazwa IdentyfikatorProduktu
Regulowany wyścig 1
stoisko rowerowe All-Purpose 879
Czapka z logo AWC 712
...\ ...\

WYRAŻENIE WARUNKOWE

Wyrażenie przypadku oblicza zestaw wyrażeń logicznych w celu określenia wyniku.

Przykład:

CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END

Wyjście:

Wartość
PRAWIDŁOWE

Zobacz także