SQL varalica

Uvodna slika SQL varalice


U ovom ćete vodiču pronaći korisni cheat list koji dokumentira neke od najčešće korištenih elemenata SQL-a, pa čak i nekoliko manje uobičajenih. Nadamo se da će pomoći programerima – i početnicima i iskusnim razinama – da postanu spremniji u razumijevanju SQL jezika.

Koristite ovo kao kratku referencu tijekom razvoja, pomagala za učenje ili ga čak ispisujte i povežite ako želite (što god radi!).

Ali prije nego što prijeđemo na sam cheat sheet, za programere koji možda nisu upoznati sa SQL-om, krenimo s…

Što je SQL

SQL znači strukturirani jezik upita. To je jezik izbora na današnjem webu za pohranu, manipuliranje i dohvaćanje podataka u relacijskim bazama podataka. Većina, ako ne svi web stranica koje posjetite upotrebljavat će ih na neki način, uključujući ovaj jedan.

Evo kako izgleda osnovna relacijska baza podataka. Ovaj primjer posebno pohranjuje podatke o e-trgovini, posebno proizvode na prodaju, korisnike koji ih kupuju i zapise o ovim narudžbama koje povezuju ova dva entiteta.

Osnovna relacijska baza podataka

Pomoću SQL-a u mogućnosti ste komunicirati s bazom podataka pišući upite koji, kada se izvršavaju, vraćaju sve rezultate koji ispunjavaju njegove kriterije.

Evo primjera upita:-

ODABIR * OD korisnika;

Pomoću ove izjave SELECT, upit bira sve podatke iz svih stupaca u korisničkoj tablici. Zatim će vratiti podatke poput dolje navedenog, što se obično naziva skup rezultata:-

Primjer tablice korisnika

Ako bismo umjesto zamjenskog znaka zvjezdice (*) zamijenili određenim imenima stupaca, iz upita bi se vratili samo podaci iz tih stupaca.

ODABERITE ime i prezime, PRIJAVE OD korisnika;

Primjer tablice korisnika sa smanjenim stupcima

Možemo dodati malo složenosti u standardnu ​​izjavu SELECT dodavanjem rečenice WHERE, koja vam omogućuje filtriranje onoga što se vrati.

ODABIR * OD proizvoda GDJE zaliha <= 10 ORDER BY stock_count ASC;

Ovaj bi upit vratio sve podatke iz tablice s proizvodima čija je vrijednost zaliha manja od 10 u skupu rezultata.

Upotreba ključne riječi ORDER BY znači da će se rezultati poredati pomoću stupca stock_count, od najnižih do najviših vrijednosti.

Primjer tablice proizvoda

Pomoću izraza INSERT INTO možemo dodati nove podatke u tablicu. Evo osnovnog primjera dodavanja novog korisnika u tablicu korisnika:-

INSERT INTO korisnike (ime, prezime, adresa, e-pošta)
VRIJEDNOSTI ('Tester', 'Jester', '123 Lažna ulica, Sheffield, Ujedinjeno Kraljevstvo', '[zaštićen e-poštom]');

Ako biste tada ponovo pokrenuli upit za vraćanje svih podataka iz korisničke tablice, skup rezultata izgledao bi ovako:

Primjer tablice s novim retkom

Naravno, ovi primjeri pokazuju samo vrlo mali izbor onoga za što je SQL jezik sposoban.

SQL vs MySQL

Možda ste već čuli za MySQL. Važno je da to ne brkate sa samim SQL-om, jer postoji jasna razlika.

SQL vs MySQLSQL je Jezik. Opisuje sintaksu koja vam omogućuje pisanje upita za upravljanje relacijskim bazama podataka. Ništa više.

MySQL u međuvremenu je baza podataka sustav koji se pokreće na poslužitelju. To provodi jezika SQL, omogućujući vam pisanje upita koristeći njegovu sintaksu za upravljanje MySQL bazama podataka.

Pored MySQL-a, postoje i drugi sustavi koji implementiraju SQL. Neki od popularnijih uključuju:

  • PostgreSQL
  • SQLite
  • Oracle baza podataka
  • Microsoft SQL Server

Instaliranje MySQL-a

Windows

Preporučeni način instaliranja MySQL-a na Windows jest instalacijski program kojeg možete preuzeti s Windows-a Web mjesto MySQL.

Instalirajte MySQL Windows

MacOS

Na macOS-u preporučeni način instaliranja MySQL-a koristi izvorne pakete, što zvuči mnogo složenije nego što zapravo jest. U osnovi to uključuje i samo preuzimanje instalacijski.

Instalirajte MySQL Mac

Alternativno, ako više volite koristiti upravitelje paketa poput Homebrew, možete instalirati MySQL ovako:

pivo instalirati mysql

Iako trebate instalirati stariju verziju 5.7 MySQL, koja se i danas široko koristi na webu, možete:

brew install [zaštita e-pošte]

Korištenje MySQL-a

S MySQL-om koji je sada instaliran na vašem sustavu, da biste što prije uspostavili i krenuli pisati SQL upite, preporučuje se upotreba SQL aplikacije za upravljanje kako bi upravljanje bazama podataka bilo mnogo jednostavniji i lakši postupak.

Puno je aplikacija koje možete odabrati između kojih uglavnom rade isti posao, tako da je sve o vašim osobnim željama koje ćete koristiti:

  • MySQL Workbench je razvio Oracle, vlasnik MySQL-a.
  • HeidiSQL (Preporučuje se Windows) je besplatna, open-source aplikacija za Windows. Za korisnike macOS-a i Linuxa, Vino prvo se traži kao preduvjet.
  • phpMyAdmin je vrlo popularna alternativa koja djeluje u web-pregledniku.
  • Sequel Pro (Preporučeni macOS) je jedina alternativa macOS-a i naša omiljena zahvaljujući jasnom i laganom sučelju.

Kad ste spremni započeti pisati vlastite SQL upite, umjesto da trošite vrijeme na stvaranje vlastite baze podataka, razmislite o tome da uvezete lažne podatke.

Web stranica MySQL pruža niz lutke baze podataka koju možete besplatno preuzeti, a zatim uvesti u svoju SQL aplikaciju.

Dummy baza podataka MySQL

Naš omiljeni od ovih je svijet baza podataka koja sadrži neke zanimljive podatke za vježbanje pisanja SQL upita. Evo snimke zaslona njene zemlje u Sequel Pro-u.

Primjer Sequel Pro

Ovaj primjer upita vraća sve zemlje s kraljicom Elizabetom II kao svojom državom ����.

Primjer Sequel Pro

Iako ova država vraća sve europske zemlje s preko 50 milijuna stanovnika, zajedno s njihovim glavnim gradom i njegovim stanovništvom.

Primjer Sequel Pro

I ovaj zadnji vraća prosječni postotak govornika francuskog jezika u zemljama u kojima je ukupni broj govornika francuskog jezika veći od 10%.

Primjer Sequel Pro

Šalabahter

ključne riječi

Zbirka ključnih riječi koja se koristi u SQL izjavama, opis i, prema potrebi, primjer. Neke naprednije ključne riječi imaju vlastiti zasebni odjeljak kasnije na varalici.

Ako se MySQL spominje pored primjera, to znači da je ovaj primjer primjenjiv samo na MySQL baze podataka (za razliku od bilo kojeg drugog sustava baza podataka).

SQL ključne riječi
RiječOpis
DODATIDodaje novi stupac u postojeću tablicu.

Primjer: Dodaje novi stupac pod nazivom "adresa e-pošte" u tablicu pod nazivom "korisnici".

Korisnici ALTER TABLE
DODATI adresu e-pošte varchar (255);
DODAJTE OGRANIČENJETo stvara novo ograničenje na postojećoj tablici, koje se koristi za određivanje pravila za sve podatke u tablici.

Primjer: Dodaje novo ograničenje PRIMARNOG KLJUKA pod nazivom "korisnik" na ID stupca i PREZIME.

Korisnici ALTER TABLE
DODAJTE OGRANIČENJE korisnika PRIMARNI KLJUČ (ID, PREZIME);
ALTER TABELADodaje, briše ili uređuje stupce u tablici. Također se može koristiti za dodavanje i brisanje ograničenja u tablici, prema gore navedenom.

Primjer: Dodaje novi logički stupac nazvan "odobren" u tablicu pod nazivom "ponude".

ALTER TABLE ponude
ADD odobrio boolean;

Primjer 2: Izbriše stupac "odobren" iz tablice "ponude"

ALTER TABLE ponude
DROP COLUMN odobren;
ALTER COLUMNPromijeni vrstu podataka u stupcu tablice.

Primjer: U tablici "korisnici" stavite stupac "incept_date" u vrstu "datumsko vrijeme".

Korisnici ALTER TABLE
ALTER COLUMN incept_date datumsko vrijeme;
SVIVraća true ako sve vrijednosti podupitava ispunjavaju proslijeđeni uvjet.

Primjer: Vraća korisnike sa većim brojem zadataka od korisnika s najvećim brojem zadataka u odjelu za ljudske resurse (id 2)

ODABIR ime i prezime, prezime, zadatak
OD korisnika
GDJE zadaci_no> SVE (ODABIR zadatka korisnika GDJE departman_id = 2);
IKoristi se za pridruživanje zasebnih uvjeta unutar klase WHERE.

Primjer: Povratak događaja koji se nalaze u Londonu, Ujedinjeno Kraljevstvo

ODABIR * OD događaja
WHERE host_country = 'Ujedinjeno Kraljevstvo' AND host_city = 'London';
BILOVraća true ako bilo koja od vrijednosti podupitava ispunjava zadani uvjet.

Primjer: Vraća proizvode iz tablice proizvoda koji su primili narudžbe - pohranjene u tablici s narudžbama - s količinom većom od 5.

ODABIR imena
OD proizvoda
GDJE productId = BILO (ODABIRI PROIZVODA IZ NAROČENJA GDJE količina> 5);
KAOPreimenuje tablicu ili stupac s pseudonimom vrijednosti koja postoji samo tijekom trajanja upita.

Primjer: Stupac za ublažavanje sjever_east_user_subscriptions

SELECT sjever_east_user_subscriptions AS ne_subs
OD korisnika
GDJE ne_subs> 5;
ASCKoristi se s ORDER BY za vraćanje podataka u rastućem redoslijedu.

Primjer: Jabuke, banane, breskve, radič

IZMEĐUOdabir vrijednosti u zadanom rasponu.

Primjer 1: Odabir zaliha s količinom između 100 i 150.

ODABIR * IZ zaliha
GDJE količina IZMEĐU 100 I 150;

Primjer 2: Odabire zalihe s količinom NE između 100 i 150. Alternativno, ovdje pomoću ključne riječi NOT poništava logiku i odabire vrijednosti izvan određenog raspona.

ODABIR * IZ zaliha
GDJE količina NE PREKO 100 I 150;
SLUČAJPromjena rezultata upita ovisno o uvjetima.

Primjer: Vraća korisnike i njihove pretplate, zajedno s novim stupcem pod nazivom Activity_levels koji donosi prosudbu na temelju broja pretplata.

ODABERITE ime i prezime, pretplate
SLUČAJ KADA pretplate> 10 THEN "Vrlo aktivno"
KADA količina između 3 i 10 nakon toga "aktivna"
ELSE 'Neaktivan'
END AS_silve aktivnosti
OD korisnika;
ČEKDodaje ograničenje koje ograničava vrijednost koja se može dodati stupcu.

Primjer 1 (MySQL): Provjerite jesu li svi korisnici dodani u tablicu korisnika stariji od 18 godina.

CREATE TABLE korisnika (
ime varchar (255),
dob int,
PROVJERITE (dob> = 18)
);

Primjer 2 (MySQL): Dodaje ček nakon što je tablica već stvorena.

Korisnici ALTER TABLE
DODATNA PROVJERA (dob> = 18);
KREIRAJTE BAZUStvara novu bazu podataka.

Primjer: Stvara novu bazu podataka pod nazivom "websitesetup".

IZRADITE BAZU DATABASE websitesetup;
USTVARITE TABELUStvara novu tablicu .

Primjer: Stvara novu tablicu pod nazivom "korisnici" u bazi podataka "websitesetup".

CREATE TABLE korisnika (
id int,
ime varchar (255),
prezime varchar (255),
adresa varchar (255),
contact_number int
);
ZADANOPostavlja zadanu vrijednost za stupac;

Primjer 1 (MySQL): Stvara novu tablicu pod nazivom Proizvodi koja sadrži stupac imena sa zadanom vrijednošću "Ime rezerviranog mjesta" i stupac available_from sa zadanom vrijednosti današnjeg datuma.

PROIZVODITE TABELE (
id int,
ime varchar (255) DEFAULT 'Ime rezerviranog mjesta',
dostupno_ od datuma DEFAULT GETDATE ()
);

Primjer 2 (MySQL): Isto kao gore, ali uređivanje postojeće tablice.

Proizvodi ALTER TABLE
ALTER ime SET DEFAULT "Ime rezerviranog mjesta",
ALTER dostupno_od SET DEFAULT GETDATE ();
IZBRISATIIzbrišite podatke iz tablice.

Primjer: Uklanja korisnika s korisničkim ID-om 674.

IZUZETI OD korisnika GDJE user_id = 674;
DESCKoristi se s ORDER BY za vraćanje podataka u silaznom redoslijedu.

Primjer: Raddish, breskve, banane, jabuke

DROP COLUMNBrisanje stupca iz tablice.

Primjer: Uklanja stupac prvog imena iz korisničke tablice.

Korisnici ALTER TABLE
DROP COLUMN prvo ime
DROBNA BAZABrisanje cijele baze podataka.

Primjer: Brisanje baze podataka pod nazivom "websitesetup".

DROP DATABASE websitesetup;
DROP DEFAULTUklanja zadanu vrijednost za stupac.

Primjer (MySQL): Uklanja zadanu vrijednost iz stupca "ime" u tablici "proizvodi".

Proizvodi ALTER TABLE
ALTER COLUMN naziv DROP DEFAULT;
DROPI STOLBrisanje tablice iz baze podataka.

Primjer: Uklanja tablicu korisnika.

DROP TABLE korisnici;
POSTOJIProvjerava postojanje bilo kojeg zapisa unutar podupita, vraća se istinito ako se vrati jedan ili više zapisa.

Primjer: Navodi sve zastupnike s postotkom financiranja posla manjim od 10.

SELECT ime zastupnika
IZ zastupništva
GDJE POSTOJI (ODABERITE naziv ugovora IZ ponude GDJE zastupstvo_id = ponude.delerske_id I finansije_procent < 10);
IZOdređuje iz koje će se tablice odabrati ili izbrisati podaci.

Primjer: Odabir podataka iz tablice korisnika.

SELECT area_manager
FROM area_managers
GDJE POSTOJI (ODABIR PROIZVODA proizvoda OD proizvoda GDJE area_manager_id = offers.area_manager_id I cijena < 20);
UKoristi se uz rečenicu WHERE kao skraćenica za višestruke uvjete ILI.

Pa umjesto:-

SELECT * OD korisnika
GDJE država = 'SAD' ILI država = 'Velika Britanija' ILI zemlja = 'Rusija' ILI zemlja = 'Australija';

Možeš koristiti:-

SELECT * OD korisnika
GDJE se zemlja nalazi („SAD“, „Velika Britanija“, „Rusija“, „Australija“);
UMETNUTI UDodajte nove retke u tablicu.

Primjer: Dodaje novo vozilo.

INSERT INTO automobile (marka, model, kilometraža, godina)
VRIJEDNOSTI ('Audi', 'A3', 30000, 2016);
NIJE NULLIspitivanja praznih (NULL) vrijednosti.

Primjer: Vraća korisnike koji nisu dali kontakt broj.

SELECT * OD korisnika
GDJE je kontaktni broj NULL;
NIJE NULLObrnuto od NULL. Testovi za vrijednosti koje nisu prazne / NULL.
KAOVraća true ako vrijednost operanda odgovara obrascu.

Primjer: Vraća se istinito ako korisničko ime završi sa "sin".

SELECT * OD korisnika
GDJE prvo ime LIKE '% son';
NEVraća se true ako zapis NE ispunjava uvjet.

Primjer: Vraća se istina ako korisničko ime ne završava sa "sin".

SELECT * OD korisnika
GDJE ime_NIJE LIKE '% son';
ILIKoristi se uz GDJE za uključivanje podataka kada je bilo koji uvjet istinit.

Primjer: Vraća korisnike koji žive u Sheffieldu ili Manchesteru.

SELECT * OD korisnika
GDJE grad = 'Sheffield' ILI 'Manchester';
NARUČITE POKoristi se za sortiranje rezultata rezultata uzlaznim (zadanim) ili silaznim redoslijedom korištenjem ASC ili DESC ključnih riječi.

Primjer: Vraća zemlje abecednim redom.

ODABIR * IZ zemalja
NARUČITE PO nazivu;
ROWNUMVraća rezultate tamo gdje broj retka zadovoljava prošli uvjet.

Primjer: Vraća prvih 10 zemalja iz tablice zemalja.

ODABIR * IZ zemalja
GDJE ROWNUM <= 10;
ODABERIKoristi se za odabir podataka iz baze podataka koji se zatim vraćaju u skup rezultata.

Primjer 1: Odabire sve stupce od svih korisnika.

ODABIR * OD korisnika;

Primjer 2: Odabire stupce imena i prezimena od svih korisnika.xx

ODABERITE ime i prezime, prezime OD korisnika;
ODABIR DISTINCTImena su SELECT, osim dupliciranih vrijednosti.

Primjer: Stvara sigurnosnu kopiju pomoću podataka iz tablice korisnika.

IZBOR * U INO korisnikeBackup2020
OD korisnika;
IZBORITE U INOKopira podatke iz jedne tablice i ubacuje ih u drugu.

Primjer: Vraća sve zemlje iz korisničke tablice uklanjajući duplicirane vrijednosti (što bi bilo vrlo vjerovatno)

ODABIR DISTINCT države od korisnika;
ODABIR TOPOmogućuje vam vraćanje određenog broja zapisa za povratak iz tablice.

Primjer: Vraća top 3 automobila s tablice automobila.

ODABIR TOP 3 * OD automobila;
SETKoristi se uz UPDATE za ažuriranje postojećih podataka u tablici.

Primjer: Ažurira vrijednosti vrijednosti i količine za narudžbu sa idom 642 u tablici naloga.

UPDATE narudžbe
SET vrijednost = 19,49, količina = 2
GDJE id = 642;
NEKIIstičan za bilo koga.
VRHKoristi se uz SELECT za vraćanje zadanog broja zapisa iz tablice.

Primjer: Vraća prvih 5 korisnika iz tablice korisnika.

ODABIR TOP 5 * OD korisnika;
TRUNCATNA TABELASlično je s DROP-om, ali umjesto brisanja tablice i njenih podataka, on briše samo podatke.

Primjer: Ispraznjava stol sesije, ali sam ostavlja tablicu netaknutom.

TRUNCATE TABLE sesije;
UNIJAKombinira rezultate iz 2 ili više SELECT izraza i vraća samo različite vrijednosti.

Primjer: Vraća gradove iz tablice događaja i pretplatnika.

ODABIR grad IZ događaja
UNIJA
IZABERITE grad od pretplatnika;
UNIJA SVEIsto kao i UNION, ali uključuje duplicirane vrijednosti.
JEDINSTVENAOvo ograničenje osigurava da su sve vrijednosti u stupcu jedinstvene.

Primjer 1 (MySQL): Dodaje jedinstveno ograničenje stupcu id prilikom izrade nove tablice korisnika.

CREATE TABLE korisnika (
id int NIJE NULL,
ime varchar (255) NIJE NULL,
Jedinstveni ID)
);

Primjer 2 (MySQL): Izmijeni postojeći stupac radi dodavanja UNIQUE ograničenja.

Korisnici ALTER TABLE
ADD UNIQUE (id);
AŽURIRAJAžurira postojeće podatke u tablici.

Primjer: Ažurira vrijednosti prijeđenih kilometara i serviceDue za vozilo s id-om 45 u tablici automobila.

UPDATE automobili
SET kilometraža = 23500, uslugaDue = 0
GDJE id = 45;
VRIJEDNOSTIUpotrebljava se uz ključnu riječ INSERT INTO za dodavanje novih vrijednosti u tablicu.

Primjer: Dodaje novi automobil na stol s automobilima.

INSERT INTO automobili (naziv, model, godina)
VRIJEDNOSTI ('Ford', 'Fiesta', 2010);
GDJEFiltrira rezultate koji uključuju samo podatke koji ispunjavaju zadani uvjet.

Primjer: Vraća narudžbe s količinom većom od 1 predmeta.

ODABIR * OD naloga
GDJE količina> 1;

komentari

Komentari vam omogućavaju da objasnite odjeljke SQL izraza ili komentirate kôd i spriječite njegovo izvršavanje.

U SQL-u postoje 2 vrste komentara, jednoredni i višelinijski.

Komentari s jednom linijom

Komentari u jednoj liniji počinju sa -. Tekst nakon ta dva znaka do kraja retka bit će zanemaren.

-- Moj odabir za upit
ODABIR * OD korisnika;

Komentari s više redaka

Komentar s više linija počinje s / *, a završava s * /. Protežu se preko više linija sve dok nisu pronađeni znakovi zatvaranja.

/ *
Ovo je moj odabir.
Gradi sve redove podataka iz tablice korisnika
* /
ODABIR * OD korisnika;

/ *
Ovo je još jedan upit za odabir koji još ne želim izvršiti

ODABIR * OD zadataka;
* /

Tipovi podataka MySQL

Prilikom stvaranja nove tablice ili uređivanja postojeće morate odrediti vrstu podataka koju svaki stupac prihvaća.

U primjeru u nastavku, podaci koji se prosljeđuju u stupcu id moraju biti int, dok stupac prvo ime ima VARCHAR tip podataka s najviše 255 znakova.

CREATE TABLE korisnika (
id int,
ime varchar (255)
);

Vrste vrsta stringova

Vrste vrsta stringova
Vrsta podatakaOpis
CHAR (veličina)Niz fiksne duljine koji može sadržavati slova, brojeve i posebne znakove. Parametar veličine postavlja maksimalnu duljinu niza od 0 - 255 uz zadani 1.
VARCHAR (veličina)Niz promjenjive duljine sličan je CHAR (), ali s maksimalnim rasponom duljina niza od 0 do 65535.
Binarni (veličina)Slično je CHAR (), ali pohranjuje binarne nizove bajtova.
VARBINARY (veličina)Slično kao kod VARCHAR (), ali za binarne nizove bajtova.
TINYBLOBSadrži binarne velike objekte (BLOB) s maksimalnom duljinom od 255 bajta.
TINYTEXTSadrži niz s maksimalnom duljinom od 255 znakova. Upotrijebite VARCHAR (), jer se to događa mnogo brže.
TEKST (veličina)Sadrži niz s maksimalnom duljinom od 65535 bajtova. Opet, bolje koristiti VARCHAR ().
BLOB (veličina)Sadrži binarne velike objekte (BLOB) s maksimalnom duljinom od 65535 bajtova.
MEDIUMTEXTSadrži niz s maksimalnom duljinom od 16,777,215 znakova.
MEDIUMBLOBSadrži binarne velike predmete (BLOB) s maksimalnom duljinom od 16,777,215 bajtova.
LONGTEXTSadrži niz s maksimalnom duljinom od 4.294.967.295 znakova.
LONGBLOBSadrži binarne velike objekte (BLOB) s maksimalnom duljinom od 4.294.967.295 bajtova.
ENUM (a, b, c itd.)Objekt niza koji ima samo jednu vrijednost, a koji je odabran s popisa vrijednosti koje definirate, do maksimalno 65535 vrijednosti. Ako je dodana vrijednost koja nije na ovom popisu, umjesto toga zamjenjuje se praznom vrijednošću. Smatrajte da je ENUM u tom pogledu sličan HTML radio okvirima.

CREATE TABLE majice (boja ENUM ('crvena', 'zelena', 'plava', 'žuta', 'ljubičasta'));
SET (a, b, c, itd.)Objekt niza koji može imati 0 ili više vrijednosti, a koji je odabran s popisa vrijednosti koje definirate, do maksimalno 64 vrijednosti. Smatrajte da je SET u tom pogledu sličan HTML potvrdnim okvirima.

Numerički tipovi podataka

Vrste vrsta stringova
Vrsta podatakaOpis
BIT (veličina)Vrsta bitne vrijednosti sa zadanom 1. Dopušteni broj bita u vrijednosti postavlja se putem parametra veličine, koji može sadržavati vrijednosti od 1 do 64.
TINYINT (veličina)Vrlo mali cjelobrojni broj s potpisanim rasponom od -128 do 127, a neprijavljeni raspon od 0 do 255. Ovdje parametar veličine određuje maksimalnu dopuštenu širinu zaslona, ​​koja je 255.
BOOLU osnovi je brz način postavljanja stupca na TINYINT veličine 1. 0 smatra se lažnim, dok se 1 smatra istinitim.
BooleanIsto kao BOOL.
Smallint (veličina)Mali cjelobrojni broj s potpisanim rasponom od -32768 do 32767 i neprijavljenim rasponom od 0 do 65535. Ovdje parametar veličine određuje najveću dopuštenu širinu zaslona, ​​koja je 255.
MEDIUMINT (veličina)Srednji cijeli broj s potpisanim rasponom od -8388608 do 8388607 i neskrivenim rasponom od 0 do 16777215. Ovdje parametar veličine određuje najveću dopuštenu širinu zaslona, ​​koja je 255.
INT (veličina)Srednji cijeli broj s potpisanim rasponom od -2147483648 do 2147483647 i neprijavljenim rasponom od 0 do 4294967295. Ovdje parametar veličine određuje najveću dopuštenu širinu zaslona, ​​koja je 255.
Broj (veličina)Isto kao INT.
BIGINT (veličina)Srednji cijeli broj s potpisanim rasponom od -9223372036854775808 do 9223372036854775807, a neprijavljeni raspon od 0 do 18446744073709551615. Ovdje parametar veličine određuje najveću dopuštenu širinu zaslona, ​​koja je 255.
Plovak (p)Vrijednost broja plutajuće točke Ako je parametar preciznosti između 0 i 24, tada je vrsta podataka postavljena na FLOAT (), dok je ako je od 25 do 53, vrsta podataka postavljena na DOUBLE (). Ovakvim ponašanjem se čini pohranjivanje vrijednosti učinkovitijim.
DOUBLE (veličina, d)Vrijednost broja plutajuće točke gdje su ukupne znamenke postavljene parametrom veličine, a broj znamenki nakon decimalne točke postavljen je parametrom d.
DECIMALNA (veličina, d)Točan broj fiksnih točaka u kojem je ukupni broj znamenki postavljen parametrima veličine, a ukupni broj znamenki nakon decimalne točke postavljen je parametrom d.

Za veličinu je maksimalni broj 65, a zadani 10, dok je za d, maksimalni broj 30, a zadani 10.

DEC (veličina, d)Isto kao i DECIMAL.

Datum / vrijeme Tipovi podataka

Datum / vrijeme Tipovi podataka
Vrsta podatakaOpis
DATUMJednostavan datum u YYYY-MM – DD formatu, s podržanim rasponom od "1000-01-01" do "9999-12-31".
DATETIME (FSP)Vrijeme u datumu GGGG-MM-DD hh: mm: ss formatu, s podržanim rasponom od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'.

Dodavanjem DEFAULT i ON UPDATE u definiciju stupca, automatski se postavlja trenutni datum / vrijeme.

Oznaka (FSP)Unix vremenska oznaka, što je vrijednost u odnosu na broj sekundi od Unix epohe ('1970-01-01 00:00:00' UTC). To ima podržani raspon od '1970-01-01 00:00:01' UTC do UTC 2038-01-09 03:14:07 'UTC.

Dodavanjem DEFAULT CURRENT_TIMESTAMP i UPDATE CURRENT TIMESTAMP definiciji stupca, automatski se postavlja trenutni datum / vrijeme.

VRIJEME (FSP)Vrijeme u hh: mm: ss formatu, s podržanim rasponom od '-838: 59: 59' do '838: 59: 59'.
GODINAGodinu, s podržanim rasponom od '1901' do '2155'.

operatori

Aritmetički operatori

Aritmetički operatori
OperaterOpis
+Dodati
-Oduzeti
*Pomnožiti
/Podijeliti
%modulo

Bitwise Operator

Bitрозni operatori
OperaterOpis
&Bitwise I
|Bitno ILI
^Bitno ekskluzivno ILI

Operateri za usporedbu

Operateri za usporedbu
OperaterOpis
=Jednak
>Više nego
<Manje od
> =Veći ili jednaki
<=Manje od ili jednako
<>Nije jednako

Složeni operatori

Složeni operatori
OperaterOpis
+=Dodajte jednake
-=Oduzimanje je jednako
* =Pomnoži jednaka
/ =Podijeli jednake
% =Modulo je jednako
& =Bitvezno i ​​jednako
^ '-Bitno ekskluzivno jednako
| * =Bitno ILI je jednako

funkcije

Funkcije niza

Funkcije niza
ImeOpis
ASCIIVraća ekvivalentnu ASCII vrijednost za određeni znak.
CHAR_LENGTHVraća dužinu znaka niza.
CHARACTER_LENGTHIsto kao CHAR_LENGTH.
CONCATDodaje izraze zajedno, s najmanje 2.
CONCAT_WSDodaje izraze zajedno, ali s razdjelnikom između svake vrijednosti.
POLJEVraća vrijednost indeksa u odnosu na položaj vrijednosti unutar popisa vrijednosti.
Pronađi u setuVraća položaj niza na popisu žice.
FORMATKad prođe broj, vrati taj broj oblikovan da uključuje zareze (npr. 3,400,000).
UMETNUTIOmogućuje vam umetanje jednog niza u drugi u određenom trenutku, za određeni broj znakova.
INSTRVraća položaj kad se prvi niz pojavljuje unutar drugog.
LCASEPretvorite niz u malim slovima.
LIJEVOPolazeći s lijeve strane, izvucite zadani broj znakova iz niza i vratite ih kao druge.
DUŽINAVraća duljinu niza, ali u bajtovima.
PRONAĆIVraća prvu pojavu jednog niza unutar drugog,
NIŽIIsto kao i LCASE.
LPADLijeva jastučića jedan niz drugim, do određene duljine.
LTRIMUklonite sve vodeće prostore iz danog niza.
MIDIzdvaja jedan niz iz drugog, počevši od bilo kojeg položaja.
POLOŽAJVraća položaj prvog puta kada se jedna podvrsta pojavi unutar druge.
PONOVITIOmogućuje vam ponavljanje niza
ZAMIJENITIOmogućuje vam da zamijenite bilo koje instance podsvrsta unutar niza, novom podstringom.
OBRNUTOGObrne niz.
PRAVOPolazeći s desne strane, izvucite zadani broj znakova iz niza i vratite ih kao druge.
RPADDesni jastučići šalju jedan niz drugim, do određene duljine.
rtrimUklanja svaki prazan prostor iz zadanog niza.
PROSTORVraća niz pun razmaka jednak iznosu koji ste ga prošli.
STRCMPUsporedi 2 niza za razlike
SUBSTRIzdvaja jednu podstranu iz druge, počevši od bilo kojeg položaja.
podnizIsto kao i SUBSTR
SUBSTRING_INDEXVraća podstranu iz niza prije nego što je pronađena poslana podstina koliko je puta jednaka prenesenom broju.
TRIMUklanja zadane i vodeće prostore iz zadanog niza. Isto kao da biste zajedno pokrenuli LTRIM i RTRIM.
UCASEPretvori niz u velika slova.
GORNJIIsto kao i UCASE.

Numeričke funkcije

Numeričke funkcije
ImeOpis
ABSVraća apsolutnu vrijednost zadanog broja.
ACOSVraća kosinus luka zadanog broja.
UvezVraća sinus luka zadanog broja.
ATANVraća tangenciju luka jednog ili dva dana.
ATAN2Vratite tangenciju luka od dva dana.
AVGVraća prosječnu vrijednost datog izraza.
STAVITI STROPVraća najbliži cijeli broj (cijeli broj) prema gore od određenog broja decimalne točke.
STROPIsto kao i CEIL.
COSVraća kosinus zadanog broja.
COTVraća kotangens određenog broja.
RAČUNATIVraća količinu zapisa koji se vraća SELECT upitom.
STUPNJEVAPretvara vrijednost radijana u stupnjeve.
DIVOmogućuje vam dijeljenje cijelih brojeva.
EXPVraća e na snagu zadanog broja.
KATVraća najbliži cijeli broj (cijeli broj) prema dolje od određenog broja decimalne točke.
NAJVEĆIVraća najveću vrijednost na popisu argumenata.
NAJMANJEVraća najmanju vrijednost na popisu argumenata.
LNVraća prirodni logaritam zadanog broja
LOGVraća prirodni logaritam danog broja ili logaritam danog broja datoj bazi
LOG10Radi isto kao LOG, ali na bazi 10.
log2Radi isto kao LOG, ali do baze 2.
MAXVraća najveću vrijednost iz skupa vrijednosti.
MINVraća najnižu vrijednost iz skupa vrijednosti.
MODVraća ostatak datog broja podijeljen s drugim danim brojem.
JUVraća PI.
POWVraća vrijednost datog broja podignutog na snagu drugog zadanog broja.
VLASTIsto kao i zarobljenik.
RADIANSPretvara vrijednost stupnjeva u radijane.
RANDVraća slučajni broj.
KRUGZaokružite navedeni broj na zadani iznos decimalnih mjesta.
ZNAKVraća znak zadanog broja.
GRIJEHVraća sinus zadanog broja.
SQRTVraća kvadratni korijen zadanog broja.
IZNOSVraća vrijednost datog skupa vrijednosti zajedno.
TANVraća tangentu zadanog broja.
SKRATITIVraća broj skraćen na zadani broj decimalnih mjesta.

Funkcije datuma

Funkcije datuma
ImeOpis
ADDDATEDodajte interval (npr .: 10 DAY) datumu (npr .: 20/01/20) i vratite rezultat (npr .: 20/01/30).
ADDTIMEVremenskom intervalu (npr: 02:00) dodajte vrijeme ili datum (05:00) i vratite rezultat (07:00).
CURDATEDohvati trenutni datum.
TRENUTNI DATUMIsto kao CURDATE.
TRENUTNO VRIJEMEDoznajte trenutno vrijeme.
CURRENT_TIMESTAMPDohvati trenutni datum i vrijeme.
CURTIMEIsto kao CURRENT_TIME.
DATUMIzdvaja datum iz izraza datetime.
DATEDIFFVraća broj dana između dva dana.
DATE_ADDIsto kao DODATAK.
OBLIK DATUMAFormatira datum u datom uzorku.
DATE_SUBOdužite datumski interval (npr .: 10 DAY) od datuma (npr .: 20/01/20) i vratite rezultat (npr .: 20/01/10).
DANVraća dan za zadani datum.
DAYNAMEVraća naziv radnog dana za dan.
DAN U TJEDNUVraća indeks za radni dan za dan.
DAYOFYEARVraća dan u godini za zadani datum.
EKSTRAKTIzvadite iz datuma dani dio (npr. MJESEC za 20/01/20 = 01).
OD DANAVratite datum iz zadane numeričke vrijednosti datuma.
SATVratite sat od navedenog datuma.
ZADNJI DANDohvati posljednji dan u mjesecu za zadani datum.
LOKALNO VRIJEMEPostavlja trenutni lokalni datum i vrijeme.
LOCALTIMESTAMPIsto kao LOCALTIME.
MAKEDATEStvara datum i vraća ga na temelju zadane godine i broja dana.
NAĐI VREMENAStvara vrijeme i vraća ga na temelju zadanih vrijednosti sata, minuta i sekunde.
MIKROSEKUNDVraća mikrosekundu određenog vremena ili datuma.
MINUTAVraća minutu zadanog vremena ili datuma.
MJESECVraća mjesec dana određenog datuma.
MONTHNAMEVraća naziv mjeseca određenog datuma.
SADAIsto kao LOCALTIME.
PERIOD_ADDDodaje određeni broj mjeseci u dano razdoblje.
PERIOD_DIFFVraća razliku između dva dana.
ČETVRTINAVraća kvartal godine za zadani datum.
DRUGIVraća sekundu određenog vremena ili datuma.
SEC_TO_TIMEVraća vrijeme na temelju datih sekundi.
STR_TO_DATEStvara datum i vraća ga na temelju zadanog niza i formata.
SUBDATEIsto kao i DATE_SUB.
SUBTIMEOduzima vremenski interval (npr .: 02:00) do vremena ili datuma (05:00) i vrati rezultat (03:00).
SYSDATEIsto kao LOCALTIME.
VRIJEMEVraća vrijeme iz određenog vremena ili datuma.
VREMENSKI FORMATVraća zadano vrijeme u zadanom obliku.
TIME_TO_SECPretvara i vraća vrijeme u sekundi.
TIMEDIFFVraća razliku između dva dana izraza vrijeme / datum.
TIMESTAMPVraća vrijednost datumskog datuma ili datuma.
TO_DAYSVraća ukupan broj dana koji su prošli od '00 -00-0000 'do određenog datuma.
TJEDANVraća broj tjedna za zadani datum.
WEEKDAYVraća broj radnog dana za dan.
WEEKOFYEARVraća broj tjedna za zadani datum.
GODINAVraća godinu od zadanog datuma.
yearWeekVraća broj godine i tjedna za dan.

Razne funkcije

Razne funkcije
ImeOpis
BINVraća zadani broj u binarnom obliku.
BINARNIVraća zadanu vrijednost u obliku binarnog niza.
CASTPretvaranje jedne vrste u drugu.
srastiS popisa vrijednosti vratite prvu nultu vrijednost.
CONNECTION_IDZa trenutnu vezu vratite jedinstveni ID veze.
RAZGPretvorite zadani broj iz jednog numeričkog osnovnog sustava u drugi.
PRETVORITIPretvorite zadanu vrijednost u zadanu vrstu podataka ili skup znakova.
TRENUTNI KORISNIKVratite korisnika i ime domaćina koji su korišteni za provjeru autentičnosti s poslužiteljem.
BAZA PODATAKADobijte naziv trenutne baze podataka.
GRUPA POKoristi se pored funkcija agregata (COUNT, MAX, MIN, SUM, AVG) za grupiranje rezultata.

Primjer: Navodi broj korisnika s aktivnim narudžbama.

SELECT COUNT (user_id), active_orders
OD korisnika
GRUPA PO active_orders;
vlasništvoKoristi se umjesto GDJE sa skupnim funkcijama.

Primjer: Navodi broj korisnika s aktivnim narudžbama, ali uključuje samo korisnike s više od 3 aktivne narudžbe.

SELECT COUNT (user_id), active_orders
OD korisnika
GRUPI PO active_orders
HAVING COUNT (user_id)> 3;
AKOAko je uvjet istinit vratite vrijednost, u suprotnom vratite drugu vrijednost.
IFNULLAko je dani izraz jednak nuli, vratite zadanu vrijednost.
ISNULLAko je izraz nula, vratite 1, u suprotnom vratite 0.
LAST_INSERT_IDZa zadnji redak koji je dodan ili ažuriran u tablici vratite ID automatskog priraštaja.
NULLIFUspoređuje dva dana izraza. Ako su jednake, vraća se NULL, inače se vraća prvi izraz.
SESSION_USERVratite trenutnog korisnika i imena hosta.
SYSTEM_USERIsto kao i SESSION_USER.
KORISNIKIsto kao i SESSION_USER.
VERZIJAVraća trenutnu verziju MySQL napajanja baze podataka.

Zamjenski znakovi

U SQL-u Wildcards su posebni znakovi koji se koriste s ključnim riječima LIKE i NOT LIKE koji nam omogućuju mnogo efikasnije pretraživanje podataka s sofisticiranim uzorcima.

Zamjenski znakovi
ImeOpis
%Znači nula ili više znakova.

Primjer 1: Pronađi sve korisnike s prezimenima koja završavaju na 'sin'.

SELECT * OD korisnika
GDJE prezime LIKE '% sin';

Primjer 2: Pronađite sve korisnike koji žive u gradovima koji sadrže obrazac "che"

SELECT * OD korisnika
GDJE se grad LIKE '% che%';
_Osigurava bilo kojem znaku.

Primjer: Pronađite sve korisnike koji žive u gradovima koji počinju s bilo koja 3 znaka, a zatim slijedi "chester".

SELECT * OD korisnika
GDJE grad LIKE '___chester';
[Charlist]Osigurava bilo kojem znaku na popisu.

Primjer 1: Pronađite sve korisnike s imenima koja počinju s J, H ili M.

SELECT * OD korisnika
GDJE prvo ime LIKE '[jhm]%';

Primjer 2: Pronađite sve korisnike s imenima koji počinju slova između slova A - L.

SELECT * OD korisnika
GDJE prvo ime LIKE '[a-l]%';

Primjer 3: Pronađite sve korisnike s imenima koja se ne završavaju slovima između n - s.

SELECT * OD korisnika
GDJE prvo ime LIKE '% [! N-s]';

ključevi

U relacijskim bazama podataka postoji koncept primarnog i stranog ključa. U SQL tablicama, one su uključene kao ograničenja, gdje tablica može imati primarni ključ, strani ključ ili oboje.

Glavni ključ

Primarni ključ omogućuje da se svaki zapis u tablici jedinstveno identificira. Po tablici može biti samo jedan primarni ključ, a ovo ograničenje možete dodijeliti bilo kojem stupcu ili kombinaciji stupaca. Međutim, to znači da svaka vrijednost unutar ovog stupca mora biti jedinstvena.

U tablici je primarni ključ stupac s ID-om i obično je uparen s ključnom riječi AUTO_INCREMENT. To znači da se vrijednost automatski povećava kako se stvaraju novi zapisi.

Primjer 1 (MySQL)

Napravite novu tablicu i postavite primarni ključ u stupcu ID.

