Encyklopedia SQL - Tworzenie baz danych i tabel - CREATE  

Udostępnij na: Facebook

Autor: Paweł Wilkosz

Opublikowano: 2012-02-01

Do tej pory kolejne odcinki Encyklopedii SQL koncentrowały się na manipulacji na istniejącej bazie danych. Podstawowym zadaniem niniejszej publikacji jest przedstawienie opcji niezbędnych do tworzenia baz danych oraz tabel zorganizowanych w ich strukturach. W tym celu zapoznasz się z klauzulą CREATEDATABASE oraz CREATETABLE.

Przed wykonaniem zadań zapoznaj się z następującym materiałem:

Po wykonaniu zadań będziesz wiedział:

  • jak wykorzystać klauzulę CREATE DATABASE oraz CREATE TABLE do tworzenia baz danych oraz tabel.

Polecenie CREATE DATABASE

Klauzula CREATE DATABASE jest jednym z mechanizmów tworzenia baz danych w środowiskach systemów do zarządzania bazami danych. W najprostszej postaci jej składnia ogranicza się do podania nazwy tworzonej bazy. Na poniższym listingu została przedstawiona składnia w formie podstawowej oraz rozszerzonej. Poniższe opcje zostaną omówione w dalszej części publikacji:

//Opcja podstawowa
CREATE DATABASE nazwa_bazy_danych;

//Opcja rozszerzona
CREATE DATABASE nazwa_bazy_danych
    [ ON 
        { [ PRIMARY ] [ <grupa_plikow> [ ,...n ] 
        [ , <grupa_plikow> [ ,...n ] ] 
    [ LOG ON { <miejsce_na_logi_bazy_danych> [ ,...n ] } ] }
    ] 
    [ COLLATE nazwa ]
    [ WITH <opcje_dodatkowe> ]
]

Znaczenie opcji wykorzystywanych w poleceniu CREATE DATABASE zostało zestawione w Tabeli 1.

Tabela 1. Znaczenie opcji wykorzystywanych w zapytaniu CREATE DATABASE.

Opcja Objaśnienie.
ON (PRIMARY) Specyfikuje pliki na dysku twardym, które są używane do przechowywania rekordów bazy danych. PRIMARY – definiuje podstawową grupę plików.
LOG ON Określa miejsce na dysku do przechowywania logów bazy danych.
COLLATE Definiuje domyślne sortowanie w bazie danych z uwzględnieniem ustawień regionalnych.

Aby lepiej zrozumieć zagadnienia tworzenia bazy danych, zaleca się przeanalizowanie następującego przykładu. Programiści w firmie AdventureWorks zostali poproszeni o przygotowanie bazy danych dla pracowników działu Marketingu i Promocji, aby ułatwić komunikację i składowanie wiedzy w zakresie prowadzonej akcji promocyjnej na terenie Stanów Zjednoczonych. Architekt Baz Danych zaproponował następujące wytyczne:

  • Baza danych przyjmie nazwę PublicRelationDatabase.
  • Podstawowa partycja bazy danych będzie znajdować się na dysku C w katalogu Temp\Database\primary_database.mdf.
  • Druga grupa plików (tzw. secondary) będzie składowana w tym samym katalogu, co podstawowa, ale o nazwie secondary_database.ndf.
  • Logi z bazy danych będą składowane w tym samym katalogu, co grupa podstawowa, tylko o nazwie log_database.ldf.
  • Rozmiar bazy danych będzie wynosił 3072 KB z przyrostem 1024KB. Te same opcje będą dotyczyły grupy secondary.
  • Log bazodanowy będzie wynosił 1024 KB z przyrostem 10%.

Aby spełnić wymagania niefunkcjonalne projektu, programiści powinni przygotować następujące zapytanie:

CREATE DATABASE PublicRelationDatabase ON PRIMARY
(
NAME = N'primary_database',
FILENAME = N'C:\Temp\Database\primary_database.mdf',
SIZE = 3072KB,
FILEGROWTH = 1024KB),

FILEGROUP [Filegroup1]
(
NAME = N'secondary_database',
FILENAME = N'C:\Temp\Database\Secondary\secondary_database.ndf',
SIZE = 3027KB,
FILEGROWTH = 1024KB)

LOG ON
(
NAME = N'log_database',
FILENAME = N'C:\Temp\Database\Log\log_database.ldf',
SIZE = 1024KB,
FILEGROWTH = 10%)
GO

co w rezultacie powinno doprowadzić do utworzenia bazy danych w przestrzeni serwera SQL (Rys. 1.) oraz utworzenia wskazanych plików w podanych katalogach (Rys. 2.).

**Rys.1. Utworzona baza danych w przestrzeni SQL Server.

Rys. 2. Lokalizacja plików bazodanowych utworzonej bazy PublicRelationDatabase.

Polecenie CREATE TABLE

Za pomocą polecenia CREATE TABLE, programista może utworzyć praktycznie dowolną tabelę w obrębie wskazanej bazy danych. Składnia polecenia wymaga podania nazwy kolumny oraz typu danych, które będzie wskazywał na docelowy format informacji, składowany w ramach rekordów. W nieniejszej publikacji nie będą omawiane zaawansowane opcje polecenia CREATE TABLE, gdyż stanowią one treść kolejnych części cyklu Encyklopedia SQL.

Podstawowa forma zapytania z CREATE TABLE przyjmuje następującą postać:

CREATE TABLE Nazwa_tabeli
(
  kolumna1 TYP,
  …
  kolumnaN TYP
)

Następny przykład obrazuje praktyczne zastosowanie klauzuli CREATE TABLE do tworzenia tabel w bazie danych PublicRelationDatabase, utworzonej w poprzednim podpunkcie artykułu.

Postępujące prace nad projektem, usprawniającym działania promocyjne działu marketingu, zobligowały programistów baz danych w AdventureWorks do utworzenia tabeli Agents, grupujących osoby zaangażowane w akcję reklamowania produktów. Po dogłębnej analizie zespół IT zdecydował się zaprojektować tabelę wg następujących wytycznych:

  • Tabela będzie nosiła nazwę Agents.
  • Kolumny zorganizowane w ramach tabeli to: Id, Imię, Nazwisko, Adres, Data zatrudnienia, informacja, czy użytkownik jest aktywny, Obszar działalności, Numer legitymacji.

W związku z tym programiści baz danych zaproponowali następujące typy danych dla wskazanych kolumn:

Kolumna Typ danych
Id INT, klucz główny
Imię (FirstName) VARCHAR (30)
Nazwisko (SecondName) VARCHAR(50)
Data zatrudnienia (EmploymentDate) DATETIME2
Czy jest aktywny (IsActive) BIT
Obszar działalności (ActivityArea) GROGRAPHY
Numer legitymacji (AWPersolanID) UNIQUEIDENTIFIER

Po akceptacji Architekta Baz Danych, programiści utworzyli tabelę, wykorzystując następujące zapytanie:

CREATE TABLE Agents
(
    Id      INT PRIMARY KEY NOT NULL,
    FirstName   VARCHAR(30),
    SecondName  VARCHAR(50),
    EmploymentDate  DATETIME2,
    IsActive    BIT,
    ActivityArea    GEOGRAPHY,
    AWPersonalID    UNIQUEIDENTIFIER DEFAULT NEWID()
)

Rys. 3. przedstawia tabelę Agents w przestrzeni SQL Server:

Rys. 3. Tabela Agents w SQL Server.

Informacja

Zapamiętaj, że:

  1. Polecenie CREATE DATABASE służy do tworzenia baz danych w przestrzeni serwera SQL.
  2. Polecenie CREATE TABLE odnosi się do tworzenia tabel w przestrzeni wskazanej bazy danych.

Podsumowanie

Niniejsza publikacja prezentuje sposoby tworzenia baz danych oraz, w ich obrębie, tabel za pomocą języka T-SQL.

W kolejnej publikacji nauczysz się, co to jest klucz główny oraz jaką rolę pełni w bazie danych.

Dodatkowo zobacz: