Baza danych SQL Server: tworzenie, modyfikowanie, usuwanie i przywracanie

โšก Inteligentne podsumowanie

Bazy danych SQL Server to kontenery przechowujฤ…ce tabele, widoki, procedury skล‚adowane i inne obiekty. Tworzenie, modyfikowanie i usuwanieping, a przywracanie bazy danych moลผna wykonaฤ‡ za pomocฤ… programu SQL Server Management Studio lub instrukcji Transact-SQL.

  • ๐Ÿ—„๏ธ Baza danych: Baza danych SQL Server przechowuje tabele, widoki, procedury i funkcje w jednym uporzฤ…dkowanym, powiฤ…zanym kontenerze.
  • ๐Ÿงฉ System kontra uลผytkownik: Bazy danych systemowych (master, msdb, model, tempdb, resource) instalujฤ… siฤ™ automatycznie; bazy danych uลผytkownikรณw tworzysz samodzielnie.
  • ๐Ÿ–ฑ๏ธ. Stwรณrz: Dodaj bazฤ™ danych za pomocฤ… okna dialogowego Nowa baza danych w Eksploratorze obiektรณw lub za pomocฤ… polecenia CREATE DATABASE.
  • โœ๏ธ Zmieniaฤ‡: Zmieล„ nazwฤ™ bazy danych lub jej pliki i opcje, korzystajฤ…c z polecenia ALTER DATABASE lub menu Zmieล„ nazwฤ™.
  • ๐Ÿ—‘๏ธ Upuszczaฤ‡: Usuล„ bazฤ™ danych uลผytkownika za pomocฤ… polecenia DROP DATABASE lub opcji Delete; nie moลผna usunฤ…ฤ‡ baz danych systemowych.
  • ๐Ÿ’พ Przywracaฤ‡: Odbudowa bazy danych z pliku kopii zapasowej .bak przy uลผyciu polecenia RESTORE DATABASE.

Tworzenie, modyfikowanie, usuwanie i przywracanie bazy danych SQL Server

Co to jest baza danych?

Baza danych to zbiรณr obiektรณw, takich jak: stoล‚y, widoki, procedury skล‚adowane, wyzwalacze i funkcje. W SQL ServerBaza danych to uporzฤ…dkowane miejsce, w ktรณrym przechowywane i poล‚ฤ…czone sฤ… wszystkie powiฤ…zane obiekty.

Rozwaลผmy kilka przykล‚adรณw z ลผycia:

  • Regaล‚ na ksiฤ…ลผki to miejsce, w ktรณrym znajdujฤ… siฤ™ ksiฤ…ลผki.
  • Dom to miejsce, w ktรณrym mieszkamy.
  • Parking to miejsce, w ktรณrym parkuje siฤ™ pojazdy, a przykล‚ady takich miejsc moลผna mnoลผyฤ‡.

Podobnie, baza danych jest swego rodzaju domem dla wszystkich naszych tabel, widokรณw i procedur skล‚adowanych. Technicznie rzecz biorฤ…c, baza danych przechowuje dane w uporzฤ…dkowany sposรณb, aby uล‚atwiฤ‡ dostฤ™p i wyszukiwanie. W SQL Server istniejฤ… dwa typy baz danych:

  • Bazy danych systemowych: Sฤ… one tworzone automatycznie podczas instalacji programu SQL Server. Odgrywajฤ… kluczowฤ… rolฤ™ na serwerze, zwล‚aszcza w zapewnieniu prawidล‚owego dziaล‚ania obiektรณw bazy danych. Przykล‚adami systemowych baz danych SQL Server sฤ…: master, msdb, model, tempdb i resource.
  • Bazy danych uลผytkownikรณw: Sฤ… one tworzone przez uลผytkownikรณw baz danych, takich jak Ty, ktรณrym przyznano uprawnienia do tworzenia baz danych.

Zasady tworzenia bazy danych

Najpierw musisz poznaฤ‡ podstawowe zasady tworzenia nowej bazy danych:

  • Nazwy baz danych muszฤ… byฤ‡ unikalne w obrฤ™bie instancji SQL Server.
  • Nazwy baz danych mogฤ… mieฤ‡ maksymalnie 128 znakรณw.
  • Polecenie CREATE DATABASE musi zostaฤ‡ uruchomione w trybie automatycznego zatwierdzania.

Poniลผszy rysunek przedstawia dwa dostฤ™pne podejล›cia do tworzenia bazy danych w programie SQL Server.

Dwa sposoby tworzenia bazy danych SQL Server: Management Studio i Transact-SQL

Istniejฤ… dwa sposoby tworzenia bazy danych w programie SQL Server:

Jak utworzyฤ‡ bazฤ™ danych w SQL Server Management Studio

Poniลผej przedstawiono krok po kroku proces tworzenia bazy danych w programie SQL Server Management Studio:

Krok 1) Kliknij prawym przyciskiem myszy pozycjฤ™ โ€žBaza danychโ€ w oknie โ€žEksploratora obiektรณwโ€, a nastฤ™pnie wybierz opcjฤ™ โ€žNowa baza danychโ€.

Poniลผej pokazano menu prawego przycisku myszy z opcjฤ… Nowa baza danych.

Kliknij prawym przyciskiem myszy wฤ™zeล‚ Baza danych w Eksploratorze obiektรณw z wybranฤ… opcjฤ… Nowa baza danych

Krok 2) Pojawi siฤ™ ekran โ€žNowa baza danychโ€. Wprowadลบ โ€žNazwฤ™ bazy danychโ€. Kolumna โ€žNazwa logicznaโ€ zostanie automatycznie uzupeล‚niona:

  • Edu โ€“ Typ pliku: Wiersze danych i grupa plikรณw: PODSTAWOWA
  • Edu_log โ€“ typ pliku: LOG i grupa plikรณw: โ€žNie dotyczyโ€

Poniลผej pokazano okno dialogowe Nowa baza danych zawierajฤ…ce nazwฤ™ bazy danych i jej pliki logiczne.

Nowe okno dialogowe bazy danych pokazujฤ…ce nazwฤ™ bazy danych Edu oraz pliki logiczne Edu i Edu_log

Tutaj:

  • A) Edu (typ pliku: Rows Data, grupa plikรณw: PRIMARY) jest plikiem danych .mdf.
  • B) Edu_log (typ pliku: LOG, grupa plikรณw: 'Nie dotyczy') to plik dziennika .ldf.

Krok 3) (Opcjonalnie) W przypadku bardziej zล‚oลผonych ustawieล„ moลผesz przejล›ฤ‡ do stron โ€žOpcjeโ€ i โ€žGrupy plikรณwโ€. Na poziomie poczฤ…tkujฤ…cym wystarczy utworzyฤ‡ bazฤ™ danych z zakล‚adki Ogรณlne.

Poniลผej znajdujฤ… siฤ™ strony Opcje i Grupy plikรณw.

Nowe strony Opcje bazy danych i Grupy plikรณw dla ustawieล„ zaawansowanych

Krok 4) Kliknij โ€žDodajโ€ (przycisk OK), aby utworzyฤ‡ bazฤ™ danych.

Poniลผej zaznaczony jest przycisk potwierdzajฤ…cy utworzenie.

Przycisk OK w oknie dialogowym Nowa baza danych, ktรณry tworzy bazฤ™ danych Edu

Wynik: Baza danych โ€žEduโ€ zostaล‚a utworzona. Moลผesz rozszerzyฤ‡ bazฤ™ danych โ€žEduโ€, ktรณra bฤ™dzie zawieraฤ‡ tabele, widoki itd. Poczฤ…tkowo bฤ™dฤ… one puste, dopรณki nie utworzysz nowych tabel, widokรณw itd.

Eksplorator obiektรณw pokazujฤ…cy nowo utworzonฤ… bazฤ™ danych Edu z pustymi folderami

Wyล›wietl zapytanie ลบrรณdล‚owe: Moลผesz wyล›wietliฤ‡ zapytanie ลบrรณdล‚owe nowo utworzonej bazy danych โ€žEduโ€. Nawiguj w nastฤ™pujฤ…cy sposรณb: kliknij prawym przyciskiem myszy nazwฤ™ bazy danych > Skrypt bazy danych jako > UTWร“RZ do > Okno edytora nowych zapytaล„.

Baza skryptรณw jako CREATE do nowego okna edytora zapytaล„ w menu kontekstowym

