Algaja juhend mySQL -i andmebaasiskeemide kirjutamiseks

Algaja juhend mySQL -i andmebaasiskeemide kirjutamiseks

Tarkvaraprojekti väljatöötamisel on üks olulisemaid, põhilisi ja olemuslikke aspekte korralikult struktureeritud andmebaasiskeem. See on samaväärne maja ehitamisel, et tagada vundamendi nõuetekohane paigaldamine, vastasel juhul väheneb kvaliteetse maja ehitamise võimalus drastiliselt.





Üllatavalt lihtsam kui arvata võiks, õpime erinevaid tahke, mida kasutatakse hästi ehitatud andmebaasiskeemi koostamiseks.





kuidas saada aero -teemat Windows 10 -s

TABELI LOOMINE Süntaks

Alustamiseks avage oma lemmiktekstiredaktor. Andmebaasi skeemi loomiseks pole vaja muud kui lihttekstifaili. Andmebaas koosneb mitmest tabelist, millest igaüks koosneb veergudest, ja ühe tabeli loomiseks kasutatakse sünteesi CREATE TABLE. Siin on põhinäide:




CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

Nagu näete, luuakse andmebaasi tabel nimega kasutajatele mis koosneb neljast veerust. See peaks olema üsna sirgjooneline SQL -lause, mis algab LOO TABEL , millele järgneb andmebaasi tabelite nimi, seejärel sulgudes tabeli veerud, mis on eraldatud komaga.

Kasutage õigeid veerutüüpe

Nagu ülal näidatud, on tabeli veerud komadega eraldatud. Iga veeru määratlus koosneb kolmest samast osast:



COL_NAME TYPE [OPTIONS]

Veeru nimi, millele järgneb veeru tüüp, seejärel kõik valikulised parameetrid. Valikuliste parameetritega tutvume hiljem, kuid keskendudes veerutüübile, loetletakse allpool kõige sagedamini kasutatavad veerutüübid:

Kõigi kavatsuste korral on ülaltoodud veerutüübid kõik, mida vajate hästi koostatud mySQL -i andmebaasi skeemide kirjutamiseks.





Määrake veeruvalikud

Veergude määratlemisel saate määrata ka erinevaid valikuid. Allpool on veel üks näide LOO TABEL avaldus:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Ülaltoodu võib tunduda pisut hirmutav, kuid ärge muretsege, see on üsna lihtne. Jaotatuna toimub ülaltoodud avalduses järgmine toiming:





  • Tabeli kiiruse ja toimivuse parandamiseks peaksite alati kasutama NOT NULL -i kõikides veergudes. See lihtsalt täpsustab, et rea lisamisel ei saa veergu tühjaks / tühjaks jätta.
  • Püüdke hoida veeru suurus alati võimalikult väike, kuna see aitab parandada kiirust ja jõudlust.
  • The id veerg on täisarv, see on ka tabeli esmane võti, mis tähendab, et see on ainulaadne ja suureneb iga kord, kui kirje sisestatakse. Seda tuleks üldiselt kasutada kõikides teie loodud tabelites, et saaksite hõlpsalt viidata tabeli ühele reale.
  • The staatus veerg on ENUM ja selle väärtus peab olema „aktiivne” või „mitteaktiivne”. Kui väärtust pole määratud, algab uus rida olekuga „aktiivne”.
  • The tasakaal veerg algab iga uue rea puhul nullist ja on summa, mis vormindatakse kahe kahe kümnendkoha täpsusega.
  • The sünnikuupäev veerg on lihtsalt KUUPÄEV, kuid võimaldab ka nullväärtust, kuna sünnikuupäev ei pruugi loomisel olla teada.
  • Viimaseks, loodud_at veerg on TIMESTAMP ja vaikimisi selle rea lisamise hetkel.

Ülaltoodud on näide kenasti struktureeritud andmebaasitabelist ja seda tuleks edaspidi kasutada näitena.

Üks suurimaid eeliseid relatsiooniliste andmebaaside kasutamisel nagu mySQL on selle suurepärane tugi välisvõti piirangutele ja kaskaadile. See on siis, kui lingite kaks tabelit kokku veeru abil, moodustades vanem -alamsuhte, seega kustutatakse vanemrea kustutamisel automaatselt ka vajalikud alamrid.

Siin on näide:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

Viimase reana märkate klauslit FOREIGN KEY. See rida ütleb lihtsalt, et see tabel sisaldab alamridu, mis on lingitud kasutaja ID veergu oma emareale, mis on id veerg kasutajatele tabel. See tähendab, et iga kord kustutatakse rida kaustast kasutajatele tabelis, kustutab mySQL automaatselt kõik vastavad read tellimusi tabel, mis aitab tagada andmebaasi struktuurilise terviklikkuse.

Pange tähele ka mootor = InnoDB ülaltoodud avalduse lõpus. Kuigi InnoDB on nüüd vaikimisi MySQL -i tabelitüüp, ei olnud see alati nii, nii et see tuleks lisada lihtsalt turvalisuse huvides, kuna kaskaadimine töötab ainult InnoDB tabelitega.

kuidas vabastada mälu Windows 10 -s

Disain enesekindlalt

Olete nüüd oma teel tugevate ja hästi struktureeritud mySQL -i andmebaasiskeemide loomiseks. Ülaltoodud teadmisi kasutades saate nüüd koostada hästi korraldatud skeeme, mis tagavad nii jõudluse kui ka struktuurilise terviklikkuse.

Kui teie skeem on paigas, veenduge, et teate, kuidas seda nendega kasutada olulised SQL -käsud .

Jaga Jaga Piiksuma E -post Kuidas küsida SQL -i ühenduste abil korraga mitut andmebaasitabelit

Siit saate teada, kuidas kasutada SQL -i liitumisi päringute sujuvamaks muutmiseks, aja kokkuhoiuks ja SQL -i energiatarbijana tundmiseks.

Loe edasi
Seotud teemad Autori kohta Matt Dizak(Avaldatud 18 artiklit) Veel Matt Dizakilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin