Ustvarjanje baz podatkov in tabel v SQL

click fraud protection

Ali ste pripravljeni začeti ustvarjati zbirke podatkov in tabele z Strukturirani povpraševalni jezik za delo s podatkovnimi bazami? V tem članku raziskujemo postopek ročnega ustvarjanja tabel z ukazoma CREATE DATABASE in CREATE TABLE. Če SQL ne poznate, ga boste morda želeli pregledati Osnove SQL najprej.

Poslovne zahteve

Preden se usedemo za tipkovnico, moramo zagotoviti, da dobro razumemo zahteve kupca. Kateri je najboljši način za pridobitev tega vpogleda? Pogovor s stranko, seveda! Potem ko smo se posedli z direktorjem kadrovske službe podjetja XYZ, smo izvedeli, da gre za prodajalce pripomočkov in jih zanima predvsem sledenje informacij o njihovem prodajnem osebju.

XYZ Corporation svojo prodajno silo deli na vzhodno in zahodno regijo, od katerih je vsaka razdeljena na številna ozemlja, ki jih pokrivajo posamezna prodajna predstavništva. Kadrovska služba bi rada spremljala ozemlje, ki ga pokriva vsak zaposleni, ter podatke o plačah in nadzorni strukturi vsakega zaposlenega. Da bi izpolnili te zahteve, smo oblikovali bazo podatkov, sestavljeno iz treh tabel, prikazanih v

instagram viewer
Diagram entiteta-odnos na tej strani.

Izbira platforme baze podatkov

Odločili smo se, da uporabimo sistem za upravljanje baz podatkov (ali DBMS), ki temelji na jeziku strukturiranih poizvedb (SQL). Zato bi morali biti vsi ukazi za ustvarjanje baze podatkov in tabel napisani z mislijo na standardni ANSI SQL.

Kot dodatna prednost bo uporaba SQL, skladnega z ANSI, zagotovila, da bodo ti ukazi delovali v vseh DBMS, ki podpirajo standard SQL, vključno z Oracle in Microsoft SQL Server. Če še niste izbrali platforme za svojo bazo podatkov, vas programske možnosti baze podatkov vodijo skozi postopek izbire.

Ustvarjanje baze podatkov

Naš prvi korak je ustvariti samo bazo podatkov. Številni sistemi za upravljanje baz podatkov v tem koraku ponujajo vrsto možnosti za prilagajanje parametrov baze podatkov, vendar naša baza podatkov omogoča samo preprosto ustvarjanje baze podatkov. Kot pri vseh naših ukazih se boste morda želeli seznaniti z dokumentacijo za svoj DBMS in ugotoviti, ali kateri od naprednih parametrov, ki jih podpira vaš specifični sistem, ustreza vašim potrebam. Za nastavitev naše baze podatkov uporabimo ukaz CREATE DATABASE:

USTVARITE Osebje

Posebej upoštevajte uporabo velikih začetnic v zgornjem primeru. Običajna praksa programerjev SQL je, da za ključne besede SQL uporabljajo vse velike črke, kot je "USTVARI" in "DATABASE", medtem ko uporabljate vse male črke za uporabniško določena imena, kot je baza podatkov "personal" ime. Te konvencije omogočajo enostavno berljivost.

Zdaj, ko smo oblikovali in ustvarili svojo bazo podatkov, smo pripravljeni začeti ustvarjati tri tabele, ki se uporabljajo za shranjevanje osebnih podatkov podjetja XYZ Corporation.

Ustvarjanje naše prve mize

Naša prva tabela je sestavljena iz osebnih podatkov za vsakega zaposlenega v našem podjetju. Vključiti moramo ime, plačo, osebno izkaznico in vodjo vsakega zaposlenega. Dobra praksa oblikovanja je, da ločite priimke in imena na ločena polja, da boste v prihodnosti poenostavili iskanje in razvrščanje podatkov. Prav tako bomo spremljali vodjo vsakega zaposlenega, tako da bomo v evidenco vsakega zaposlenega vstavili sklic na ID zaposlenega. Najprej si oglejmo želeno tabelo zaposlenih.

Atribut ReportsTo shrani ID upravitelja za vsakega zaposlenega. Iz prikazanih vzorčnih zapisov lahko ugotovimo, da je Sue Scampi vodja Toma Kendalla in Johna Smitha. Vendar v bazi podatkov ni podatkov o upravitelju Sue, kot je navedeno v NULL vnosu v njeni vrstici.

Zdaj lahko s pomočjo SQL ustvarimo tabelo v naši zbirki osebja. Preden to storimo, z izdajo ukaza USE zagotovimo, da smo v pravi zbirki podatkov:

USE osebje;

Druga možnost je "Osebje DATABASE;" ukaz bi opravljal isto funkcijo. Zdaj si lahko ogledamo ukaz SQL, ki se uporablja za ustvarjanje tabele naših zaposlenih:

USTVARITE TABELO zaposlenih
(workerid INTEGER NOT NULL,
priimek VARCHAR (25) NOT NULL,
ime VARCHAR (25) NOT NULL,
poročilo za INTEGER NULL);

Kot pri zgornjem primeru upoštevajte, da tudi programska konvencija narekuje, da za ključne besede SQL uporabljamo vse velike črke in male črke za uporabniško poimenovane stolpce in tabele. Zgornji ukaz se sprva zdi zmeden, toda v resnici je za njim preprosta struktura. Tu je posplošen pogled, ki bi lahko nekoliko razčistil stvari:

USTVARI TABELO ime_tabele
(možnosti atributa_ime podatkovnega tipa,
...,
možnosti atributa_ime podatkovnega tipa);

Atributi in vrste podatkov

V prejšnjem primeru je ime tabele zaposleni in vključujemo štiri lastnosti: uslužbenec, priimek, ime in poročilo. Tip podatkov označuje vrsto informacij, ki jih želimo shraniti v posamezno polje. ID zaposlenega je navadna celoštevilčna številka, zato bomo uporabili tip podatkov INTEGER tako za polje workerid kot za polje reportsto. Imena zaposlenih bodo nizov znakov s spremenljivo dolžino in ne pričakujemo, da bo imel kateri koli zaposleni ime ali priimek, daljši od 25 znakov. Zato bomo za ta polja uporabili vrsto VARCHAR (25).

NULL Vrednosti

Lahko tudi določimo katero koli NULL ali NE NULL v polju možnosti stavka CREATE. To preprosto pove bazi podatkov, ali so za dodajanje vrstic v bazo podatkov dovoljene vrednosti NULL (ali prazne) za ta atribut. V našem primeru kadrovska služba zahteva, da se za vsakega zaposlenega shranijo ID in popolno ime zaposlenega. Vendar nima vsak zaposleni vodje (izvršni direktor nikomur ne poroča!), Zato na tem področju dovoljujemo NULL vnose. Upoštevajte, da je privzeta vrednost NULL in če izpustite to možnost, bo implicitno dovoljena vrednost NULL za atribut.

Izdelava preostalih tabel

Zdaj pa si oglejmo tabelo ozemelj. Iz hitrega pogleda na te podatke je videti, da moramo shraniti celo število in dva niza s spremenljivo dolžino. Kot pri našem prejšnjem primeru ne pričakujemo, da bo ID regije zasedel več kot 25 znakov. Nekatera naša ozemlja pa imajo daljša imena, zato bomo dovoljeno dolžino tega atributa razširili na 40 znakov.

Poglejmo si ustrezen SQL:

USTVARI TABELO ozemelj
(teritorialid INTEGER NOT NULL,
ozemlje Opis VARCHAR (40) NOT NULL,
regionid VARCHAR (25) NOT NULL);

Na koncu bomo uporabili tabelo EmployeeTerritories za shranjevanje odnosov med zaposlenimi in ozemlji. Podrobne informacije o vsakem zaposlenem in ozemlju so shranjene v naših prejšnjih dveh tabelah. Zato moramo v to tabelo shraniti le dve celoštevilčni identifikacijski številki. Če moramo te informacije razširiti, lahko uporabimo JOIN v ukazih za izbiro podatkov, da pridobimo informacije iz več tabel.

Ta način shranjevanja podatkov zmanjšuje redundanco v naši bazi podatkov in zagotavlja optimalno izrabo prostora na naših shranjevalnih pogonih. Ukaz JOIN bomo podrobneje opisali v prihodnji vadnici. Tu je koda SQL za izvedbo naše končne tabele:

USTVARI MESTA za zaposlene
(workerid INTEGER NOT NULL,
teritorialid INTEGER NOT NULL);

Mehanizem SQL omogoča spreminjanje strukture baze podatkov po ustvarjanju

Če ste danes še posebej pronicljivi, ste morda opazili, da smo pri uvajanju tabel zbirke podatkov "pomotoma" izpustili eno od zahtev glede zasnove. Kadrovski direktor XYZ Corporation je zahteval, da zbirka podatkov spremlja podatke o plačah zaposlenih, in tega nismo upoštevali v tabelah zbirke podatkov, ki smo jih ustvarili.

Vendar vse ni izgubljeno. Ukaz ALTER TABLE lahko uporabimo za dodajanje tega atributa v obstoječo bazo podatkov. Plačo želimo shraniti kot celoštevilčno vrednost. Sintaksa je precej podobna sintaksi ukaza CREATE TABLE, tukaj je:

ALTER TABLE zaposleni
DODAJ plačo INTEGER NULL;

Upoštevajte, da smo določili, da so za ta atribut dovoljene vrednosti NULL. V večini primerov pri dodajanju stolpca obstoječi tabeli ni možnosti. To je posledica dejstva, da tabela že vsebuje vrstice brez vnosa za ta atribut. Zato DBMS samodejno vstavi NULL vrednost, da zapolni praznino.

instagram story viewer