Okno zapytania: Wygenerowany skrypt CREATE otwiera siฤ™ w nowym oknie zapytania, jak pokazano poniลผej.

Okno edytora zapytaล„ wyล›wietlajฤ…ce automatycznie wygenerowany skrypt CREATE DATABASE dla Edu

Utwรณrz skrypt:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Utwรณrz bazฤ™ danych za pomocฤ… T-SQL

Innฤ… metodฤ… jest napisanie zapytania T-SQL w celu utworzenia bazy danych, a nastฤ™pnie jego wykonanie. Przyjrzyjmy siฤ™ najprostszemu zapytaniu T-SQL tworzฤ…cemu bazฤ™ danych.

Skล‚adnia:

CREATE DATABASE <Database_name>

zapytanie:

CREATE DATABASE [Edu_TSQL_file]

Kliknij โ€žWykonajโ€, aby uruchomiฤ‡ zapytanie, jak pokazano poniลผej.

Przycisk Wykonaj na pasku narzฤ™dzi SSMS sล‚uลผฤ…cy do uruchomienia zapytania CREATE DATABASE

Wynik: Plik Edu_TSQL_file utworzony w Eksploratorze obiektรณw SQL moลผna zobaczyฤ‡.

Eksplorator obiektรณw wyล›wietlajฤ…cy bazฤ™ danych Edu_TSQL_file utworzonฤ… za pomocฤ… jฤ™zyka Transact-SQL

Przyjrzyjmy siฤ™ teraz, jak utworzyฤ‡ bazฤ™ danych z jawnymi plikami .mdf i .ldf. W tym przypadku moลผesz podaฤ‡ lokalizacjฤ™ pliku jako jawnฤ… czฤ™ล›ฤ‡ zapytania.

Skล‚adnia:

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

zapytanie:

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Baza danych utworzona z jawnymi danymi i plikami dziennika jest wyล›wietlana w Eksploratorze obiektรณw, jak pokazano poniลผej.

Eksplorator obiektรณw pokazujฤ…cy bazฤ™ danych Edu_TSQL_file utworzonฤ… przy uลผyciu jawnych plikรณw .mdf i .ldf

Jak zmieniฤ‡ bazฤ™ danych

Podobnie jak w przypadku zapytania CREATE DATABASE, moลผesz rรณwnieลผ modyfikowaฤ‡ bazฤ™ danych. Moลผesz zmieniฤ‡ jej nazwฤ™, lokalizacjฤ™ pliku lub ustawienia i nie tylko.

Podstawowe zasady modyfikacji bazy danych:

  • Polecenie ALTER DATABASE musi byฤ‡ uruchamiane w trybie automatycznego zatwierdzania.
  • Opcja ALTER DATABASE nie jest dozwolona w transakcji jawnej lub ukrytej.

Istniejฤ… dwa sposoby modyfikacji bazy danych w programie SQL Server:

  • SQL Server Management Studio
  • Transakcyjny SQL

Jak zmieniฤ‡ bazฤ™ danych w SQL Server Management Studio

Poniลผej przedstawiono kroki modyfikacji bazy danych w SQL Server Management Studio. Sprรณbujmy zmieniฤ‡ nazwฤ™ naszej wstฤ™pnie utworzonej bazy danych na โ€žEduโ€. Wstฤ™pnie utworzona baza danych Edu jest pokazana poniลผej w Eksploratorze obiektรณw.

Wstฤ™pnie utworzona baza danych Edu wybrana na liล›cie baz danych Eksploratora obiektรณw

Krok 1) Zmieล„ nazwฤ™ bazy danych. Kliknij prawym przyciskiem myszy nazwฤ™ bazy danych i kliknij โ€žZmieล„ nazwฤ™โ€.

Kliknij prawym przyciskiem myszy w menu kontekstowym bazy danych Edu i wybierz opcjฤ™ Zmieล„ nazwฤ™

Krok 2) Nazwa bazy danych staje siฤ™ edytowalna. Wprowadลบ nowฤ… nazwฤ™ i naciล›nij Enter.

Edytowalne pole nazwy bazy danych Edu gotowe na nowฤ… nazwฤ™

Wynik: Baza danych zostaล‚a przemianowana z โ€žEduโ€ na โ€žEdu_Alterโ€.

Eksplorator obiektรณw pokazujฤ…cy bazฤ™ danych zmienionฤ… z Edu na Edu_Alter

Zmieล„ bazฤ™ danych za pomocฤ… jฤ™zyka Transact-SQL

Teraz zmodyfikujemy bazฤ™ danych korzystajฤ…c z jฤ™zyka T-SQL.

Skล‚adnia:

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

zapytanie:

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

Uruchom powyลผsze zapytanie, klikajฤ…c โ€žWykonajโ€.

Wynik: Nazwฤ™ bazy danych zmieniono z โ€žEdu_TSQLโ€ na โ€žEdu_TSQL_Alterโ€, jak pokazano poniลผej.

Eksplorator obiektรณw pokazujฤ…cy bazฤ™ danych zmienionฤ… na Edu_TSQL_Alter po poleceniu ALTER DATABASE

Ogรณlna skล‚adnia: Peล‚na skล‚adnia polecenia ALTER DATABASE obsล‚uguje wiele opcji, w tym zmianฤ™ nazw, sortowanie, opcje plikรณw i poziom zgodnoล›ci.

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

Uwaga: Przedstawione powyลผej poziomy zgodnoล›ci odzwierciedlajฤ… starsze wersje. Aktualne wersje dodajฤ… 150 (SQL Server 2019), 160 (SQL Server 2022) i 170 (SQL Server 2025), jednoczeล›nie obsล‚ugujฤ…c kilka wczeล›niejszych poziomรณw.

Zmiana nazwy pliku .mdf/.ldf

zapytanie:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

Zmieniona nazwa pliku logicznego jest widoczna we wล‚aล›ciwoล›ciach bazy danych, jak pokazano poniลผej.

Wล‚aล›ciwoล›ci bazy danych potwierdzajฤ…ce zmianฤ™ nazwy pliku logicznego Edu_TSQL_newName

Zmiana lokalizacji pliku .mdf/.ldf

zapytanie:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

Poniลผej pokazano zaktualizowanฤ… ล›cieลผkฤ™ dostฤ™pu do bazy danych.

Strona pliku bazy danych pokazujฤ…ca nowฤ… lokalizacjฤ™ pliku dziennika .ldf

Usuล„ bazฤ™ danych

Istniejฤ… dwa sposoby usuniฤ™cia (usuwania) bazy danych w programie SQL Server:

  • SQL Server Management Studio
  • Transakcyjny SQL

Jak usunฤ…ฤ‡ bazฤ™ danych w SQL Server Management Studio

Poniลผej przedstawiono proces usuwania bazy danych w SQL Server Management Studio. Sprรณbujmy usunฤ…ฤ‡ naszฤ… predefiniowanฤ… bazฤ™ danych โ€žEdu_Alterโ€.

Krok 1) Kliknij prawym przyciskiem myszy bazฤ™ danych, kliknij โ€žUsuล„โ€, a nastฤ™pnie kliknij โ€žOKโ€.

Okno dialogowe usuwania obiektu w celu upuszczeniaping baza danych Edu_Alter w SSMS

Wynik: โ€žEdu_Alterโ€ zostaล‚ usuniฤ™ty z listy bazy danych โ€žObject Explorerโ€.

Lista baz danych Object Explorer po usuniฤ™ciu bazy danych Edu_Alter

Usuล„ bazฤ™ danych przy uลผyciu jฤ™zyka Transact-SQL

Sprรณbujmy usunฤ…ฤ‡ naszฤ… wczeล›niej utworzonฤ… bazฤ™ danych โ€žEdu_TSQL_Alterโ€.

Skล‚adnia:

DROP DATABASE <Databse_name>

zapytanie:

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

Uruchom powyลผsze zapytanie, klikajฤ…c โ€žWykonajโ€.

Wynik: Pozycja โ€žEdu_TSQL_Alterโ€ zostaล‚a usuniฤ™ta z listy baz danych โ€žObject Explorerโ€, jak pokazano poniลผej.

Lista baz danych Object Explorer po usuniฤ™ciu bazy danych Edu_TSQL_Alter za pomocฤ… T-SQL

Przywrรณฤ‡ bazฤ™ danych w SQL Server

