Start > Kursy on-line > MS SQL Server Express

MS SQL Server Express


Tworzenie tabel, polecenie CREATE TABLE, typy pól

Tworzenie tabel w SQL Server jest możliwe na dwa sposoby: poprzez uruchomienie napisanego ręcznie polecenia SQL lub z wykorzystaniem graficznym aplikacji SQL Server Management Studio Express. Omówimy krótko obie możliwości prezentując je we wspomnianej aplikacji. Wykorzystamy przy tym bazę danych utworzoną w poprzedniej części kursu.

Aby utworzyć tabelę w ramach danej bazy, należy użyć na odpowiednim elemencie drzewa obiektów prawego klawisza myszy oraz wybrać polecenie New Table":




Spowoduje to wyświetlenie dwóch dodatkowych okien: okna, w którym definiujemy poszczególne pola tabeli (nazwy, typy oraz inne szczególne właściwości) - wyświetlane centralnie oraz pole właściwości (z prawej strony ekranu) zawierające ogólne opcje tworzonej tabeli.:



W oknie tworzenia tabeli (centralnym) mamy dwie sekcje: w górnej tabeli wpisujemy kolejno nazwy pól (Column Name), typ pola (Data Type) oraz oznaczamy, czy pole może być puste (Allow Nulls). W dolnej części ekranu nazwanej Column Properties definiujemy natomiast dodatkowe właściwości związane z definiowanym polem.

Zatrzymajmy się w tym miejscu nad typami pól w SQL Server:

Liczby dokładne

TypWartości odWartości do
bigint-9 223 372 036 854 775 8089 223 372 036 854 775 807
int-2 147 483 6482 147 483 647
smallint-32 76832 767
tinyint0255
bit01
decimal-1038 +11038 "1
numeric-1038 +11038 "1
money-922 337 203 685 477,5808+922 337 203 685 477,5807
smallmoney-214 748,3648+214 748,3647

Typy danych decimal oraz numeric są identyczne jeśli chodzi o ich zastosowanie.

Liczby przybliżone

TypWartości odWartości do
float-1.79E + 3081.79E + 308
real-3.40E + 383.40E + 38


Data i czas

TypWartości odWartości do
datetime (dokładność 3.33 milisekundy)1. styczeń 175331. grudzień 9999
smalldatetime (dokładność 1 minuty)1. styczeń 19006. czerwiec 2079


Łańcuchy znaków

TypOpis
charTekst o stałej długości - max. 8 000 znaków długości
varcharTekst o zmiennej długości - max. 8 000 znaków długości
varchar(max)Tekst o zmiennej długości - max. 231 znaków długości
textTekst o zmiennej długości - max. 2 147 483 647 znaków długości


Tekst Unicode

TypOpis
ncharTekst Unicode o stałej długości - max. 4 000 znaków
nvarcharTekst Unicode o zmiennej długości - max. 4 000 znaków
nvarchar(max)Tekst Unicode o zmiennej długości - max. 230 znaków
ntextTekst Unicode o zmiennej długości - max. 1 073 741 823 znaków


Dane binarne

TypOpis
binaryDane binarne o stałej wielkości - max. wielkość 8 000 bajtów
varbinaryDane binarne o zmiennej wielkości - max. wielkość 8 000 bajtów
varbinary(max)Dane binarne o zmiennej wielkości - max. wielkość 231 bajtów
imageDane binarne o zmiennej wielkości - max. wielkość 2 147 483 647 bajtów


Inne typy danych

  • sql_variant: Przechowuje dane różnego typu zgodne z SQL Server za wyjątkiem text. ntext. i timestamp.
  • timestamp: Przchowuje unikatowy numer symbolizujący datę i godzinę odświeżany za każdym razem kiedy ma miejsce zmiana wartości rekordu.
  • uniqueidentifier: Przechowuje globalny unikalny identyfikator (GUID)
  • xml: Przechowuje informacje w formacie XML
  • cursor: Odwołanie do kursora
  • table:Przechowuje wyniki zapytania do późniejszego wykorzystania



Po powyższym przeglądzie typów możemy wrócić do tworzenia samej tabeli. Jako pierwsze ustawimy pole, które będzie zawierało kolejne numery rekordów, począwszy od 1.:




Czerwonym kolorem zaznaczona jest ta część właściwości pola o nazwie "id", która pozwala zdefiniować, iż określone pole będzie zawierać unikatowe wartości ("Is Identity" = True), począwszy od 1 ("Identity Seed"), wzrastające o 1 ("Identity Increment"). W kolejnych polach, które nazwiemy "klient", "produkt" oraz "ilosc" nie będziemy już wykorzystywać tej funkcjonalności. Używamy jeszcze tylko skrótu Ctrl+S lub klikamy ikonę dyskietki w celu zapisania projektu tabeli, podajemy nazwę (domyślną zmienimy na "sprzedaz") i gotowe:



Teraz dla utrwalenia oraz przygotowania środowiska dla kolejnych rozdziałów, stwórzmy kolejną prostą tabelę o nazwie "produkty":



Zmodyfikujmy jeszcze poprzednią tabelę o pole "id_prod" tak, aby wraz z polem "id" (z tabeli "produkty") zawierały indeksy produktów, które będą służyć do łączenia tabel podczas tworzenia zapytań do bazy danych (innymi słowy w polu "id_prod" znajdzie się taka liczba, która odpowiada produktowi o tej samej nazwie z tabeli "produkty"):



W ten prosty sposób zaprezentowaliśmy przy okazji jak można modyfikować wcześniej stworzoną tabelę wraz ze wstawianiem w niej dodatkowych pól.
Zobaczmy teraz co się stanie w momencie, kiedy użyjemy polecenia Script Table as > Create To, jak na obrazie poniżej:




Program wygenerował nam polecenie SQL, dzięki któremu możemy utworzyć identyczną jak przed chwilą tabelę, jednak bez używania graficznego interfejsu wyboru pól i ustawiania ich właściwości - używając okna edytora SQL. Kluczowym poleceniem jest tu:

CREATE TABLE "nazwa tabeli" (kolejne pola wraz z typami i ewentualnymi właściwościami w nawiasie, po przecinku)



Jest to standardowa składnia polecenia tworzącego tabele w SQL Server (i nie tylko).

Na koniec tego rozdziału wypełnimy tabele danymi. W tym celu musimy ją otworzyć odpowiednim poleceniem:




W centralnym oknie pojawi się zawartość otwartej tabeli. W tej chwili możemy zacząć po prostu wpisywać do niej dane. Możemy też (o ile mamy przygotowane dane w innym miejscu, jak np. w Excelu) zaznaczyć myszką cały pierwszy rekord tabeli i wkleić dane Ctrl+V, które wcześniej skopiowaliśmy do schowka Ctrl+C:



i druga tabela:



Mamy przygotowane dwie, pierwsze tabele wraz z danymi - w kolejnych rozdziałach zaczniemy tworzyć zapytania do danych w nich umieszczonych.