Ang SQL ay ang aming lahat

Tulad ng malamang na hulaan mo na, ang lahat ng mga utos sa SQL server ay maaaring ibigay sa pamamagitan ng mga query sa SQL. Lahat.

Ang mga pangkat na ito ay opisyal na nahahati sa 4 na grupo:

  • mga pahayag ng kahulugan ng data (Data Definition Language, DDL ):

    • Lumilikha ang CREATE ng database object (database mismo, table, view, user, at iba pa)
    • Binabago ni ALTER ang isang bagay
    • Tinatanggal ng DROP ang isang bagay
  • mga operator ng pagmamanipula ng data (Data Manipulation Language, DML ):

    • Pinipili ng SELECT ang data na nakakatugon sa mga ibinigay na kundisyon
    • Ang INSERT ay nagdaragdag ng bagong data
    • Binabago ng UPDATE ang kasalukuyang data
    • Tinatanggal ng DELETE ang data
  • mga operator ng kahulugan ng data access (Data Control Language, DCL ):

    • Binibigyan ng GRANT ang isang user (grupo) ng mga pahintulot na magsagawa ng ilang partikular na operasyon sa isang bagay
    • Bawiin ng REVOKE ang mga naunang ibinigay na pahintulot
    • Ang DENY ay nagtakda ng pagbabawal na nangunguna sa isang permit
  • Mga pahayag ng Transaction Control Language ( TCL ) :

    • Ang COMMIT ay naglalapat ng isang transaksyon
    • Ibinabalik ng ROLLBACK ang lahat ng pagbabagong ginawa sa konteksto ng kasalukuyang transaksyon
    • Hinahati ng SAVEPOINT ang isang transaksyon sa mas maliliit na seksyon

At ang unang dalawang antas, pinag-aralan lang namin ang mga varieties ng SELECT statement. Isipin kung gaano karaming mga kagiliw-giliw na bagay ang naghihintay sa atin sa hinaharap.

Ngunit kami ay naghahanda dito lalo na tungkol sa mga programmer ng Java, kaya pag-aaralan namin ang mga senaryo na tiyak na makakaharap mo sa trabaho.

Ang tagapangasiwa ng system sa proyekto ay malamang na gagawa ng lahat ng mga database, ngunit tiyak na kailangan mong pumili mula sa data nang maraming beses.

Bukod dito, kung minsan ang iyong code ay hindi isusulat ang lahat ng data sa database o isusulat ito sa maling paraan, kaya madalas mong kailangang umakyat dito gamit ang mga panulat at makita kung ano ang aktwal na nakaimbak doon.

Balikan natin muli ang mga bagay na nahawakan natin sa mga nakaraang lecture.

Paglikha ng schema sa isang database

Upang lumikha ng bagong schema sa DBMS, kailangan mong patakbuhin ang command:

CREATE SCHEMA Name;

Ito ang pinakamadaling opsyon. Gayundin, kapag gumagawa ng bagong schema, maaari mong tukuyin ang format ng pag-encode ng data at iba pang mga parameter.

Kung gusto mong tanggalin ang schema, ngunit hindi ka sigurado kung mayroon ito, kailangan mong patakbuhin ang command:

DROP SCHEMA IF EXIST Name;

Madalas mong makikita ang mga utos na ito sa mga file na may mga backup ng iba't ibang mga database, kaya dinadala ko sila dito.

Pagpili ng kasalukuyang scheme

Kung marami kang schema sa iyong DBMS, madaling mangyari na ang iba't ibang schema ay may parehong mga talahanayan. Upang maiwasan ang pagkalito, maaari kang gumawa ng dalawang bagay:

  • Palaging ilagay ang pangalan ng schema bago ang pangalan ng talahanayan
  • Tukuyin ang default na schema

Sumulat tayo ng query na pipili ng data mula sa talahanayan ng user , na nasa test schema . Magiging ganito ang hitsura nito:

SELECT * FROM test.user;