Moลผesz utworzyฤ‡ bazฤ™ danych, przywracajฤ…c bazฤ™ danych, ktรณrej kopiฤ™ zapasowฤ… utworzono wczeล›niej. Moลผna to zrobiฤ‡, uruchamiajฤ…c polecenie RESTORE DATABASE o nastฤ™pujฤ…cej skล‚adni:

restore Database <database name> from disk = '<Backup file location + filename>

Zapytanie naleลผy wykonaฤ‡ w oknie zapytania, tak jak poprzednie polecenia. Na przykล‚ad:

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

Moลผna rรณwnieลผ skorzystaฤ‡ z nawigacji graficznej: Kliknij prawym przyciskiem myszy Bazฤ™ danych > Przywrรณฤ‡ bazฤ™ danych > Urzฤ…dzenie > zaimportuj plik kopii zapasowej > kliknij OK.

FAQ

Utworzenie bazy danych wymaga uprawnienia CREATE DATABASE, CREATE ANY DATABASE lub ALTER ANY DATABASE w bazie danych master. Wymagana jest rola serwera sysadmin lub dbcreator albo odpowiednio udzielona. Zaloguj Siฤ™, moลผna uruchomiฤ‡ instrukcjฤ™.

Pojedyncza instancja SQL Server moลผe pomieล›ciฤ‡ do 32 767 baz danych. Ta liczba stanowi sztywne ograniczenie architektoniczne; w praktyce, ze wzglฤ™du na obciฤ…ลผenie pamiฤ™ci, pamiฤ™ci masowej i administracyjne, dla uzyskania dobrej wydajnoล›ci zaleca siฤ™ znacznie mniejsze liczby.

Nie. Bazy danych systemowych, takie jak master, model, msdb, tempdb i resource, sฤ… wymagane przez silnik i nie moลผna ich usunฤ…ฤ‡. Tylko bazy danych uลผytkownikรณw utworzone przez uลผytkownika moลผna usunฤ…ฤ‡ za pomocฤ… polecenia DROP DATABASE lub opcji Delete.

Parametr SIZE okreล›la poczฤ…tkowy rozmiar pliku, parametr MAXSIZE okreล›la maksymalny rozmiar, jaki moลผe osiฤ…gnฤ…ฤ‡ plik, a parametr FILEGROWTH okreล›la, ile miejsca jest dodawane przy kaลผdym rozszerzeniu pliku. Parametr ten dotyczy zarรณwno plikรณw danych, jak i plikรณw dziennika.

COMPATIBILITY_LEVEL kontroluje, jakiego zachowania przetwarzania zapytaล„ uลผywa baza danych. Aktualne wartoล›ci to 140 (SQL Server 2017), 150 (2019), 160 (2022) i 170 (2025). Polecenie ALTER DATABASE SET COMPATIBILITY_LEVEL zmienia to zachowanie bez przenoszenia bazy danych na nowy serwer.

DROP DATABASE trwale usuwa bazฤ™ danych oraz jej pliki .mdf i .ldf. Wyล‚ฤ…czanie bazy danychLINE zatrzymuje dostฤ™p tylko wtedy, gdy pliki pozostajฤ… na dysku, dziฤ™ki czemu moลผna je pรณลบniej przywrรณciฤ‡ online bez koniecznoล›ci przywracania.

Tak. Drugi pilot GitHub Potrafi tworzyฤ‡ polecenia CREATE DATABASE, ALTER DATABASE i DROP DATABASE z poziomu komunikatรณw w jฤ™zyku naturalnym w programie SSMS lub edytorze. Zawsze sprawdzaj ล›cieลผki, rozmiary i opcje wygenerowanych plikรณw przed uruchomieniem ich na prawdziwym serwerze.

Sztuczna inteligencja i uczenie maszynowe wspomagajฤ… provisioning poprzez rekomendowanie rozmiarรณw plikรณw i ustawieล„ wzrostu, prognozowanie pojemnoล›ci, wykrywanie odchyleล„ konfiguracji i sygnalizowanie ryzykownych operacji DROP lub ALTER. Wspierajฤ… administratora bazy danych, zamiast zastฤ™powaฤ‡ starannฤ… kontrolฤ™.

Podsumuj ten post nastฤ™pujฤ…co: