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