Skip to main content

Tworzenie baz danych i tabel w SQL

MS SQL #1 (Omówienie, pobranie, tworzenie bazy i tabeli) (Kwiecień 2025)

MS SQL #1 (Omówienie, pobranie, tworzenie bazy i tabeli) (Kwiecień 2025)
Anonim

Czy jesteś gotowy, aby rozpocząć tworzenie baz danych i tabel za pomocą Structured Query Language? W tym artykule zbadamy proces ręcznego tworzenia tabel za pomocą poleceń CREATE DATABASE i CREATE TABLE. Jeśli jesteś początkującym użytkownikiem SQL, najpierw możesz zapoznać się z podstawami SQL.

Wymagania biznesowe

Zanim usiądziemy na klawiaturze, musimy upewnić się, że mamy solidne zrozumienie wymagań klienta. Jaki jest najlepszy sposób uzyskania tego wglądu? Oczywiście rozmawiając z klientem! Po spotkaniu z XYZ's Human Resources Director dowiedzieliśmy się, że są one firmą zajmującą się sprzedażą widżetów i są przede wszystkim zainteresowane śledzeniem informacji o ich personelu sprzedaży.

XYZ Corporation dzieli swoje siły sprzedaży na regiony wschodnie i zachodnie, z których każdy jest podzielony na wiele terytoriów objętych poszczególnymi przedstawicielami handlowymi. Dział HR chciałby śledzić terytorium objęte przez każdego pracownika, a także informacje o wynagrodzeniu każdego pracownika i strukturę nadzoru. Aby spełnić te wymagania, stworzyliśmy bazę danych składającą się z trzech tabel, przedstawionych na diagramie Entity-Relationship na tej stronie.

Wybór platformy bazy danych

Zdecydowaliśmy się użyć systemu zarządzania bazami danych (lub DBMS) opartego na języku SQL (Structured Query Language). Dlatego wszystkie nasze komendy tworzenia bazy danych i tabel powinny być napisane z uwzględnieniem standardowego języka ANSI SQL.

Dodatkową korzyścią jest to, że używanie instrukcji SQL zgodnej z ANSI zapewnia działanie tych poleceń w każdym systemie DBMS obsługującym standard SQL, w tym Oracle i Microsoft SQL Server. Jeśli jeszcze nie wybrano platformy dla bazy danych, opcje oprogramowania bazy danych przeprowadzą użytkownika przez proces selekcji.

Tworzenie bazy danych

Naszym pierwszym krokiem jest stworzenie samej bazy danych. Wiele systemów zarządzania bazami danych oferuje szereg opcji dostosowywania parametrów bazy danych na tym etapie, ale nasza baza danych pozwala tylko na proste utworzenie bazy danych. Podobnie jak w przypadku wszystkich naszych poleceń, możesz chcieć zapoznać się z dokumentacją swojego DBMS, aby ustalić, czy jakiekolwiek zaawansowane parametry obsługiwane przez Twój system spełniają twoje potrzeby. Użyjmy polecenia CREATE DATABASE, aby skonfigurować naszą bazę danych:

STWÓRZ personel DATABASE

Zwróć szczególną uwagę na wielkość liter zastosowaną w powyższym przykładzie. Wśród programistów SQL powszechną praktyką jest używanie wszystkich wielkich liter dla słów kluczowych SQL, takich jak "CREATE" i "DATABASE", przy użyciu wszystkich małych liter dla nazw zdefiniowanych przez użytkownika, takich jak nazwa bazy "personelu". Te konwencje zapewniają łatwą czytelność.

Teraz, gdy zaprojektowaliśmy i stworzyliśmy naszą bazę danych, jesteśmy gotowi rozpocząć tworzenie trzech tabel używanych do przechowywania danych personalnych XYZ Corporation.

Tworzenie naszego pierwszego stołu

Nasz pierwszy stół składa się z danych osobowych każdego pracownika naszej firmy. Musimy podać imię i nazwisko każdego pracownika, wynagrodzenie, identyfikator i menedżera. Dobrą praktyką projektową jest odseparowanie ostatnich i pierwszych imion w oddzielnych polach, aby uprościć wyszukiwanie i sortowanie danych w przyszłości. Będziemy także śledzić każdego menedżera pracownika, wstawiając odniesienie do identyfikatora pracownika menedżera w każdym rekordzie pracownika. Najpierw przyjrzyjmy się pożądanej tabeli pracowników.

Atrybut ReportsTo przechowuje identyfikator menedżera dla każdego pracownika. Z pokazanych przykładowych rekordów możemy ustalić, że Sue Scampi jest menadżerem zarówno Toma Kendalla, jak i Johna Smitha. Jednak w bazie danych nie ma informacji o menedżerze Sue, co wskazuje wpis NULL w jej wierszu.

Teraz możemy użyć SQL do utworzenia tabeli w naszej bazie danych personelu. Zanim to zrobimy, upewnijmy się, że jesteśmy we właściwej bazie danych, wydając polecenie USE:

UŻYWAJ pracowników;

Alternatywnie, "personel DATABASE;" Polecenie wykonałoby tę samą funkcję. Teraz możemy rzucić okiem na polecenie SQL użyte do stworzenia tabeli naszych pracowników:

STWÓRZ TABELE pracowników (employeeid INTEGER NOT NULL, nazwisko VARCHAR (25) NOT NULL, imię VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Podobnie jak w powyższym przykładzie, należy pamiętać, że konwencja programowania nakazuje używanie wszystkich wielkich liter dla słów kluczowych SQL i małych liter dla nazwanych kolumn i tabel. Powyższe polecenie może wydawać się mylące, ale za tym stoi prosta struktura. Oto uogólniony widok, który może trochę wyjaśnić:

UTWÓRZ TABELĘ nazwa_tabeli (attribute_name typy danych, …, opcje nazwa_typu typy danych);

Atrybuty i typy danych

W poprzednim przykładzie nazwa tabeli to pracownicy i uwzględniamy cztery atrybuty: employeeid, lastname, firstname i reportsto. Typ danych wskazuje na rodzaj informacji, które chcemy przechowywać w każdym polu. Identyfikator pracownika jest prostą liczbą całkowitą, więc użyjemy typu typu INTEGER zarówno dla pola employeeid, jak i pola reportsto. Nazwy pracowników będą ciągami znaków o zmiennej długości i nie oczekujemy, że pracownik będzie miał imię lub nazwisko dłuższe niż 25 znaków. Dlatego użyjemy typu VARCHAR (25) dla tych pól.

NULL Wartości

Możemy również podać NULL lub NOT NULL w polu opcji instrukcji CREATE. To po prostu informuje bazę danych, czy wartości NULL (lub puste) są dozwolone dla tego atrybutu podczas dodawania wierszy do bazy danych. W naszym przykładzie dział HR wymaga, aby dla każdego pracownika przechowywano identyfikator pracownika i pełną nazwę. Jednak nie każdy pracownik ma menedżera (dyrektor generalny nikomu nie informuje!), Dlatego dopuszczamy NULL wpisów w tej dziedzinie.Należy zauważyć, że wartość NULL jest wartością domyślną, a pominięcie tej opcji spowoduje niejawnie dopuszczalną wartość NULL dla atrybutu.

Budowanie pozostałych stołów

Teraz spójrzmy na tabelę regionów. Z szybkiego spojrzenia na te dane wynika, że ​​musimy przechowywać liczbę całkowitą i dwa łańcuchy o zmiennej długości. Podobnie jak w poprzednim przykładzie, nie oczekujemy, że identyfikator regionu pochłonie więcej niż 25 znaków. Jednak niektóre z naszych terytoriów mają dłuższe nazwy, więc zwiększymy dozwoloną długość tego atrybutu do 40 znaków.

Spójrzmy na odpowiedni kod SQL:

UTWÓRZ TABLE terytoria (territoryid INTEGER NOT NULL, terytorium Opis VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Wreszcie użyjemy tabeli EmployeeTerritories do przechowywania relacji między pracownikami i terytoriami. Szczegółowe informacje na temat każdego pracownika i terytorium są przechowywane w dwóch poprzednich tabelach. Dlatego musimy tylko przechowywać w tej tabeli dwa numery identyfikacyjne liczby całkowitej. Jeśli potrzebujemy rozszerzyć te informacje, możemy użyć JOIN w naszych komendach wyboru danych, aby uzyskać informacje z wielu tabel.

Ta metoda przechowywania danych redukuje nadmiarowość w naszej bazie danych i zapewnia optymalne wykorzystanie miejsca na naszych dyskach. W przyszłym samouczku omówimy szczegółowo polecenie JOIN. Oto kod SQL do implementacji naszej tabeli finałowej:

CREATE TABLE employeeterritories (employeeid INTEGER NOT NULL, territoryid INTEGER NOT NULL);

Mechanizm SQL umożliwia zmianę struktury bazy danych po utworzeniu

Jeśli jesteś szczególnie wkurzony dzisiaj, być może zauważyłeś, że "przypadkowo" pominęliśmy jeden z wymagań projektowych podczas implementacji naszych tabel bazy danych. Dyrektor ds. HR XYZ Corporation zażądał, aby baza danych śledziła informacje o wynagrodzeniach pracowników i zaniedbaliśmy ich uwzględnienie w tworzonych przez nas tabelach bazy danych.

Jednak, nie wszystko stracone. Możemy użyć polecenia ALTER TABLE, aby dodać ten atrybut do naszej istniejącej bazy danych. Chcemy przechowywać wynagrodzenie jako wartość całkowitą. Składnia jest bardzo podobna do składni polecenia CREATE TABLE, tutaj jest:

ALTER TABLE pracowników DODAJ pensję INTEGER NULL;

Zauważ, że określiliśmy, że dla tego atrybutu dopuszczalne są wartości NULL. W większości przypadków nie ma opcji przy dodawaniu kolumny do istniejącej tabeli. Wynika to z faktu, że tabela zawiera już wiersze bez wpisu dla tego atrybutu. Dlatego DBMS automatycznie wstawia wartość NULL, aby wypełnić pustkę.