Arhiva kategorija: Knjige o SQL-u. Osnove SQL-a za početnike s lekcijama Interaktivni sql tutorial

Većina modernih web aplikacija komunicira sa bazama podataka, obično koristeći jezik koji se zove SQL. Na našu sreću, ovaj jezik je vrlo lako naučiti. U ovom članku ćemo pogledati jednostavno SQL zahtjeve i naučite kako ih koristiti za interakciju MySQL baza podataka.

Šta ti treba?

SQL (jezik strukturiranih upita) jezik posebno dizajniran za interakciju sa sistemima za upravljanje bazama podataka kao što su MySQL, Oracle, Sqlite i drugi ... Za izvođenje SQL zahtjeva u ovom članku, savjetujem vam da instalirate MySQL na lokalni računar. Takođe preporučujem korišćenje phpMyAdmin kao vizuelni interfejs.

Sve ovo je dostupno u svima omiljenom Denveru. Mislim da bi svi trebali znati šta je to i gdje se može nabaviti :). Može inače koristite WAMP ili MAMP.

Denver ima ugrađen MySQL konzola. Mi ćemo to iskoristiti.

KREIRAJ BAZU PODATAKA:kreiranje baze podataka

Evo našeg prvog zahtjeva. Napravićemo našu prvu bazu podataka za dalji rad.

Za početak, otvorite MySQL konzolu i prijavu. Za WAMP zadana lozinka je prazna. To nije ništa :). Za MAMP - "korijen". Denver treba razjasniti.

Nakon prijave, unesite sljedeći red i kliknite Unesite:

CREATE DATABASE my_first_db;

Imajte na umu da se tačka-zarez (;) dodaje na kraju upita, baš kao i u drugim jezicima.

Također naredbe u SQL-u velika i mala slova. Pišemo ih velikim slovima.

Opcije samo: skup znakovai Collation

Ako želite da instalirate skup znakova (skup znakova) i upoređivanje (poređenje) mogu napišite sljedeću naredbu:

CREATE DATABASE my_first_db DEFAULT SET CHARACTER SET utf8 COLLATE utf8_general_ci;

Pronađite listu skupova znakova koji su podržani MySQL.

PRIKAŽI BAZE PODATAKA:navodi sve baze podataka

Ova komanda se koristi za prikaz svih dostupnih baza podataka.

ISPUSTI BAZU PODATAKA:brisanje baze podataka

Možete ispustiti postojeći db sa ovim upitom.

Budite oprezni s ovom komandom jer se izvodi bez upozorenja. Ako postoje podaci u vašoj bazi podataka, svi će biti izbrisani.

UPOTREBA:Izbor baze podataka

Tehnički, ovo nije upit, već operator i ne zahtijeva tačku i zarez na kraju.

To govori MySQL odaberite bazu podataka koja će raditi po defaultu za trenutnu sesiju. Sada smo spremni da kreiramo tabele i radimo druge stvari sa bazom podataka.

Šta je tabela u bazi podataka?

Možete predstaviti tabelu u bazi podataka kao excel fajl.

Baš kao na slici, tabele imaju nazive kolona, ​​redove i informacije. Korišćenjem SQL upite možemo kreirati takve tabele. Također možemo dodavati, čitati, ažurirati i brisati informacije.

KREIRAJ TABELU: Kreirajte tabelu

C Sa ovim upitom možemo kreirati tabele u bazi podataka. Nažalost dokumentacija MySQL nije baš jasno za početnike na ovu temu. Struktura ovog tipa zahtjeva može biti vrlo složena, ali počećemo s jednom jednostavnom.

Sledeći upit će kreirati tabelu sa 2 kolone.

CREATE TABLE korisnici (korisničko ime VARCHAR(20), datum_kreiranja DATE);

Imajte na umu da naše upite možemo pisati u više redova i sa tabovima za uvlačenje.

Prva linija je jednostavna. Jednostavno kreiramo tabelu pod nazivom "korisnici". Zatim, u zagradama, odvojenim zarezima, nalazi se lista svih kolona. Nakon imena svakog stupca imamo tipove informacija kao što su VARCHAR ili DATE.

VARCHAR(20) znači da je stupac tipa string i može imati najviše 20 znakova. DATE je također tip informacija koji se koristi za pohranjivanje datuma u ovom formatu: "GGGG - MM-DD".

PRIMARNI KLJUČ ( primarni ključh)

Prije nego što izvršimo sljedeći upit, također moramo uključiti stupac za "user_id", koji će biti naš primarni ključ. O PRIMARNOM KLJUČU možete razmišljati kao o informaciji koja se koristi za identifikaciju svakog reda u tabeli.

CREATE TABLE korisnici (user_id INT AUTO_INCREMENT PRIMARY KEY, korisničko ime VARCHAR(20), create_date DATE);

INT pravi 32-bitni cjelobrojni tip (poput brojeva). AUTO_INCREMENT automatski generiše novu vrijednost ID svaki put kada dodamo nove redove informacija. Ovo nije obavezno, ali olakšava cijeli proces.

Ova kolona ne mora biti cjelobrojna vrijednost, ali se najčešće koristi. Posjedovanje primarnog ključa je također opciono, ali se preporučuje za arhitekturu baze podataka i performanse.

Pokrenimo upit:

PRIKAŽI TABELE:prikaži sve tabele

Ovaj upit vam omogućava da dobijete listu tabela koje se nalaze u bazi podataka.

OBJASNITI:Prikaži strukturu tabele

Možete koristiti ovaj upit za prikaz strukture postojeće tablice.

Kolone se prikazuju sa svim svojstvima.

DOP TABLICA:izbrisati tabelu

Baš kao DROP BAZE PODATAKA, ovaj upit ispušta tabelu i njen sadržaj bez upozorenja.

ALTER TABLE: stol za promjenu

Ovaj upit također može sadržavati složenu strukturu zbog više promjena koje može napraviti u tablici. Pogledajmo primjere.

(ako ste izbrisali tabelu u zadnjem koraku, kreirajte je ponovo za testove)

DODAVANJE KOLONE

ALTER TABLE korisnici DODAJTE e-poštu VARCHAR(100) AFTER korisničko ime;

Zbog dobre čitljivosti SQL-a, mislim da nema smisla detaljno ga objašnjavati. Dodajemo novu kolonu "e-mail" iza "korisničko ime".

UKLANJANJE KOLONE

Takođe je bilo vrlo lako. Molimo koristite ovaj upit sa oprezom jer podaci mogu biti izbrisani bez upozorenja.

Vratite kolonu koju ste upravo izbrisali za daljnje eksperimentiranje.

PROMJENITE KOLONU

Ponekad ćete možda htjeti promijeniti svojstva kolone, a ne morate je u potpunosti ukloniti da biste to učinili.

Ovaj upit je preimenovao korisnički stupac u "user_name" i promijenio njegov tip iz VARCHAR(20) u VARCHAR(30). Takva promjena ne bi trebala promijeniti podatke u tabeli.

INSERT: Dodavanje informacija u tabelu

Dodajmo neke informacije u tabelu koristeći sljedeći upit.

Kao što vidite, VALUES() sadrži listu vrijednosti razdvojenih zarezima. Sve vrijednosti su zatvorene u jednu kolonu. I vrijednosti moraju biti u redoslijedu kolona koje su definirane kada je tablica kreirana.

Imajte na umu da je prva vrijednost NULL za polje PRIMARY KEY pod nazivom "user_id". Ovo radimo kako bi se ID automatski generirao, pošto kolona ima svojstvo AUTO_INCREMENT. Kada se informacije dodaju prvi put, ID će biti 1. Sljedeći red će biti 2, i tako dalje...

ALTERNATIVNA OPCIJA

Postoji još jedna opcija upita za dodavanje redova.

Ovaj put koristimo ključnu riječ SET umjesto VALUES i ona nema zagrade. Postoji nekoliko nijansi:

Kolona se može preskočiti. Na primjer, nismo dodijelili vrijednost "user_id", koja će po defaultu dobiti vrijednost AUTO_INCREMENT. Ako izostavite VARCHAR stupac, tada će se dodati prazan niz.

Svaka kolona se mora pozvati po imenu. Zbog toga se mogu spominjati bilo kojim redoslijedom, za razliku od prethodne verzije.

ALTERNATIVA 2

Evo još jedne opcije.

Opet, budući da postoje reference na ime kolone, možete odrediti vrijednosti bilo kojim redoslijedom.

LAST_INSERT_ID()

Možete koristiti ovaj upit da dobijete ID koji je bio AUTO_INCREMENT za zadnji red trenutne sesije.

SAD()

Sada je vrijeme da vam pokažemo kako možete koristiti MySQL funkciju u upitima.

Funkcija NOW() vraća trenutni datum. Tako da ga možete koristiti da automatski postavite datum kolone na trenutni kada umetnete novi red.

Imajte na umu da smo primili 1 upozorenje, ali ga zanemarite. Razlog za to je što NOW() također služi za prikaz privremenih informacija.

ODABIR: Čitanje podataka iz tabele

Ako dodamo informacije u tabelu, onda bi bilo logično naučiti kako ih čitati odatle. Ovdje će nam pomoći SELECT upit.

Ispod je najjednostavniji mogući SELECT upit za čitanje tabele.

U ovom slučaju, zvjezdica (*) znači da smo zatražili sva polja iz tabele. Ako želite samo određene kolone, upit bi izgledao ovako.

StanjeGDJE

Najčešće nas ne zanimaju sve kolumne, već samo neke. Na primjer, pretpostavimo da nam je potrebna samo adresa e-pošte za korisnika "nettuts".

WHERE vam omogućava da postavite uslove u upitu i napravite detaljan odabir.

Imajte na umu da jednakost koristi jedan znak jednakosti (=) umjesto dva kao u programiranju.

Možete koristiti i poređenja.

I ili OR se mogu koristiti za kombinovanje uslova:

Imajte na umu da numeričke vrijednosti ne smiju biti u navodnicima.

IN()

Ovo je korisno za uzorkovanje na više vrijednosti.

LIKE

Omogućava vam da napravite "zamjenske" zahtjeve

Znak % se koristi kao "zamjenski znak". Odnosno, na njegovom mjestu može biti bilo šta.

StanjePOREDAK PO

Ako želite da dobijete rezultat u uređenom obliku po nekom kriterijumu

Zadani redoslijed je ASC (od najmanjeg do najvećeg). Za obrnuto, DESC se koristi.

LIMIT ... OFFSET ...

Možete ograničiti broj rezultata koje primate.

LIMIT 2 uzima samo prva 2 rezultata. LIMIT 1 OFFSET 2 dobija 1 rezultat nakon prva 2. LIMIT 2, 1 znači isto (samo obratite pažnju da prvo dolazi pomak, a zatim limit).

AŽURIRANJE: Izmenite informacije u tabeli

Ovaj upit se koristi za promjenu informacija u tabeli.

U većini slučajeva, koristi se zajedno sa klauzulom WHERE, jer ćete najvjerovatnije htjeti unijeti promjene u određene stupce. Ako ne postoji klauzula WHERE, promjene će utjecati na sve redove.

Također možete koristiti LIMIT da ograničite broj redova koje je potrebno izmijeniti.

IZBRIŠI: Uklanjanje informacija iz tabele

Baš kao i UPDATE, ovaj upit se koristi sa WHERE:

Da biste uklonili sadržaj tabele, možete jednostavno učiniti ovo:

IZBRIŠI IZ korisnika;

Ali bolje je koristiti TRUNCATE

Osim brisanja, ovaj upit također resetuje vrijednosti AUTO_INCREMENT a kada se ponovo dodaju redovi, odbrojavanje će početi od nule. IZBRIŠI ne učini ovo i odbrojavanje se nastavlja.

Onemogućavanje vrijednosti niza i posebnih riječi

string vrijednosti

Neki karakteri moraju biti onemogućeni ( bijeg ), ili može doći do problema.

Za to se koristi obrnuta kosa crta.(\).

Posebne riječi

Jer u MySQL ima mnogo posebnih reči SELECT ili UPDATE ), kako bi se izbjegle greške prilikom njihovog korištenja, moraju se koristiti navodniki. Ali ne obični citati, već ovi(`).

To jest, morat ćete dodati kolonu pod nazivom " izbrisati ", potrebno je da to uradite ovako:

Zaključak

Hvala vam što ste pročitali do kraja. Nadam se da vam je ovaj članak bio koristan. Još nije gotovo! Nastavlja se:).

U ovom članku pokušao sam spojiti sve glavne točke Transact SQL pomoći početnicima programerima baze podataka da nauče jezik i pišu upite i aplikacije u Transact-SQL-u.

Programiranje baza podataka, tačnije, baze podataka na kojima se pokreće Microsoft SQL Server, postalo je veoma popularno, zbog čega sam odlučio da napravim neku vrstu mini priručnika u kojem možete pronaći sve glavne tačke sa objašnjenjima i, naravno, sa primerima.

Da biste vježbali pisanje SQL upita ili kreiranje objekata baze podataka, možete koristiti besplatno izdanje SQL Server Expressa, u vrijeme sastavljanja vodiča, najnovija verzija je Microsoft SQL Server 2014 Express.

Transact-SQL Referenca za početnike - Referentni opis

Ovaj vodič će izgledati ovako, prvo ću dati mali sadržaj sa navigacijom, zatim će započeti sam vodič, za svaku stavku će biti komentari, objašnjenja i primjeri. Također, ako smo već detaljno ispitali ili koristili ovaj ili onaj predmet ili radnju negdje u materijalima na našoj web stranici, ja ću, naravno, staviti linkove tako da možete vidjeti detaljne primjere ili kako koristiti ovu ili onu radnju u praksi .

Budući da je jednostavno nemoguće pokriti apsolutno sve, nemojte se iznenaditi ako ovdje nešto niste pronašli. Još jednom, ovaj vodič je dizajniran za početnike Transact-SQL programere, kao i za jednostavne administratore koji povremeno moraju da uploaduju neke podatke sa SQL servera.

Za detaljnu studiju T-SQL jezika, preporučujem da pročitate moju knjigu „Put T-SQL programera. Transact-SQL Language Tutorial”, u kojem govorim što je moguće detaljnije, sa velikim brojem primjera, o T-SQL jeziku.

Baza podataka

Čak bi i početnik Transact-SQL programer trebao znati kako da kreira bazu podataka ili da promeni njena svojstva, pa pre nego što pogledamo tabele, poglede, funkcije i sve ostalo, prođimo kroz proces kreiranja, modifikacije i izbacivanja baze podataka u Transact-u. SQL.

Kreacija

Da biste kreirali bazu podataka, morate pokrenuti sljedeći upit:

CREATE DATABASE test

gdje je test naziv baze podataka.

Za više informacija o kreiranju baze podataka na SQL Serveru razgovarali smo u materijalu Kako napraviti bazu podataka u MS Sql 2008

Odstranjivanje

Ako trebate izbrisati bazu podataka, možete koristiti upit:

DROP DATABASE test

Promjena

Da biste promijenili parametre baze podataka, možete koristiti grafičko sučelje Management Studio, u kojem su svi parametri detaljno opisani, ili možete poslati upite ALTER DATABASE, na primjer, da biste omogućili automatsku kompresiju testne baze podataka, koristite sljedeći upit

ALTER DATABASE test SET AUTO_SHRINK ON; --A za isključivanje testa ALTER DATABASE SET AUTO_SHRINK OFF;

Nadam se da je jasno, naredba ALTER DATABASE za promjenu, testirati ime baze podataka koja se mijenja, naredba SET koja pokazuje da ćemo promijeniti parametre baze podataka, AUTO_SHRINK sam parametar, ON/OFF vrijednost parametra.

Tipovi podataka

Najčešći i najčešće korišteni

Tačne brojke

  • tinyint - 1 bajt
  • smallint - 2 bajta
  • int - 4 bajta
  • bigint - 8 bajtova
  • numerički i decimalni ( tip sa fiksnom preciznošću i skalom)
  • novac - 8 bajtova
  • smallmoney - 4 bajta

Približne brojke

  • float [ (n) ] - veličina zavisi od n (n može biti od 1 do 53, podrazumevano je 53)
  • realno - 4 bajta

datum i vrijeme

  • datum - datum
  • vrijeme - vrijeme
  • datetime je datum koji uključuje doba dana u dijelovima sekunde u 24-satnom formatu.

Nizovi znakova

  • char [ (n) ] je niz fiksne dužine, gdje je n dužina niza (od 1 do 8000). Veličina memorije je n bajtova.
  • varchar [ (n | max) ] je niz fiksne dužine, gdje je n dužina niza (od 1 do 8000). Ako navedete max, tada će maksimalna veličina memorije biti 2 ^ 31-1 bajta (2 GB), a ako navedete n, onda stvarna dužina unesenih podataka plus 2 bajta.
  • tekst - podaci niza promjenjive dužine, maksimalna veličina 2,147,483,647 bajtova (2 GB).
  • nchar [ (n) ] je Unicode niz fiksne dužine, gdje je n dužina niza (između 1 i 4000). Veličina memorije je dvostruko veća od vrijednosti n u bajtovima
  • nvarchar [ (n | max) ] je Unicode niz fiksne dužine, gdje je n dužina niza (između 1 i 4000). Ako je specificirano max, maksimalna veličina memorije će biti 2^31-1 bajta (2 GB), a ako je n, tada će biti dvostruka stvarna dužina unesenih podataka plus 2 bajta.
  • ntext - podaci niza promjenjive dužine, s maksimalnom dužinom stringa od 1,073,741,823 bajta.

Binarni podaci

  • binarni [ (n) ] - binarni podaci fiksne dužine, veličine n bajtova, gdje je n vrijednost od 1 do 8000. Veličina memorije je n bajtova.
  • varbinary [ (n | max) ] - binarni podaci promjenjive dužine, gdje n može imati vrijednost od 1 do 8000. Ako navedete max, tada će maksimalna veličina memorije biti 2 ^ 31-1 bajta (2 GB). Ako je specificirano n, tada je veličina memorije stvarna dužina unesenih podataka plus 2 bajta.
  • slika - binarni podaci varijabilne dužine, veličine od 0 do 2^31 - 1 (2 147 483 647) bajtova.

Ostalo

  • xml - skladištenje xml podataka. O tome smo detaljno raspravljali u Transact-sql materijalu - rad sa xml-om, a ako uopće ne znate što je XML, onda smo o tome govorili u članku Osnove XML-a za početnike.
  • tabela - skladištenje rezultirajućeg skupa redova.

stolovi

Na ovoj stranici ima dovoljno primjera kreiranja tabela, jer u skoro svakom članku koji se odnosi na SQL dajem primjer kreiranja probne tablice, ali da bismo konsolidirali znanje, napravimo, izmijenimo i izbrišemo probnu tablicu. Pogledajmo samo kako su tipovi podataka polja postavljeni u tabelama u Transact-SQL-u.

Kreacija

CREATE TABLE test_table( IDENTITY(1,1) NOT NULL,--identifikator, cijeli broj, NULL vrijednosti nisu dozvoljene (50) NULL, --Naziv, niz dužine 50 znakova, NULL vrijednosti dozvoljene NULL, --suma , približna numerička vrijednost, dozvoljene nule NULL, --datum i vrijeme, dozvoljene nule (100) NULL --string dužine 100 znakova, dozvoljene nule) ON GO

Dodavanje kolone

ALTER TABLE test_table DODAJ prosto_pole numeric(18, 0) NULL
  • test_table je ime tabele;
  • add - naredba za dodavanje;
  • prosto_pole – naziv kolone;
  • pole numeric(18, 0) – tip podataka nove kolone;
  • NULL – parametar koji znači da se NULL vrijednost može pohraniti u ovo polje.

Promjena tipa podataka

Promenimo tip podataka novog polja koje smo upravo kreirali (prosto_pole) iz numeric(18, 0) u bigint i povećajmo dužinu polja za komentar na 300 karaktera.

ALTER TABLE test_table ALTER COLUMN prosto_pole bigint; ALTER TABLE test_table ALTER COLUMN komentar varchar(300);

Bilješka! SQL Server neće moći promijeniti tip podataka ako je nemoguće konvertirati vrijednosti u ovim poljima, u kom slučaju ćete morati obrisati kolonu sa svim podacima i ponovo dodati ili obrisati sve podatke u ovom polju.

Brisanje kolone

Da biste uklonili određenu kolonu, koristite naredbu drop, na primjer, da biste uklonili polje prosto_pole, koristite sljedeći upit

ALTER TABLE test_table DROP COLUMN prosto_pole

Brisanje tabele

Da bismo izbrisali tabelu, napišimo tako jednostavan upit, gde je test_table tabela za brisanje

DROP TABLE test_tabela

Zastupanje

Vrlo koristan objekat u bazi podataka je pogled (VIEW) ili, po našem mišljenju, samo pogled. Ako neko ne zna, onda je pogled vrsta pohranjenog upita kojem se može pristupiti na isti način kao i tablici. Hajde da kreiramo pogled na osnovu testne tabele test_table, i recimo da vrlo često treba da napišemo upit, na primer, po uslovu je zbir veći od 1000, pa da ne bismo svaki put pisali ovaj upit, pisaćemo pogled jednom, a kasnije ćemo se pozvati na njega.

Kreacija

CREATE VIEW test_view KAO SELECT id, fio, comment IZ test_table GDJE suma > 1000 GO

Pogledajte primjer poziva:

SELECT * FROM test_view

Promjena

ALTER VIEW test_view KAO SELECT id, fio, comment IZ test_table GDJE suma > 1500 GO

Odstranjivanje

DROP VIEW test_view

System Views

MS SQL Server DBMS također ima sistemske objekte koji ponekad mogu pružiti prilično korisne informacije, kao što su sistemski pogledi. Sada ćemo analizirati nekoliko takvih reprezentacija. Može im se pristupiti na isti način kao i redovnim prikazima ( npr. odaberite * iz prikaza naslova)

  • sys.all_objects - sadrži sve objekte baze podataka, uključujući parametre kao što su ime, tip, datum kreiranja i druge.
  • sys.all_columns - vraća sve kolone tabela sa njihovim detaljnim karakteristikama.
  • sys.all_views - Vraća sve prikaze baze podataka.
  • sys.tables - sve tabele baze podataka.
  • sys.triggers - svi pokretači baze podataka.
  • sys.databases - sve baze podataka na serveru.
  • sys.sysprocesses - aktivni procesi, sesije u bazi podataka.

Zapravo ih ima mnogo, tako da je nemoguće sve srediti. Ako želite vidjeti kako se mogu koristiti u praksi, onda smo to već učinili, na primjer, u materijalima

Funkcije

MS SQL Server vam omogućava da kreirate funkcije koje će vratiti određene podatke, drugim riječima, korisnik sam može napisati funkciju i koristiti je kasnije, na primjer, kada trebate dobiti vrijednosti koje zahtijevaju složene proračune ili složeno uzorkovanje podataka. Ponekad je potrebno samo smanjiti kod kada će poziv funkcije zamijeniti često potrebne vrijednosti u različitim upitima i aplikacijama.

Kreacija

CREATE FUNCTION test_function (@par1 bigint, @par2 float) VRAĆA varchar(300) KAO POČETAK DEKLARI @rezult varchar(300) SELECT @rezult=comment IZ test_table GDJE id = @par1 I suma > @par2 VRAĆAJ @rezult END
  • CREATE FUNCTION - naredba za kreiranje funkcijskog objekta;
  • test_function - naziv nove funkcije;
  • @par1 i @par2 su dolazni parametri;
  • RETURNS varchar(300) – tip povrata;
  • DECLARE @result varchar(300) – deklaracija varijable sa tipom varchar(300);
  • Select izraz u našem slučaju je akcija funkcije;
  • RETURN @result - vraća rezultat;
  • BEGIN i END su početak i kraj koda funkcije, respektivno.

Primjer korištenja u upitu:

SELECT test_function(1, 20)

Promjena

ALTER FUNCTION test_function (@par1 bigint, @par2 float) VRAĆA varchar(300) KAO POČETAK DECLARE @rezult varchar(300) SELECT @rezult=comment IZ test_table_new GDJE id = @par1 I suma >= @par2 VRAĆAJ @rezult END

Odstranjivanje

DROP FUNCTION test_funkcija

Ugrađene funkcije

Pored činjenice da vam SQL Server omogućava kreiranje korisnički definiranih funkcija, on također pruža mogućnost korištenja ugrađenih funkcija koje su DBMS programeri već napisali za vas. Ima ih puno, pa sam najčešće podijelio u grupe i pokušao ih ukratko opisati.

Funkcije sistema

Ovdje ću dati neke primjere funkcija koje vraćaju različite sistemske podatke.

  • @@VERSION - vraća verziju SQL servera;
  • @@SERVERNAME - vraća ime servera;
  • SUSER_NAME() - korisničko ime za prijavu na server, drugim riječima, pod kojim loginom radi ovaj ili onaj korisnik;
  • user_name() – korisničko ime baze podataka;
  • @@SERVICENAME je ime DBMS usluge;
  • @@IDENTITY je posljednji identifikator umetnut u tabelu;
  • db_name() je ime trenutne baze podataka;
  • db_id() je ID baze podataka.

Agregatne funkcije

Funkcije koje izračunavaju neku vrijednost na osnovu skupa (grupe) vrijednosti. Ako prilikom pozivanja ovih funkcija trebate navesti kolonu za prikaz rezultata, tada morate grupisati podatke (grupisati po) prema ovom polju. O ovoj konstrukciji smo detaljno raspravljali u članku Transact-SQL grupiranje podataka po grupi

  • avg - vraća prosječnu vrijednost;
  • count - broj vrijednosti;
  • max - maksimalna vrijednost;
  • min – minimalna vrijednost;
  • suma je zbir vrijednosti.

Primjer upotrebe:

SELECT COUNT(*) kao broj, SUM(suma) kao zbir, MAX(id) kao maksimum, MIN(id) kao min, AVG(summa) kao prosječan FROM test_table

Funkcije niza

Ova vrsta funkcije, odnosno, radi sa stringovima.

lijevo (string izraz, likovi) – vraća navedeni broj znakova u nizu, počevši slijeva.

Primjer

SELECT LEFT("Primjer lijeve funkcije", 10) --Rezultat "Primjera"

U redu (string izraz, likovi) - vraća navedeni broj znakova niza počevši s desna

Primjer

SELECT Right("Primjer desne funkcije", 10) -- Rezultat "Prave radnje"

Len (linija) - vraća dužinu niza.

Primjer

SELECT len("Len primjer") --Rezultat 28

Niže (linija) - Vraća string sa svim znakovima pretvorenim u mala slova.

Primjer

SELECT niži("niži primjer") --rezultat "niži primjer"

Upper (linija) - Vraća string u kojem su svi znakovi konvertovani u velika slova.

Primjer

SELECT Upper("Gornji primjer") --Rezultat "UPPER EXAMPLE"

Ltrim (linija) - Vraća string sa uklonjenim svim vodećim razmacima.

Primjer

SELECT ltrim(" ltrim primjer") --Rezultat "ltrim primjer"

Rtrim (linija) - vraća string sa uklonjenim svim razmacima na desnoj strani

Primjer

SELECT Rtrim (" Rtrim primjer ") -- Rezultat" Rtrim primjer"

Zamijenite (linija, šta tražimo, šta da zamenimo) - zamjenjuje sva pojavljivanja u string izrazu navedenom u drugom parametru sa znakovima navedenim u trećem parametru.

Primjer

SELECT Zamijeni("Primjer zamjene", "na poslu", "ZAMJENA") -- Rezultat "Primjer funkcije ZAMJENA Zamijeni"

Replicate (linija, broj ponavljanja) - ponavlja niz (prvi parametar) onoliko puta koliko je navedeno u drugom parametru.

Primjer

SELECT Replicate ("Primjer Replicate", 3) -- Rezultat "Primjer Replicate Primjer Replicate Primjer Replicate"

obrnuto (linija) - vraća sve obrnutim redoslijedom.

Primjer

SELECT Obrnuti ("Primjer obrnuti") -- Rezultat "esreveR iiccnuf etobar op remirP"

Prostor (broj mjesta) - Vraća string kao navedeni broj razmaka.

Primjer

SELECT Space(10) -- Rezultat " "

Podniz (linija, početna pozicija, koliko znakova) - vraća string, dužinu broja navedenog u trećem parametru, počevši od znaka navedenog u drugom parametru.

Primjer

SELECT Substring("Primjer funkcije podniza", 11, 14) -- Rezultat "operacije funkcije"

Matematičke funkcije

Okrugli (broj, tačnost zaokruživanja) – zaokružuje numerički izraz na broj cifara naveden u drugom parametru

Primjer

SELECT Round(10.4569, 2) -- Rezultat "10.4600"

sprat (broj) - Vraća cijeli broj zaokružen naniže.

Primjer

SELECT Floor(10.4569) -- Rezultat "10"

Plafon (broj) - vraća cijeli broj zaokružen na gore.

Primjer

SELECT Plafon (10.4569) -- Rezultat "11"

moć (broj, stepen) - vraća broj podignut na stepen naveden u drugom parametru.

Primjer

SELECT Power(5,2) -- Rezultat "25"

Square (broj) – vraća brojčanu vrijednost na kvadrat

Primjer

SELECT Square(5) -- Rezultat "25"

abs (broj) – vraća apsolutnu pozitivnu vrijednost

Primjer

SELECT Abs(-5) -- Rezultat "5"

Dnevnik(broj) je prirodni logaritam s pomičnim zarezom.

Primjer

SELECT Log(5) -- Rezultat "1.6094379124341"

Pi- Pi.

Primjer

SELECT Pi() -- Rezultat "3.14159265358979"

Rand- vraća nasumični broj u pokretnom zarezu od 0 do 1

Primjer

SELECT rand() -- Rezultat "0.713273187517105"

Funkcije datuma i vremena

getdate()- vraća trenutni datum i vrijeme

Primjer

SELECT Getdate() -- Rezultat "2014-10-24 16:36:23.683"

dan(datum) vraća dan od datuma.

Primjer

SELECT Day(Getdate()) -- Rezultat "24"

mjesec(datum) − Vraća broj mjeseca od datuma.

Primjer

SELECT Month(Getdate()) -- Rezultat "10"

godine (datum) - vraća godinu od datuma

Primjer

SELECT godina(Getdate()) -- Rezultat "2014"

DATEPART(odeljak datuma, datum) - vraća navedeni odjeljak od datuma (DD,MM,GGGG, itd.)

Primjer

SELECT DATEPART(MM,GETDATE()) -- Rezultat "10"

Isdate (datum) - provjerava uneseni izraz da li je datum

Primjer

SELECT Isdate(GETDATE()) -- Rezultat "1"

Konverzija funkcija

Cast (izraz kao tip podataka) je funkcija za pretvaranje jednog tipa u drugi. U primjeru ćemo konvertirati tip float u int

Primjer

SELECT CAST(10.54 kao int) --rezultat 10

Pretvoriti – (tip podataka, izraz, format datuma) je funkcija za pretvaranje jednog tipa podataka u drugi. Vrlo često se koristi za konvertovanje datuma, dok se koristi treći opcioni parametar - format datuma.

Primjer

SELECT GETDATE(), CONVERT(DATE, GETDATE(), 104) --Rezultat --2014-10-24 15:20:45.270 - nema konverzije; --2014-10-24 nakon konverzije.

Funkcije tablice

Kreiraju se da bi se od njih primali podaci kao iz tabela, ali nakon raznih vrsta proračuna. O funkcijama tablica smo detaljno govorili u materijalu Transact-sql - Funkcije tablice i privremene tablice

Kreacija

--ime naše funkcije CREATE FUNCTION fun_test_tabl (--dolazni parametri i njihov tip @id INT) --povratna vrijednost, tj. tablica VRAĆA TABLE KAO --odmah vraća rezultat RETURN (--sam upit ili neke kalkulacije SELECT * FROM test_table gdje je id = @id) GO

Promjena

--ime naše funkcije ALTER FUNCTION fun_test_tabl (--dolazni parametri i njihov tip @id INT) --povratna vrijednost, tj. tablica VRAĆA TABLE KAO --odmah vraća rezultat RETURN (--sam upit ili neke kalkulacije SELECT * FROM test_table gdje je id = @id i suma > 100) GO

Odstranjivanje

DROP FUNCTION fun_test_table

Kao što vidite, za kreiranje, modifikovanje ili brisanje takvih funkcija koriste se isti operatori kao i za obične funkcije, jedina razlika je u tome koji tip funkcija vraća.

Primjer pozivanja ove funkcije

ODABIR * IZ fun_test_table(1)

Procedure

Procedure je skup SQL izraza koji se kompajliraju jednom i mogu uzeti, poput funkcija, različite parametre. Koristi se za pojednostavljenje proračuna, izvođenje grupnih radnji.

Kreacija

CREATE PROCEDURE sp_test_procedure (@id INT) AS --deklarisanje varijabli DECLARE @sum FLOAT --SQL iskazi SET @sum = 100 UPDATE test_table SET summa = summa + @sum GDJE id = @id GO

Promjena

ALTER PROCEDURE sp_test_procedure (@id int) AS --deklariranje varijabli DECLARE @sum float --SQL iskazi SET @sum = 500 UPDATE test_table SET summa = summa + @sum GDJE id = @id GO

Odstranjivanje

DROP PROCEDURE sp_test_procedure

Poziv procedure

Možete ga nazvati na različite načine, na primjer:

IZVRŠITE sp_test_procedure 1 --ili IZVRŠITE sp_test_procedure 1

Gdje, EXECUTE i EXEC poziv procedure, sp_test_procedure odnosno ime naše procedure, 1 vrijednost parametra

Sistemske procedure

Sistemske procedure su procedure za izvođenje različitih administrativnih radnji kako na objektima na serveru tako i na konfiguraciji samog servera. Pozivaju se na isti način kao i obične procedure, ali u kontekstu bilo koje baze podataka.

Ima ih mnogo, pa ću navesti samo nekoliko primjera.

sp_configure- procedura za prikaz i unošenje promjena u konfiguraciju kernela DBMS-a. Prvi parametar je naziv konfiguracijskog parametra, drugi parametar je vrijednost.

Primjer

Promijenite vrijednost parametra EXEC sp_configure "Ad Hoc distribuirani upiti",1 ponovo konfigurirajte --primijenite EXEC sp_configure --jednostavno pogledajte vrijednosti svih parametara

gdje je 'Ad Hoc distribuirani upiti' naziv parametra, 1 odnosno vrijednost koju želimo promijeniti, rekonfiguracija će primijeniti unesenu vrijednost.

U praksi smo ovu proceduru primijenili u materijalnom upitu unakrsne baze podataka u Transact-SQL-u

sp_executesql- izvršava Transact-SQL naredbu ili skup iskaza koji se mogu generirati dinamički. Koristili smo ovu proceduru u promjenama podataka evidencije materijala u tablici u Transact-SQL-u

Primjer

EXECUTE sp_executesql N"SELECT * FROM test_table WHERE id = @id", N"@id int", @id = 1

Gdje je prvi parametar sql izraz (Unicode string), drugi je definicija svih parametara ugrađenih u sql izraz, treći je vrijednost parametara.

sp_help– vraća detaljne informacije o bilo kojem objektu baze podataka.

Primjer

EXECUTE sp_help "test_table"

sp_rename– preimenuje objekt u bazi podataka. Može se koristiti za preimenovanje tabela, indeksa, naziva kolona u tabelama.Ne preporučuje se korištenje ove procedure za preimenovanje korisničkih procedura, okidača, funkcija.

Primjer preimenovanja tablice

EXEC sp_rename "test_table", "test_table_new"

gdje je prvi parametar objekt sa starim imenom, a drugi parametar je novo ime objekta.

Primjer preimenovanja stupca u tabeli

EXEC sp_rename "test_table.summa", "summa_new", "COLUMN"

Treći parametar označava da se kolona preimenuje.

okidači

Trigger je normalna procedura, ali je poziva događaj, a ne korisnik. Događaj, na primjer, može biti umetanje novog reda u tabelu (umetanje), ažuriranje podataka u tabeli (ažuriranje) ili brisanje podataka iz tabele (brisanje).

Kreacija

CREATE TRIGGER trg_test_table_update ON test_table za UPDATE --može i obrisati, umetnuti AS BEGIN --sql naredbe u slučaju UPDATE END GO

Promjena

ALTER TRIGGER trg_test_table_update ON test_table za umetanje --može i obrisati, ažurirati AS BEGIN --sql naredbe u slučaju umetanja END GO

Odstranjivanje

DROP TRIGGER trg_test_table_update

Omogući onemogući

--onemogući ONEMOGUĆI TRIGGER trg_test_table_update ON test_table; --enable ENABLE TRIGGER trg_test_table_update ON test_table;

Govorili smo o okidačima u članku - Kako kreirati okidač u Transact-SQL-u.

Indeksi

Ovo je objekt baze podataka koji poboljšava performanse pretraživanja podataka sortiranjem podataka prema određenom polju. Ako povučemo analogiju, onda je, na primjer, mnogo lakše i brže tražiti određene informacije u knjizi po njenom sadržaju nego da nema sadržaja. Postoje sljedeće vrste indeksa u MS SQL Server DBMS:

Grupirani indeks- sa ovim indeksom se redovi u tabeli sortiraju po datom ključu, tj. navedeno polje. Ovaj tip indeksa za tablicu u MS SQL Serveru može biti samo jedan i, počevši od MS SQL 2000, automatski se kreira kada je primarni ključ (PRIMARY KEY) specificiran u tablici.

Neklasterirani indeks– kada se koristi ova vrsta indeksa, indeks sadrži indekse redova sortirane po navedenom polju, a ne same redove, zbog čega se traženi red brzo traži. Tabela može imati nekoliko takvih indeksa.

Indeks Columnstore- ovaj tip indeksa je zasnovan na tehnologiji skladištenja podataka tabele ne u obliku redova, već u obliku kolona (otuda i naziv), tabela može imati jedan columnstore indeks.

Kada koristite ovu vrstu indeksa, tabela odmah postaje samo za čitanje, drugim riječima, više neće biti moguće dodavati ili mijenjati podatke u tablici, za to ćete morati isključiti indeks, dodati / promijeniti podatke, zatim ponovo uključite indeks.

Takvi indeksi su pogodni za veoma veliki skup podataka koji se koriste u skladištima.

Operacije koje koriste agregatne funkcije koristeći grupisanje su mnogo brže (nekoliko puta!) u prisustvu takvog indeksa.

Indeks Columnstore dostupan je počevši od SQL Servera 2012 u izdanjima Enterprise, Developer i Evaluation.

Kreacija

Grupirani indeks

CREATE CLUSTERED INDEX idx_clus_one NA test_table(id) GO

Gdje je CREATE CLUSTERED INDEX instrukcija za kreiranje grupisanog indeksa, idx_clus_one je ime indeksa, test_table(id) je tabela i ključno polje za sortiranje, respektivno.

Neklasterirani indeks

CREATE INDEX idx_no_clus ON test_table(summa) GO

Indeks Columnstore

CREATE columnstore INDEX idx_columnstore ON test_table(date_create) GO

Ugasiti

--onemogući ALTER INDEX idx_no_clus ON test_table DISABLE --omogući, ponovo izgradi ALTER INDEX idx_no_clus ON test_table REBUILD

Odstranjivanje

DROP INDEX idx_no_clus ON test_table GO

Kursori

Kursor - to je vrsta tipa podataka koji se uglavnom koristi u procedurama i okidačima. To je običan skup podataka, tj. rezultat upita.

Primjer (sve je u kodu procedure)

Deklariranje varijabli DECLARE @id BIGINT DECLARE @fio VARCHAR(100) DECLARE @summa FLOAT --deklariranje kursora DECLARE test_cur CURSOR ZA SELECT id, fio, summa FROM test_table --otvaranje kursora OPEN test_cur --čitanje kursora u prvom redu --i upišite ih u varijable FETCH NEXT FROM test_cur INTO @id, @fio, @summa -- pokrenite petlju dok se redovi u kursoru ne ponestanu DOK @@FETCH_STATUS = 0 POČINJE -- možemo izvršiti sql instrukcije za svaku iteracija petlje -- .................SQL naredbe .................. --pročitajte sljedeći red kursor FETCH NEXT FROM test_cur INTO @id , @fio, @summa END -- zatvori kursor CLOSE test_cur DEALLOCATE test_cur

O kursorima smo detaljno govorili u materijalu Korišćenje kursora i petlji u Transact-SQL-u.

DML upiti

DML (Jezik za manipulaciju podacima) su SQL izrazi koji manipuliraju podacima. To uključuje odabir, ažuriranje, umetanje, brisanje.

SELECT

Primjer

SELECT * FROM test_table

UPDATE

Koristi se za ažuriranje podataka

Primjer

Svi redovi u tabeli će biti ažurirani UPDATE test_table SET summa=500 --samo redovi sa ID-om veći od 10 će biti ažurirani UPDATE test_table SET summa=100 GDJE id > 10

INSERT

Operater za dodavanje podataka

Dodavanje jednog reda INSERT INTO test_table (fio, summa, date_create, comment) VRIJEDNOSTI ("puno ime",100, "10/26/2014", "test entry") --skupno dodavanje na osnovu upita INSERT INTO test_table SELECT fio, suma, date_create, komentar FROM test_table

IZBRIŠI

Pomoću ovog operatera možete izbrisati podatke.

Primjer

Brisanje cijele tabele DELETE test_table --brisanje samo redova koji odgovaraju uslovu DELETE test_table WHERE suma > 100

To je to, vodič je gotov! Nadam se da ti je pomogao na neki način. Sretno!

Strukturirani jezik upita (strukturirani jezik upita) ili SQL- je deklarativni programski jezik za upotrebu u kvazirelacionim bazama podataka. Mnoge originalne karakteristike SQL-a su preuzeli računi tuple, ali nedavna proširenja SQL-a uključuju sve više i više relacijske algebre.
SQL je prvobitno kreirao IBM, ali mnogi dobavljači su razvili vlastite dijalekte. Usvojen je kao standard od strane američkog Nacionalnog instituta za standarde (ANSI) 1986. godine i od strane ISO 1987. godine. U Standardu SQL programskog jezika, ANSI je naveo da je službeni izgovor SQL-a "es cue el". Međutim, mnogi stručnjaci za baze podataka koristili su "sleng" izgovor "Sequel", koji odražava originalni naziv jezika, Sequel, koji je kasnije promijenjen zbog sukoba zaštitnih znakova i imena u IBM-u. Programiranje za početnike.
SQL programski jezik je revidiran 1992. i ova verzija je poznata kao SQL-92. Zatim je 1999 ponovo revidiran da postane SQL: 1999 (AKA SQL3). Programiranje za lutke. SQL 1999 podržava objekte koji ranije nisu bili podržani u drugim verzijama, ali tek krajem 2001. godine samo nekoliko sistema za upravljanje bazom podataka podržava SQL implementacije: 1999.
SQL, iako je definiran kao ANSI i ISO, ima mnogo varijacija i ekstenzija, od kojih većina ima svoje karakteristike, kao što je implementacija "PL/SQL" korporacije Oracle ili implementacija Sybase i Microsoft pod nazivom "Transact-SQL", koja može zbuniti korisnika.osnove programiranja. Takođe nije neuobičajeno da komercijalne implementacije izostave podršku za ključne karakteristike standarda, kao što su tipovi podataka kao što su datum i vreme, u korist nekih svojih. Kao rezultat toga, za razliku od ANSI C ili ANSI Fortrana, koji se obično mogu prenositi s platforme na platformu bez većih strukturnih promjena, upiti SQL programskog jezika rijetko se mogu prenositi između različitih sistema baza podataka bez većih modifikacija. Većina ljudi u polju baze podataka vjeruje da je ovaj nedostatak interoperabilnosti namjeran kako bi se svakom programeru pružio vlastiti sistem upravljanja bazom podataka i vezao kupca za određenu bazu podataka.
Kao što ime sugerira, SQL programski jezik je dizajniran za specifičnu, ograničenu svrhu - ispitivanje podataka sadržanih u relacijskoj bazi podataka. Kao takav, to je skup instrukcija programskog jezika za pravljenje uzoraka podataka, a ne proceduralni jezik poput C ili BASIC, koji su dizajnirani da riješe mnogo širi spektar problema. Proširenja jezika kao što je "PL/SQL" su dizajnirana da riješe ovo ograničenje dodavanjem proceduralnih elemenata SQL-u uz zadržavanje prednosti SQL-a. Drugi pristup je da se omogući SQL upitima da ugrade komande proceduralnog programskog jezika i stupe u interakciju sa bazom podataka. Na primjer, Oracle i drugi podržavaju jezik Java u bazi podataka, dok PostgreSQL dozvoljava pisanje funkcija u Perl, Tcl ili C.
Jedna SQL šala: "SQL nije ni strukturiran ni jezik." Poenta šale je da SQL nije Turingov jezik. .

Odaberite * od T
C1 C2
1 a
2 b
C1 C2
1 a
2 b
Odaberite C1 iz T
C1
1
2
C1 C2
1 a
2 b
Odaberite * od T gdje je C1=1
C1 C2
1 a

Uz tabelu T, upit Select * from T će prikazati sve elemente svih redova u tabeli.
Iz iste tabele, upit Select C1 from T će prikazati elemente iz kolone C1 svih redova u tabeli.
Iz iste tabele, upit Select * from T gdje C1=1 će prikazati sve elemente svih redova u kojima je vrijednost stupca C1 "1".

SQL ključne riječi

SQL riječi su podijeljene u nekoliko grupa.

Prvi je Jezik za manipulaciju podacima ili DML(jezik upravljanja podacima). DML je podskup jezika koji se koristi za upite baza podataka, dodavanje, ažuriranje i brisanje podataka.

  • SELECT je jedna od najčešće korištenih DML naredbi i omogućava korisniku da specificira upit kao opis željenog rezultata kao skupa. Upit ne navodi kako bi rezultati trebali biti raspoređeni - prevođenje upita u formu koja se može obaviti u bazi podataka je posao sistema baze podataka, tačnije optimizatora upita.
  • INSERT se koristi za dodavanje redova (formalni skup) postojećoj tabeli.
  • UPDATE se koristi za promjenu vrijednosti podataka u postojećem redu tabele.
  • DELETE specificira postojeće redove koje treba ukloniti iz tabele.

Može se reći da tri druge ključne riječi spadaju u DML grupu:

  • POČNI RAD (ili POČNI TRANSAKCIJU, ovisno o dijalektu SQL-a) može se koristiti za označavanje početka transakcije baze podataka koja će se ili u potpunosti pokrenuti ili se uopće neće pokrenuti.
  • COMMIT navodi da se spremaju sve promjene podataka nakon što je operacija urezana.
  • ROLLBACK specificira da sve promjene podataka od posljednjeg urezivanja ili vraćanja unatrag trebaju biti uništene, do točke koja je predana bazi podataka kao "povratak".

COMMIT i ROLLBACK se koriste u područjima kao što su kontrola transakcija i zaključavanja. Obje instrukcije završavaju sve trenutne transakcije (skupove operacija baze podataka) i otpuštaju sva zaključavanja na promjeni podataka u tablicama. Prisustvo ili odsustvo BEGIN WORK ili sličnog izraza ovisi o određenoj implementaciji SQL-a.

Druga grupa ključnih riječi odnosi se na grupu Jezik definicije podataka ili DDL (Jezik definicije podataka). DDL omogućava korisniku da definira nove tabele i povezane elemente. Većina komercijalnih SQL baza podataka ima svoje DDL ekstenzije koje omogućavaju kontrolu nad nestandardnim, ali obično vitalnim elementima određenog sistema.
Glavne tačke DDL-a su naredbe za kreiranje i brisanje.

  • CREATE specificira objekte (kao što su tablice) koje treba kreirati u bazi podataka.
  • DROP specificira koji će postojeći objekti u bazi podataka biti ispušteni, obično trajno.
  • Neki sistemi baza podataka također podržavaju naredbu ALTER, koja omogućava korisniku da modificira postojeći objekt na različite načine, kao što je dodavanje stupaca postojećoj tablici.

Treća grupa SQL ključnih riječi je Jezik kontrole podataka ili DCL (jezik kontrole podataka). DCL je odgovoran za prava pristupa podacima i omogućava korisniku da kontroliše ko ima pristup da pregleda ili manipuliše podacima u bazi podataka. Ovdje postoje dvije glavne ključne riječi.

Predstavljam vašoj pažnji besplatni prijevod članka SQL za početnike

Sve više modernih web aplikacija komunicira sa bazama podataka, obično koristeći jezik SQL. Na našu sreću, ovaj jezik je prilično jednostavan za učenje. U ovom članku ćemo početi da učimo osnove SQL upita i njihovu interakciju sa bazom podataka. MySQL.

Sta ti treba

SQL (Structured Query Language) je jezik dizajniran za interakciju sa sistemima za upravljanje relacionim bazama podataka (DBMS) kao što su MySQL, Oracle, Sqlite i drugi. Da biste izvršili SQL upite u ovom članku, pretpostavljam da jeste MySQL. Takođe preporučujem korišćenje phpMyAdmin kao vizuelni prikaz za MySQL.

Sljedeće aplikacije će olakšati instalaciju MySQL i phpMyAdmin na vaš računar:

  • WAMP za Windows
  • MAMP za Mac

Počnimo s izvršavanjem upita na komandnoj liniji. WAMP već ga sadrži u konzoli MySQL. Za MAMP možda ćete morati ovo pročitati.

CREATE DATABASE: Kreirajte bazu podataka

Naš prvi zahtev. Napravićemo bazu podataka sa kojom ćemo raditi.

Prije svega, otvorite konzolu MySQL i prijavite se. Za WAMP, po defaultu se koristi prazna lozinka. Za MAMP lozinka mora biti "root".

Nakon što se prijavite, upišite ovaj zahtjev i kliknite Enter:

CREATE DATABASE my_first_db;

Imajte na umu da se tačka-zarez (;) dodaje na kraju upita, baš kao na kraju reda u kodu.

Isto tako, ključne riječi CREATE DATABASE ne razlikuje velika i mala slova, kao i sve ključne riječi u SQL. Ali pisaćemo ih velikim slovima radi bolje čitljivosti.

Napomena: skup znakova i poredak

Ako želite postaviti zadani skup znakova i poredak, koristite upit poput ovog:

CREATE DATABASE my_first_db DEFAULT SET CHARACTER SET utf8 COLLATE utf8_general_ci;

Naći ćete listu podržanih skupova znakova i razvrstavanja na MySQL.

PRIKAŽI BAZE PODATAKA: Lista svih baza podataka

Ovaj upit se koristi za prikaz svih baza podataka.

DROP DATABASE: Ispustite bazu podataka

Ovim upitom možete izbrisati postojeću bazu podataka.

Budite oprezni s ovim upitom jer ne ispisuje nikakva upozorenja. Ako imate tabele i podatke u bazi podataka, upit će ih sve ispustiti u trenutku.

Sa tehničke tačke gledišta, ovo nije zahtjev. Ovo je "operator" i ne zahtijeva tačku i zarez na kraju.

On izvještava MySQL da trebate odabrati zadanu bazu podataka i raditi s njom do kraja sesije. Sada smo spremni da kreiramo tabele i ostatak ove baze podataka.

Šta je tabela baze podataka?

Tablicu u bazi podataka možete zamisliti kao normalnu tabelu ili kao csv datoteku koja ima strukturirane podatke.

Kao u ovom primjeru, tablica ima nazive redova i stupce podataka. Koristeći SQL upite možemo kreirati ovu tabelu. Također možemo dodavati, čitati, mijenjati i brisati podatke.

CREATE TABLE: Kreirajte tabelu

Sa ovim upitom možemo kreirati tabelu u bazi podataka. Nažalost dokumentacija MySQL nije baš prijateljski prema novim korisnicima. Struktura ovog upita može biti vrlo složena, ali počećemo jednostavno.

Sljedeći upit kreira tablicu s dvije kolone.

CREATE TABLE korisnici (korisničko ime VARCHAR(20), datum_kreiranja DATE);

Imajte na umu da možemo napisati upit u više redova i koristiti Tab za povlačenje.

Sve je jednostavno sa prvim redom. Kreiramo tabelu pod nazivom korisnika. Nadalje, u zagradama, stupci tabele su navedeni odvojeni zarezima. Nakon naziva svakog stupca dolazi tip podataka, npr. VARCHAR ili DATUM.

VARCHAR(20) znači da je stupac tipa string i ne može biti duži od 20 znakova. DATUM- tip podataka namijenjen za pohranjivanje datuma u formatu: "GGGG-MM-DD".

primarni ključ

Prije nego što izvršimo ovaj upit, moramo umetnuti kolonu Korisnički broj, koji će biti PRIMARNI KLJUČ. Ne ulazeći previše u detalje, možete zamisliti primarni ključ kao način da prepoznate svaki red podataka u tabeli.

Zahtjev postaje ovako:

CREATE TABLE korisnici (user_id INT AUTO_INCREMENT PRIMARY KEY, korisničko ime VARCHAR(20), create_date DATE);

INT- 32-bitni cjelobrojni tip (numerički). AUTO_INCREMENT automatski generiše novi ID broj svaki put kada se doda red podataka. Nije potrebno, ali je s njim praktičnije.

Ova kolona možda nije cijeli broj, iako je najčešći tip podataka. Kolona primarnog ključa nije potrebna, ali se preporučuje za poboljšanje performansi i arhitekture baze podataka.

Pokrenimo upit:

PRIKAŽI TABELE: Lista svih tabela

Upit vam omogućava da dobijete listu svih tabela u trenutnoj bazi podataka.

OBJASNITI: Prikaži strukturu tabele

Koristite ovaj upit da vidite strukturu postojeće tabele.

Kao rezultat, prikazana su polja (kolone) i njihova svojstva.

DROP TABLE: Ispustite sto

Sviđa mi se DROP DATABASES, ovaj upit briše tabelu i njen sadržaj bez ikakvog upozorenja.

ALTER TABLE: Promjena tabele

Takav upit može imati složenu strukturu jer može napraviti više promjena u tablici. Pogledajmo jednostavne primjere.

Zbog čitljivosti SQL, ovom zahtjevu nije potrebno objašnjenje.

Uklanjanje je jednako lako. Pažljivo koristite zahtjev, podaci se brišu bez upozorenja.

Ponovo dodajte polje email, trebat će vam kasnije:

ALTER TABLE korisnici DODAJTE e-poštu VARCHAR(100) AFTER korisničko ime;

Ponekad ćete možda morati da promenite svojstva kolone, nije potrebno da je brišete i ponovo kreirate.

Ovaj upit preimenuje polje korisničko ime in korisničko ime i mijenja svoj tip od VARCHAR(20) na VARCHAR(30). Takve promjene ne utiču na podatke u tabeli.

INSERT: Dodavanje podataka u tabelu

Dodajmo zapise u tabelu pomoću upita.

Kao što možete vidjeti, VRIJEDNOSTI() sadrži listu vrijednosti odvojenu zarezima. Vrijednosti niza su zatvorene u jednostrukim navodnicima. Vrijednosti moraju biti u redoslijedu koji je naveden kada je tablica kreirana.

Imajte na umu da je prva vrijednost NULL za primarni ključ čije smo polje imenovali Korisnički broj. Sve zato što je polje označeno kao AUTO_INCREMENT i id se generiše automatski. Prvi red podataka će imati ID od 1. Sljedeći dodani red će biti 2, i tako dalje.

Alternativna sintaksa

Evo još jedne sintakse za umetanje redova.

Ovaj put smo koristili ključnu riječ SET umjesto VRIJEDNOSTI. Napomenimo nekoliko stvari:

  • Kolona se može izostaviti. Na primjer, polju nismo dodijelili vrijednost Korisnički broj jer je označeno kao AUTO_INCREMENT. Ako ne dodijelite vrijednost polju s tipom VARCHAR, tada će po defaultu uzeti vrijednost praznog niza (ako druga zadana vrijednost nije postavljena prilikom kreiranja tablice).
  • Svaka kolona se može pozvati po imenu. Stoga, polja mogu ići bilo kojim redoslijedom, za razliku od prethodne sintakse.

Alternativna sintaksa broj 2

Evo još jednog primjera.

Kao i prije, poljima se može pristupiti po imenu, mogu se pojaviti bilo kojim redoslijedom.

Koristite ovaj upit da dobijete ID posljednjeg umetnutog reda.

SAD()

Vrijeme je da vam pokažemo kako koristiti funkcije MySQL u zahtjevima.

Funkcija SAD() vraća trenutni datum. Koristite ga da automatski dodate trenutni datum u polje sa tipom DATUM.

Napominjemo da smo dobili upozorenje od MySQL, ali nije toliko bitno. Razlog je taj što je funkcija SAD() zapravo vraća informacije o vremenu.

Napravili smo polje create_date, koji može sadržavati samo datum, ne i vrijeme, tako da su podaci skraćeni. Umjesto SAD() mogli bismo koristiti CURDATE(), koji vraća samo trenutni datum, ali bi na kraju imao isti rezultat.

SELECT: Dobivanje podataka iz tabele

Očigledno je da su podaci koje smo napisali beskorisni dok ih ne pročitamo. Zahtjev dolazi u pomoć SELECT.

Najjednostavniji primjer korištenja upita SELECT za čitanje podataka iz tabele:

Zvezdica (*) znači da želimo da dobijemo sve kolone tabele. Ako trebate dobiti samo određene stupce, koristite nešto poput ovoga:

Češće nego ne želimo dobiti samo određene redove, a ne sve. Na primjer, hajde da dobijemo e-mail adresu korisnika nettuts.

Slično je uslovu IF. WHERE vam omogućava da postavite uslov u upitu i dobijete željeni rezultat.

Uvjet jednakosti koristi jednostruki znak (=) umjesto dvostrukog znaka (==) koji možete koristiti u programiranju.

Možete koristiti i druge uslove:

I i ILI koriste se za kombinovanje uslova:

Imajte na umu da numeričke vrijednosti ne moraju biti stavljene u navodnike.

IN()

Koristi se za poređenje s više vrijednosti.

LIKE

Omogućava vam da postavite obrazac pretraživanja.

Znak postotka (%) se koristi za specificiranje uzorka.

ORDER BY stanje

Koristite ovaj uslov ako želite da se rezultat vrati sortiran:

Zadani redoslijed je ASC(uzlazno). Dodati DESC sortirati obrnutim redoslijedom.

LIMIT … OFFSET …

Možete ograničiti broj vraćenih redova.

LIMIT 2 uzima prva dva reda. LIMIT 1 OFFSET 2 uzima jedan red, nakon prva dva. LIMIT 2, 1 znači isto, samo je prvi broj pomak, a drugi ograničava broj redova.

AŽURIRANJE: Ažurirajte podatke u tabeli

Ovaj upit se koristi za ažuriranje podataka u tabeli.

U većini slučajeva koristi se zajedno sa GDJE da ažurirate određene redove. Ako stanje GDJE nije postavljeno, promjene će se primijeniti na sve redove.

Da biste ograničili redove koji se mogu mijenjati, možete koristiti LIMIT.

DELETE: Brisanje podataka iz tabele

Sviđa mi se , ovaj upit se često koristi u sprezi sa uslovom GDJE.

TRUNCATE TABLE

Da biste uklonili sadržaj iz tabele, koristite sljedeći upit:

IZBRIŠI IZ korisnika;

Za bolje performanse, koristite .

Također resetirajte brojač polja AUTO_INCREMENT, tako da će novododati redovi imati id jednak 1. Kada se koristi to se neće dogoditi i brojač će nastaviti da raste.

Izbjegavanje vrijednosti niza i posebnih riječi

String vrijednosti

Neke znakove je potrebno pobjeći, inače može doći do problema.

Obrnuta kosa crta (\) se koristi za izlaz.

Ovo je veoma važno iz sigurnosnih razloga. Bilo koji korisnički podaci moraju se izbjeći prije upisivanja u bazu podataka. AT PHP koristite funkciju mysql_real_escape_string() ili pripremljene upite.

Posebne riječi

Jer u MySQL mnogo rezerviranih riječi kao što su SELECT ili , da biste izbjegli kontradikcije, stavite nazive stupaca i tablica u navodnike. I trebate koristiti ne obične navodnike, već kvačice (`).

Recimo da iz nekog razloga želite da dodate kolonu pod nazivom :

Zaključak

Hvala što ste pročitali članak. Nadam se da sam uspeo da vam pokažem taj jezik SQL vrlo funkcionalan i lak za učenje.

Dobrodošli na moj blog stranicu. Danas ćemo govoriti o sql upitima za početnike. Neki webmasteri mogu imati pitanje. Zašto naučiti sql? Ne možete proći?

Ispostavilo se da to neće biti dovoljno za stvaranje profesionalnog internet projekta. Sql se koristi za rad sa bazom podataka i kreiranje aplikacija za WordPress. Pogledajmo detaljnije kako koristiti upite.

Šta je to

Sql je jezik strukturiranih upita. Kreiran da odredi vrstu podataka, omogući im pristup i obradu informacija u kratkim vremenskim periodima. Opisuje komponente ili neke rezultate koje želite da vidite na Internet projektu.

Jednostavno rečeno, ovaj programski jezik vam omogućava da dodajete, mijenjate, pretražujete i prikazujete informacije u bazi podataka. Popularnost mysql-a je zbog činjenice da se koristi za kreiranje dinamičkih Internet projekata, koji se zasnivaju na bazi podataka. Stoga, da biste razvili funkcionalan blog, morate naučiti ovaj jezik.

Šta se može

sql jezik dozvoljava:

  • kreirati tabele;
  • promijeniti primanje i pohranjivanje različitih podataka;
  • kombinuju informacije u blokove;
  • zaštititi podatke;
  • kreirajte zahtjeve u pristupu.

Bitan! Nakon što ste se pozabavili sql-om, možete pisati aplikacije za WordPress bilo koje složenosti.

Kakva struktura

Baza podataka se sastoji od tabela koje se mogu predstaviti kao Excel fajl.

Ona ima ime, kolone i red sa nekim informacijama. Takve tabele možete kreirati koristeći sql upite.

Šta treba da znate


Ključne tačke prilikom učenja sql

Kao što je gore navedeno, upiti se koriste za obradu i unos novih informacija u bazu podataka koja se sastoji od tabela. Svaki red je zaseban unos. Pa hajde da napravimo bazu podataka. Da biste to učinili, napišite naredbu:

Kreirajte bazu podataka 'bazaname'

Pod navodnicima pišemo naziv baze podataka latinicom. Pokušajte smisliti neko smisleno ime za nju. Nemojte kreirati bazu podataka poput "111", "www" i slično.

Nakon kreiranja baze podataka, instalirajte:

NAZIVA SETOVA 'utf-8'

Ovo je neophodno kako bi se sadržaj na stranici ispravno prikazao.

Sada kreiramo tabelu:

CREATE TABLE 'bazaname' . 'stol' (

id INT(8) NIJE NULL AUTO_INCREMENT PRIMARNI KLJUČ,

log VARCHAR(10),

proći VARCHAR(10),

datum DATE

U drugom redu napisali smo tri atributa. Hajde da vidimo šta oni znače:

  • Atribut NOT NULL znači da ćelija neće biti prazna (polje je obavezno);
  • Vrijednost AUTO_INCREMENT je autocomplete;
  • PRIMARY KEY je primarni ključ.

Kako dodati informacije

Za popunjavanje polja kreirane tablice vrijednostima koristi se INSERT izraz. Pišemo sljedeće linije koda:

INSERT IN TO 'table'

(login , pass , datum) VRIJEDNOSTI

('Vasa', '87654321', '2017-06-21 18:38:44');

U zagradama navodimo naziv kolona, ​​au sljedećem - vrijednosti.

Bitan! Pratite redoslijed imena i vrijednosti stupaca.

Kako ažurirati informacije

Za to se koristi naredba UPDATE. Pogledajmo kako promijeniti lozinku za određenog korisnika. Pišemo sljedeće linije koda:

UPDATE 'table' SET pass = '12345678' WHERE id = '1'

Sada promijenite lozinku u '12345678'. Promjene se dešavaju u redu sa "id"=1. Ako ne napišete naredbu WHERE, promijenit će se svi redovi, a ne određeni.

Preporučujem da kupite knjigu SQL za lutke ". Uz njegovu pomoć moći ćete profesionalno raditi s bazom podataka korak po korak. Sve informacije su izgrađene po principu od jednostavnog do složenog i biće dobro prihvaćene.

Kako izbrisati unos

Ako ste nešto pogrešno napisali, ispravite to naredbom DELETE. Radi isto kao UPDATE. Pišemo sljedeći kod:

IZBRIŠI IZ 'tabele' GDJE id = '1'

Uzorkovanje informacija

Naredba SELECT se koristi za preuzimanje vrijednosti iz baze podataka. Pišemo sljedeći kod:

SELECT * FROM 'table' WHERE id = '1'

U ovom primjeru biramo sva dostupna polja u tabeli. Ovo se dešava ako u naredbu upišete zvjezdicu "*". Ako trebate odabrati vrijednost uzorka, napišite ovako:

SELECT log , pass FROM table WHERE id = '1'

Treba napomenuti da sposobnost rada sa bazama podataka neće biti dovoljna. Da biste kreirali profesionalni internet projekat, moraćete da naučite kako da dodate podatke iz baze podataka na stranice. Da biste to učinili, upoznajte se sa php web programskim jezikom. Ovo će vam pomoći Kul kurs Mihaila Rusakova .


Brisanje tabele

Javlja se sa zahtjevom DROP. Da biste to učinili, napišite sljedeće redove:

DROP TABLE sto;

Izlaz zapisa iz tabele prema određenom uslovu

Uzmite u obzir ovaj kod:

SELECT ID, countri, city IZ tabele GDJE ljudi>150000000

Prikazaće evidenciju zemalja u kojima živi više od sto pedeset miliona stanovnika.

Udruženje

Povezivanje više tabela zajedno je moguće pomoću Join. Pogledajte kako to radi u ovom videu:

PHP i MySQL

Još jednom želim da naglasim da su zahtjevi prilikom kreiranja internet projekta uobičajena stvar. Da biste ih koristili u php dokumentima, slijedite sljedeći algoritam radnji:

  • Povežite se na bazu podataka pomoću naredbe mysql_connect();
  • Koristeći mysql_select_db() odaberite željenu bazu podataka;
  • Obrada upita sa mysql_fetch_array();
  • Zatvaramo vezu sa naredbom mysql_close().

Bitan! Rad sa bazom podataka nije težak. Glavna stvar je da pravilno napišete zahtjev.

Webmasteri početnici će razmisliti. I šta čitati na ovu temu? Želio bih preporučiti knjigu Martina Grabera " SQL za obične smrtnike ". Napisano je tako da će početnici sve razumjeti. Koristite ga kao referentnu knjigu.

Ali ovo je teorija. Kako to funkcionira u praksi? U stvari, internet projekat ne samo da se mora kreirati, već i dovesti na TOP Google-a i Yandex-a. Video kurs će vam pomoći u tome " Kreiranje i promocija sajta ».


Video uputstvo

Imate još pitanja? Pogledajte još online video.

Zaključak

Dakle, bavljenje pisanjem sql upita nije tako teško kao što se čini, ali svaki webmaster to mora učiniti. Gore opisani video kursevi pomoći će u tome. Pretplatite se na moja VKontakte grupa da prvi sazna za nove zanimljive informacije.