Encyklopedia SQL - Tworzenie baz danych i tabel - CREATE
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:
|
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: