Johdatus kohdistimiin SQL: ssä

Kohdistimet ovat väliaikaisia ​​työtiloja, jotka luodaan muistiin käsittelemään joitain SQL-komentoja joukolla dataa. Liian monimutkainen määritelmä? Ymmärretään se. Ajattele kohdistimia kuten jokaisessa SQL-silmukassa. Haluat suorittaa tehtävän tietoriville, käytät kohdistinta. Oletetaan, että sinulla on työntekijätaulukko, joka sisältää palkat jokaiselle organisaation työntekijälle. Haluat lisätä jokaisen työntekijän palkkaa tietyllä prosentilla. Tässä voit käyttää kohdistinta. 'Kuinka' on havainnollistettu myöhemmin artikkelissa.

Joten kohdistimet luovat väliaikaisen työtilan valitulla rivisarjalla ja osoittimella, joka osoittaa nykyiseen riviin. Tätä rivisarjaa, jolla kohdistin suorittaa halutun toiminnan, kutsutaan aktiiviseksi datajoukkoksi. Osoitin hakee rivit tulossarjasta yksi kerrallaan. Voit sitten suorittaa minkä tahansa SQL-operaation yhdellä rivillä kerrallaan.

Implisiittiset kohdistimet

SQL-jäsentäjä tuottaa implisiittiset kohdistimet, kuten nimestä käy ilmi, DML-kyselyille. DML-kyselyt ovat Data Manipulation Queries. Nämä kyselyt manipuloivat tai muuttavat tietoja. Ne eivät häiritse tietokannan rakennetta tai kaavaa. Kyselyt, kuten SELECT, INSERT, UPDATE ja DELETE, luovat implisiittisen kohdistimen. Implisiittiset osoittimet ovat piilotetut loppukäyttäjälle.

Selkeät kohdistimet

Täsmälliset kohdistimet ovat käyttäjän luomia osoittimia. Kun käyttäjä kehottaa SQL-jäsentelyä luomaan kohdistimen aktiiviselle joukolle, näin luotua kohdistinta kutsutaan eksplisiittiseksi kohdistimeksi. Aktiivinen joukko määritetään käyttäjän SELECT-kyselyn avulla. Haluamme kattaa tarkat kohdistimet yksityiskohtaisesti tässä artikkelissa.

Kohdistintoiminnot - Kohdistimen elinkaari

Kohdistimen elinkaari käsittää tyypillisesti viisi vaihetta:

1. Ilmoita: Ensimmäinen vaihe on osoittimen ilmoittaminen. Tämä vaihe ohjeistaa järjestelmää luomaan osoittimen annetulla tietojoukolla. Tietojoukko rakennetaan käyttämällä SQL-käskyä. Tässä vaiheessa aktiivinen joukko luodaan, mutta kohdistimen väliaikaista työtilaa ei ole vielä avattu muistiin.

2. Avaa: Seuraavaksi järjestelmää kehotetaan avaamaan kohdistin. Tässä vaiheessa väliaikainen työtila ladataan muistiin aktiivisen sarjan kanssa ja luodaan osoitin, joka osoittaa aktiivisen sarjan ensimmäiselle riville.

3. Hae: Tämä on toistuva vaihe koko prosessissa. Osoittimen osoittama nykyinen rivi haetaan ja haluttu tehtävä suoritetaan rivitiedoilla. Osoitin siirtyy kohdistimen seuraavalle riville.

4. Sulje: Kun tietojen käsittely on suoritettu, osoitin on suljettava.

5. Deallocate: Tämä on viimeinen vaihe kohdistimen poistamiseksi ja kohdistimelle osoitetun muistin, prosessorin ja muiden järjestelmäresurssien vapauttamiseksi.

Suorat kursorit - toiminnassa!

Okei, joten nyt meillä on perustiedot ymmärrystä siitä, mitkä osoittimet ovat ja kuinka ne toimivat. On aika saada kätemme likaantumaan ja luoda itse osoitin.

SQL-osoittimien terminologia

Ymmärretään tässä syntaksissa käytetyt terminologiat.

Kohdistimen laajuus

  • Kohdistimen laajuus voi olla joko GLOBAL tai LOCAL . Globaali kohdistin on käytettävissä koko yhteyden ajan. Paikallinen kohdistin on rajoitettu laajuuteen vain tallennettuihin toimintoihin, toimintoihin tai kohdistinta pitävään kyselyyn.
  • Tämä on MS SQL Server -kohtainen ominaisuus. MySQL tukee vain paikallisia laajuisia kohdistimia.

Kohdistimen liike

  • MS SQL Server antaa myös mahdollisuuden asettaa kohdistimen liike. Se voi olla joko tavanomainen Forward_Only -tila, joka siirtää osoittimen ensimmäiseltä riviltä viimeiselle riville riviltä. Tai se voidaan vierittää ensimmäiseen, viimeiseen, edelliseen tai seuraavaan riviin.
  • MySQL: n kohdistimet eivät ole vieritettävissä.

Kohdistintyyppi

  • Kohdistin voi olla staattinen, koska se voi tallentaa aktiivisen sarjan välimuistiin asti kaupan sijaintiin ja voi selata eteenpäin ja taaksepäin tämän välimuistilla olevan aktiivisen sarjan läpi. Kohdistin voi olla nopeasti eteenpäin vain staattisessa tilassa.
  • Se voi myös olla dynaaminen sallia rivien lisäämisen tai poistamisen aktiivisessa joukossa, kun kohdistin on auki. Muutokset eivät ole näkyvissä muille kohdistimen käyttäjille näppäimistötilassa. MySQL-osoittimet ovat vain nopeita eteenpäin.

Kohdistinlukko

  • Kohdistinlukot ovat hyödyllisiä monen käyttäjän ympäristössä. Ne lukitsevat rivin siten, että kaksi käyttäjää ei toimi samaan tietoon samanaikaisesti. Tämä varmistaa tietojen eheyden.
  • Vain luku -lukko ilmoittaa, että riviä ei voi päivittää.
  • Vierityslukot lukitsevat rivin noudettaessa kohdistimeen varmistaen, että tehtävä onnistuu ja päivitetyt tiedot ovat saatavilla kohdistimen ulkopuolella. Optimistinen yritys päivittää rivi ilman lukitusta. Siten, jos rivi on päivitetty kohdistimen ulkopuolelle, tehtävä ei onnistu.
  • MySQL tukee vain luku -lukkoja. Tämä tarkoittaa, että MySQL ei päivitä varsinaista taulukkoa, vaan kopioi tiedot päivityskomentojen suorittamiseksi.

Siksi näemme, että nämä vaihtoehdot ovat käytettävissä vain MS SQL Server -palvelussa. Tämä tekee MySQL-osoittimien syntaksin entistä yksinkertaisemmaksi.

esimerkki

Päivitetäänmme nyt työntekijöiden palkkaa Työntekijätaulukkoon.

Käytämme alla olevia tietoja näissä kohdistimissa SQL-esimerkissä.

Kohdistinkoodimme olisi seuraava:

DECLARE @sal float
DECLARE @newsal float
DECLARE Emp_Cur CURSOR FOR SELECT Salary, Updated_Salary FROM Employees
OPEN Emp_Cur
FETCH NEXT FROM Emp_Cur INTO @sal, @newsal
WHILE @@FETCH_STATUS = 0
BEGIN
SET @newsal = @sal*1.25
UPDATE Employees SET Updated_Salary = @newsal WHERE CURRENT OF Emp_Cur
FETCH NEXT FROM Emp_Cur INTO @sal, @newsal
END
CLOSE Emp_Cur
DEALLOCATE Emp_Cur

Ja Tulos yllä olevan kohdistinkomennon suorittamisen jälkeen olisi seuraava:

Johtopäätös - Kohdistimet SQL: ssä

Siksi olemme nähneet, mitkä osoittimet ovat, kuinka niitä käytetään ja missä niitä voidaan välttää. Osoittimet osoittautuvat hyödyllisiksi apuohjelmiksi kehittäjille, mutta ne suorituksen kustannuksella. Joten ole varovainen, kun valitset kohdistimet.

Suositellut artikkelit

Tämä on opas SQL-osoittimiin. Tässä keskustellaan esimerkkejä SQL-kohdistimen tyypeistä, elinkaaresta ja terminologiasta. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. SQL-liittymien tyypit
  2. SQL-muutoskomento
  3. SQL-näkymät
  4. SQL-hallintatyökalut
  5. Kohdistintyypit PL / SQL: ssä
  6. MySQL: n kuusi suosittua liittymistyyppiä ja esimerkkejä