Ito ay kailangan lamang kung kailangan mong sumali (SUMALI) ng ilang mga talahanayan mula sa iba't ibang mga schema sa isang query.

Sa pamamagitan ng paraan, sa wikang Java madalas kaming gumawa ng isang bagay na katulad: kung sa code kailangan naming gumamit ng mga klase na may parehong pangalan mula sa iba't ibang mga pakete, idagdag namin ang pangalan ng package bago ang pangalan ng klase.

Ang pangalawang paraan ay ang tukuyin ang default na schema . Kung ang query ay tumutukoy ng isang pangalan ng talahanayan ngunit walang schema, ang default na schema ay ginagamit. Upang gawin ito, gamitin ang USE statement :

USE name - schemes;

Isulat muli natin ang nakaraang query gamit ang USE statement:

USE test;
SELECT * FROM user;

Paglikha ng View

Bilang karagdagan sa mga talahanayan na may totoong data, pinapayagan ka ng SQL na mag-imbak ng isang bagay tulad ng mga virtual na talahanayan, kung saan kinukuha ang data mula sa mga totoong talahanayan. Ang ganitong mga virtual na talahanayan ay tinatawag na VIEW.

Ang nasabing talahanayan ay hindi maaaring mag-imbak ng totoong data, at sa bawat oras na ma-access ito, kumukuha ito ng data mula sa mga totoong talahanayan. Ang nilalaman ng naturang VIEW ay tinukoy gamit ang isang SQL query.

Maaari kang lumikha ng isang VIEW mula sa anumang SELECT query na may isang command tulad ng:

CREATE VIEW Name AS
SELECT-request;
Sumulat tayo ng query na lilikha ng public_employee virtual na talahanayan batay sa talahanayan ng empleyado, kung saan itatago ang impormasyon ng suweldo ng empleyado:
CREATE VIEW public_employee AS
SELECT id, name FROM employee

Sa halimbawa sa itaas, ang aming talahanayan (VIEW) public_employee ay maglalaman lamang ng mga ID ng empleyado at kanilang mga pangalan, ngunit hindi impormasyon tungkol sa kanilang suweldo. Maaari mong gamitin ang mga ganitong View sa parehong lugar tulad ng mga totoong talahanayan.

Bakit kailangan ang Views? Mayroon silang isang bilang ng mga pakinabang:

Nababaluktot na kontrol sa pag-access sa impormasyon . Maaari mong bigyan ng access ang ilang partikular na user sa VIEW, ngunit hindi para magbigay ng access sa mga talahanayan. At sa View, kumuha lang ng pampublikong impormasyon mula sa mga talahanayan. Bilang karagdagan, kung ang mga bagong column na may mahalagang impormasyon ay idaragdag sa mga talahanayan sa hinaharap, hindi ito aksidenteng makapasok sa View.

Denormalization ng data . Para sa kaginhawaan ng pag-iimbak, ang data ay madalas na nahahati sa daan-daang at libu-libong mga talahanayan, ngunit hindi masyadong maginhawa para sa isang ordinaryong tao na magtrabaho sa naturang data - kailangan mong magsulat ng masyadong kumplikadong mga query. Sa View, maaari kang lumikha ng mga virtual na talahanayan na nagpapakita ng data mula sa dose-dosenang iba't ibang mga talahanayan sa isang talahanayan.

Polymorphism at Encapsulation . Maaari mong baguhin ang mga istruktura ng iyong database. Kasabay nito, ang mga user ng program na nagtatrabaho sa iyong Views ay hindi mahuhulaan na may nagbago. At hindi na kailangang muling isulat ang code ng mga program na may access sa View. Kakailanganin mo lang na i-tweak ang SQL script na nauugnay sa VIEW.

Basahin lamang . Ang view ay maaari lamang itakda sa isang SELECT query, kaya ang pagtatrabaho sa View ay hindi maaaring baguhin ang data sa totoong mga talahanayan sa anumang paraan. Sa pamamagitan ng paraan, ito ay isa pang plus sa pabor ng query caching. Ngunit higit pa sa susunod na pagkakataon.