CREATE TABLE korisnika (
id int NIJE NULL AUTO_INCREMENT,
ime varchar (255),
prezime varchar (255) NIJE NULL,
adresa varchar (255),
e-pošta varchar (255),
PRIMARNI KLJUČ (id)
);

Primjer 2 (MySQL)

Izmijenite postojeću tablicu i postavite primarni ključ u stupac prvo ime.

Korisnici ALTER TABLE
DODATI PRIMARNI KLJUČ (ime i prezime);

Strani kljuc

Strani ključ može se primijeniti na jedan stupac ili na više i koristi se za povezivanje 2 tablice u relacijskoj bazi podataka.

Kao što je vidljivo na donjem dijagramu, tablica koja sadrži strani ključ naziva se podređenim ključem, dok se tablica koja sadrži referentni ključ ili kandidatski ključ naziva nadređena tablica.

MySQL tipke

To u suštini znači da se podaci stupca dijele između dvije tablice, jer strani ključ također sprečava umetanje nevažećih podataka koji također nisu prisutni u nadređenoj tablici.

Primjer 1 (MySQL)

Napravite novu tablicu i sve stupce na koje se upućuju ID-ovi u drugim tablicama pretvorite u strane ključeve.

USTVARITE TABLE narudžbe (
id int NIJE NULL,
user_id int,
product_id int,
PRIMARNI KLJUČ (id),
STRANI KLJUČ (user_id) REFERENCE korisnika (id),
STRANI KLJUČ (product_id) REFERENCE proizvodi (id)
);

Primjer 2 (MySQL)

Izmijenite postojeću tablicu i stvorite strani ključ.

ALTER TABLE naloga
DODAJTE STRANI KLJUČ (user_id) REFERENCE korisnika (id);

indeksi

Indeksi su atributi koji se mogu dodijeliti stupcima za kojima se često pretražuje kako bi brži i učinkovitiji proces pretraživanja podataka.

To ne znači da svaki stupac treba pretvoriti u indeks, jer traje duže vremena za stupac s indeksom nego za stupac bez. To je zato što kad se ažuriraju indeksirani stupci moraju ažurirati i sam indeks.

indeksi
ImeOpis
USTVARITE INDEKSStvara indeks pod nazivom "idx_test" u stupcima imena i prezimena tablice korisnika. U ovom su slučaju dopuštene duplicirane vrijednosti.
USTVARITE INDEX idx_test
ON korisnici (ime i prezime);
USTVARITE JEDINSTVENI INDEKSIsto kao gore, ali bez duplikata vrijednosti.

USTVARITE UNIQUE INDEX idx_test
ON korisnici (ime i prezime);
DROP INDEXUklanja indeks.

Korisnici ALTER TABLE
DROP INDEX idx_test;

pridružuje

U SQL-u se JOIN klauzula koristi za vraćanje skupa rezultata koji kombinira podatke iz više tablica, a temelji se na zajedničkom stupcu koji je prikazan u obje.

Na raspolaganju vam je nekoliko različitih pridruživanja:-

  • Unutrašnje pridruživanje (zadano): Vraća sve zapise koji u obje tablice imaju odgovarajuće vrijednosti.
  • Lijevo pridruživanje: Vraća sve zapise iz prve tablice, zajedno s bilo kojim odgovarajućim zapisima iz druge tablice.
  • Pravo pridruživanja: Vraća sve zapise iz druge tablice, zajedno sa svim zapisima koji se podudaraju iz prve.
  • Potpuno pridruživanje: Vraća sve zapise iz obje tablice kada postoji podudaranje.

Uobičajeni način vizualizacije kako je posao takav postupak:

MySQL pridružuje

U sljedećem primjeru, interno spajanje koristit će se za stvaranje novog objedinjavajućeg prikaza koji kombinira tablicu naloga i zatim 3 različite tablice

Zamijenit ćemo user_id i product_id stupovima s imenom i prezimenom korisnika koji je izvršio narudžbu, zajedno s nazivom stavke koja je kupljena.

Primjer MySQL tablice

ODABIR narudžbe.id, ime korisnika, prvo ime, ime korisnika, ime proizvoda, naziv proizvoda kao "naziv proizvoda"
OD narudžbe
INNER JOIN korisnika na order.user_id = users.id
INNER JOIN proizvodi na porudžbine.product_id = products.id;

Vratio bi skup rezultata koji izgleda kao:

Primjer MySQL tablice

Pogled

Pogled je u osnovi skup SQL rezultata koji se pohranjuju u bazu podataka pod oznakom, tako da se kasnije možete vratiti na njega bez potrebe za ponovnim postavljanjem upita. Ovo je posebno korisno kada imate skupo SQL upit koji će vam možda trebati više puta, pa umjesto da ga izvodite iznova i iznova za generiranje istog skupa rezultata, možete ga samo jednom napraviti i spremiti kao prikaz.

Stvaranje pogleda

Da biste stvorili vlasnički pregled, možete to učiniti ovako:

USTVARITE VIŠE prioriteta_korisnika AS
SELECT * OD korisnika
GDJE zemlja = 'Velika Britanija';

Ako ubuduće trebate pristupiti spremljenom skupu rezultata, to možete učiniti na sljedeći način:

ODABIR * OD [prioriteta_korisnika];

Zamjena pogleda

Pomoću naredbe CREATE ILI ZAMJENA, pogled se može ažurirati.

USTVARI ILI ZAMJENI POGLED [prior_users] KAO
SELECT * OD korisnika
GDJE država = 'Velika Britanija' ILI država = 'SAD';

Brisanje pogleda

Da biste izbrisali prikaz, jednostavno upotrijebite naredbu DROP VIEW.

DROP VIEW priority_users;

Zaključak

Većina web stranica današnjih weba na neki način koristi relacijske baze podataka. To SQL čini vrijednim jezikom za poznavanje, jer vam omogućuje izradu složenijih, funkcionalnijih web stranica i sustava.

Obavezno označite ovu stranicu, pa ubuduće, ako radite sa SQL-om i ne možete se sjetiti određenog operatora, kako napisati određeni upit ili ste samo zbunjeni kako funkcioniše pridruživanje, tada ćete imati priručnik za varanje koji je spreman, voljan i sposoban pomoći.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map