Kreiranje baza podataka i tabela u SQL-u

Kreiranje baze podataka

Da li ste spremni da započnete kreiranje baza podataka i tabela sa strukturom jezika upita ? U ovom članku istražujemo proces kreiranja tablica ručno pomoću CREATE DATABASE i CREATE TABLE naredbi. Ako ste novi u SQL-u, možda biste želeli prvo da pregledate naš SQL BASICS članak.

Poslovni uslovi

Pre nego što sjednemo na tastaturi, moramo osigurati da imamo solidno razumijevanje zahtjeva kupca. Koji je najbolji način da se dobije ovaj uvid? Razgovarajte s kupcem, naravno! Posle sednice sa direktorom XYZ-a za ljudske resurse, saznali smo da su to prodavnica za prodaju widgeta i da su prvenstveno zainteresovani za praćenje informacija o njihovom prodajnom osoblju.

XYZ korporacija deli svoje prodajne sile u istočne i zapadne regije, od kojih je svaka podeljena na mnoge teritorije pokrivene pojedinačnim reps prodavcima. Odeljenje za ljudske resurse bi želelo da prati teritoriju koju pokriva svaki zaposleni, kao i informacije o platama svakog zaposlenog i supervizora. Da bismo ispunili ove uslove, napravili smo bazu podataka koja se sastoji od tri tabele, prikazanih u dijagramu Entity-Relationship na ovoj stranici.

Izbor platforme baze podataka

Odlučili smo da koristimo sistem upravljanja bazama podataka (ili DBMS) koji je izgrađen na jeziku Structured Query Language (SQL). Prema tome, sve naše baze podataka i naredbe za kreiranje tablice trebaju biti napisane s standardnim ANSI SQL-om.

Kao dodatna prednost, korištenjem ANSI-kompatibilnog SQL-a će se osigurati da ove komande rade na bilo kojoj bazi podataka koja podržava SQL standard , uključujući Oracle i Microsoft SQL Server. Ako još niste odabrali platformu za svoju bazu podataka, članak Opcije softvera baze podataka vas šeta kroz proces selekcije.

Kreiranje baze podataka

Naš prvi korak je stvaranje same baze podataka. Mnogi sistemi za upravljanje bazama podataka nude niz opcija prilagođavanja parametara baze podataka na ovom koraku, ali naša baza podataka dozvoljava jednostavno kreiranje baze podataka. Kao i kod svih naših naredbi, možda ćete želeti da konsultujete dokumentaciju za vašu DBMS da biste utvrdili da li neki napredni parametri podržani od strane vašeg specifičnog sistema odgovaraju vašim potrebama. Koristimo naredbu CREATE DATABASE da podesite našu bazu podataka:

CREATE DATABASE osoblje

Uzmite posebnu napomenu o kapitalizaciji koja se koristi u prethodnom primeru. Uobičajena praksa među SQL programerima je da koriste sva velika slova za SQL ključne riječi kao što su "CREATE" i "DATABASE" dok koriste sve male slova za korisničko definisana imena kao što je naziv osoblja. Ove konvencije obezbeđuju lako čitljivost.

Nastavite sa čitanjem ovog tutoriala dok kreiramo tabele za našu bazu podataka.

Učite više

Ako želite da saznate više o strukturiranom jeziku upita , pročitajte Uvod u SQL ili se prijavite za naš besplatni kurs Learning SQL e-mail.

Sada kada smo dizajnirali i kreirali našu bazu podataka, spremni smo da započnemo stvaranje tri tabele koje se koriste za čuvanje podataka o kadrovima kompanije XYZ Corporation. Mi ćemo realizovati tablice koje smo dizajnirali u prethodnom dijelu ovog tutoriala.

Stvaranje našeg prvog stola

Naša prva tabela sastoji se od ličnih podataka za svakog zaposlenog u našoj kompaniji. Moramo uključiti ime svakog zaposlenog, platu, identifikaciju i menadžer. Dobra praksa dizajniranja je da razdvojite zadnja i druga imena u zasebna polja da biste pojednostavili pretraživanje i sortiranje podataka u budućnosti. Takođe, pratimo menadžer svakog zaposlenog tako što ćemo uneti referencu na ID zaposlenog menadžera u svakom zapisniku radnika. Hajde prvo pogledati željenu tablicu zaposlenih.

Atribut ReportsTo čuva ID menadžera za svakog zaposlenog. Iz prikazanih uzoraka možemo utvrditi da je Sue Scampi menadžer Tom Kendall i John Smith. Međutim, u bazi podataka o Sueovom menadžeru nema podataka, što je pokazano unosom NULL u njenom redu.

Sada možemo koristiti SQL da kreiramo tablicu u našoj kadrovskoj bazi podataka. Prije nego to uradimo, obezbedimo da smo u ispravnoj bazi podataka izdavanjem USE naredbe:

Osoblje USE;

Alternativno, "baza podataka"; naredba bi izvršila istu funkciju. Sada možemo pogledati SQL naredbu koja se koristi za kreiranje tabele zaposlenih:

CREATE TABLE zaposleni (employeeid INTEGER NOT NULL, prezime VARCHAR (25) NIJE NULL, prvo ime VARCHAR (25) NIJE NULL, prijaviti INTEGER NULL);

Kao i sa prethodnim primjerom, imajte na umu da programska konvencija diktira da koristimo sva velika slova za SQL ključne riječi i mala slova za stupce i tabele korisničkih imena. Gornja komanda može izgledati zbunjujuće u početku, ali ustvari postoji jednostavna struktura iza nje. Evo generalizovanog prikaza koji bi mogao malo razjasniti stvari:

CREATE TABLE table_name (atribut_name opcije podataka tipa podataka, ..., atribut_name opcija podataka tipa podataka);

Atributi i tipovi podataka

U prethodnom primjeru, ime tablice je zaposleno i uključujemo četiri atributa: employeeid, prezime, ime i reportsto. Tip podataka označava vrstu informacija koju želimo da sačuva u svakom polju. ID radnika je jednostavan broj cijelog broja, tako da ćemo koristiti tip podataka INTEGER za polja zaposlenog i polje za prijavu. Imena zaposlenih će biti karakterni nizovi promenljive dužine i ne očekujemo od bilo kog zaposlenog da ima ime ili prezime duže od 25 karaktera. Stoga ćemo koristiti VARCHAR (25) tip za ova polja.

Vrednosti NULL

Takođe možemo odrediti NULL ili NOT NULL u polju opcija CREATE izraza. Ovo jednostavno govori bazu podataka da li su dozvoljene NULL (ili prazne) vrijednosti za taj atribut prilikom dodavanja redova u bazu podataka. U našem primeru, odeljenje za ljudske resurse zahtijeva da se zaposlenog ID-a i kompletnog imena čuvaju za svakog zaposlenog. Međutim, svaki zaposleni nema menadžera - izvršni direktor nikome ne izveštava! - tako da dozvoljavamo unos NULL u tom polju. Imajte na umu da je NULL podrazumevana vrednost, a ispuštanje ove opcije će implicitno dozvoliti NULL vrijednosti za atribut.

Izgradnja preostalih tabela

Sada da pogledamo tabelu teritorija. Iz brzog pogleda na ove podatke, čini se da moramo čuvati cijeli broj i dvije varijable dužine. Kao i kod prethodnog primera, ne očekujemo da će ID regiona potrošiti više od 25 karaktera. Međutim, neke naše teritorije imaju duža imena, tako da ćemo proširiti dozvoljenu dužinu tog atributa na 40 znakova. Pogledajmo odgovarajući SQL:

CREATE TABLE teritorije (teritorij INTEGER NOT NULL, teritorija Opis VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Na kraju, koristićemo tablicu EmployeeTerritories za čuvanje odnosa između zaposlenih i teritorija. Detaljne informacije o svakom zaposlenom i teritoriji čuvaju se u našim prethodnim tabelama. Zbog toga, potrebno je samo sačuvati identifikacione brojeve cijelog broja u ovoj tabeli. Ako trebamo proširiti ove informacije možemo koristiti JOIN u našim naredbama za odabir podataka kako bi dobili informacije iz više tabela. Ovaj način čuvanja podataka smanjuje redundantnost u našoj bazi podataka i osigurava optimalno korišćenje prostora na našim disk jedinicama. Detaljnu komandu ćemo pokriti u budućem tutorialu. Evo SQL koda za implementaciju naše finalne tablice:

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

SQL mehanizam obezbeđuje izmenu strukture baze podataka nakon kreiranja

Ako ste posebno zapanjujući danas, možda ste primetili da smo "slučajno" izostavili jedan od zahteva za projektovanje prilikom implementacije naših tabela baze podataka. Direktor HR XYZ korporacije tražio je da baza podataka prati podatke o platama zaposlenih i zanemarili smo se da to obezbedimo u tablicama baze podataka koje smo kreirali.

Međutim, sve nije izgubljeno. Mi možemo koristiti komandu ALTER TABLE da dodamo ovaj atribut u našu postojeću bazu podataka. Mi želimo da plata čuvamo kao celovitu vrijednost. Sintaksa je prilično slična onoj u naredbi CREATE TABLE, ovdje je:

ALTER TABLE zaposleni ADD plata INTEGER NULL;

Imajte na umu da smo precizirali da su vrijednosti NULL dozvoljene za ovaj atribut. U većini slučajeva, ne postoji opcija prilikom dodavanja kolone postojećoj tablici. Ovo se zasniva na činjenici da tabela već sadrži redove bez unosa za ovaj atribut. Prema tome, DBMS automatski ubacuje vrijednost NULL da popuni prazninu.

I to se odnosi na SQL bazu i proces kreiranja stola. Često proveravajte za nove rate u našoj SQL tutorijalnoj seriji. Ako želite podsetnik za e-poštu kada se novi članci dodaju na stranicu O baze podataka, obavezno se pretplatite na naš newsletter!