12-sql2008-nowe cechy
Transkrypt
12-sql2008-nowe cechy
Inicjalizacja zmiennych SQL Server 2008 nowe cechy T-SQL • Możliwe jest inicjalizowanie zmiennych w trybie "inline", tj. przy ich deklaracji. Eliminuje to konieczność rozdzielenia deklaracji DECLARE i przypisania wartości SET. • Przykład: DECLARE @i AS INT = 0, @d AS DATETIME = CURRENT_TIMESTAMP; SELECT @i AS [@i], @d AS [@d]; Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski (c) T. Pankowski, SQL 2008 nowe cechy Złożone operatory przypisania 2 VALUES jako konstruktor tabeli • Nowe operatory: += (plus equals) – = (minus equals) *= (multiplication equals) /= (division equals) %= (modulo equals) • Za pomocą frazy VALUES można konstruować (wielo)zbiór krotek. • Umożliwia to dołączanie wielu krotek do tabeli za pomocą pojedynczego wyrażenia INSERT. • Przykład: INSERT INTO Klienci(KliId, Nazwa, Tel, Adres) VALUES (1, 'klient 1', '(111) 111-1111', 'adres 1'), (2, 'klient 2', '(222) 222-2222', 'adres 2'), (3, 'klient 3', '(333) 333-3333', 'adres 3'), (4, 'klient 4', '(444) 444-4444', 'adres 4'), (5, 'klient 5', '(555) 555-5555', 'adres 5'); • Przykład: DECLARE @cena AS MONEY = 10.00; SET @cena += 2.00; SELECT @cena; (c) T. Pankowski, SQL 2008 nowe cechy (c) T. Pankowski, SQL 2008 nowe cechy 1 3 (c) T. Pankowski, SQL 2008 nowe cechy 4 VALUES jako konstruktor tabeli Rozszerzenie funkcji CONVERT Nowe opcje konwersji między stringami znaków a binarnymi typami danych. Trzeci parametr określa styl konwersji. Może nim być: • 0 – styl domyślny, konwersja stringu znakowego do binarnej reprezentacji kodów ASCII i na odwrót, • 1 – konwersja stringu szesnastkowego do wartości szesnastkowej i odwrotnie, ciąg wejściowy zawiera prefix 0x, • 2 – jak wyżej, ale bez prefiksu 0x • Konstruktor tabeli może być używany do definiowania wyrażeń tabelowych i używane we wszystkich tych miejscach, gdzie może występować wyrażenie tabelowe, w szczególności we frazie FROM wyrażenia SELECT lub jako tabela źródłowa w wyrażeniu MERGE. • Przykład: SELECT * FROM (VALUES (1, 'klient 1', '(111) 111-1111', 'adres (2, 'klient 2', '(222) 222-2222', 'adres (3, 'klient 3', '(333) 333-3333', 'adres (4, 'klient 4', '(444) 444-4444', 'adres (5, 'klient 5', '(555) 555-5555', 'adres ) AS K(KliId, Nazwa, Tel, Adres); SELECT CONVERT(VARCHAR(12) , 0x313637, 0) CONVERT(VARBINARY(5), '167', 0) CONVERT(VARCHAR(12) , 0x49747A696B , 1) CONVERT(VARBINARY(5), '0x49747A696B', 1) CONVERT(VARCHAR(12) , 0x49747A696B , 2) CONVERT(VARBINARY(5), '49747A696B' , 2) 1'), 2'), 3'), 4'), 5'); (c) T. Pankowski, SQL 2008 nowe cechy • • • • [Bin to Char 0], [Char to Bin 0], [Bin to Char 1], [Char to Bin 1], [Bin to Char 2], [Char to Bin 2]; Bin to Char 0 Char to Bin 0 Bin to Char 1 Char to Bin 1 Bin to Char 2 ------------- ------------------------------------------------167 0x313637 0x49747A696B 0x49747A696B 49747A696B 5 Typy związane z datą i czasem • AS AS AS AS AS AS Cztery nowe typy wprowadzają rozdział między datą i czasem (dotąd był tylko typ DATETIME). Daje to zgodność ze standardem SQL. DATE: • zajętość pamięci: 3 bajty • przedział: od 01.01.0001 do 31.12.9999, • dokładność: 1 dzień, • rekomendowany format: 'YYYY-MM-DD', np.: '2009-02-12' TIME • zajętość pamięci: 3 – 5 bajtów • dokładność: 100 nanosekund, • rekomendowany format: 'hh:mm:ss.nnnnnnn', np.: '12:30:15.1234567' DATETIME2, dokładniejsza wersja DATETIME, daje większy zakres i większą dokładność • zajętość pamięci: 6 – 8 bajtów • przedział: od 01.01.0001 do 31.12.9999, • dokładność: 100 nanosekund, • rekomendowany format: 'YYYY-MM-DD hh:mm:ss.nnnnnnn', np.: '2009-02-12 12:30:15.1234567' DATETIMEOFFSET, podobnie jak DATATIME2 z dodatkiem strefy czasowej • zajętość pamięci: 8 – 10 bajtów • przedział: od 01.01.0001 do 31.12.9999, • dokładność: 100 nanosekund, • rekomendowany format: 'YYYY-MM-DD hh:mm:ss.nnnnnnn [+|-]hh:mm', np.: '2009-02-12 12:30:15.1234567 +02:00' Char to Bin 2 ------------0x49747A696B (c) T. Pankowski, SQL 2008 nowe cechy 6 Duże rozmiary typów definiowanych przez użytkownika (UDT) • typy danych do 2GB, • typy przestrzenne: • GEOGRAPHY – kulista topologia ziemi (round earth topology), • GEOMETRY – płaska topologia ziemi (flat earth topology). • VARBINARY(MAX) and IMAGE (było w SQL Server 2005) (c) T. Pankowski, SQL 2008 nowe cechy 8 Typ HIERARCHYID (c) T. Pankowski, SQL 2008 nowe cechy 9