SQL programming language. Ano ang isang "user"? Iba pang mga paghihigpit – NATATANGI, DEFAULT, CHECK

Sa kabanatang ito...

  • Ano ang SQL
  • Mga Maling Paniniwala sa SQL
  • tignan mo iba't ibang pamantayan SQL
  • Pagkilala karaniwang mga utos At nakalaan na salita SQL
  • Kumakatawan sa mga numero, simbolo, petsa, oras, at iba pang uri ng data
  • Hindi natukoy na mga halaga at paghihigpit
  • Paggamit ng SQL sa isang client/server system
  • SQL sa web

SQL ay isang flexible na wika na maaaring gamitin ng karamihan iba't ibang paraan. Ito ang pinakakaraniwang tool na ginagamit upang makipag-usap sa isang relational database. Sa kabanatang ito, ipapaliwanag ko kung ano ang SQL at kung ano ang hindi, partikular kung paano naiiba ang SQL mga wika sa kompyuter iba pang uri. Pagkatapos ay magiging pamilyar ka sa mga command at uri ng data na sinusuportahan ng karaniwang SQL. Bilang karagdagan, ipapaliwanag ko ang mga pangunahing konsepto tulad ng hindi natukoy na mga halaga At mga paghihigpit. Sa wakas, bibigyan ng pangkalahatang-ideya kung paano umaangkop ang SQL sa kapaligiran ng kliyente/server, gayundin sa Internet at mga intranet ng mga organisasyon.

Ano ang SQL at kung ano ito ay hindi

Ang unang bagay na dapat maunawaan tungkol sa SQL ay hindi ito a pamamaraan tulad ng FORTRAN, Basic, C, COBOL, Pascal at Java. Upang malutas ang isang problema gamit ang isa sa mga pamamaraang wikang ito, kailangan mong magsulat ng isang pamamaraan na nagsasagawa ng mga tinukoy na operasyon nang sunud-sunod hanggang sa makumpleto ang gawain. Ang pamamaraan ay maaaring isang linear sequence o naglalaman ng sumasanga, ngunit sa alinmang kaso ay tinukoy ng programmer ang pagkakasunud-sunod ng pagpapatupad.

Sa madaling salita, ang SQL ay hindi pamamaraan dila. Upang magamit ito upang malutas ang isang problema, sabihin sa SQL, Ano ba talaga kailangan mo ito na parang nakikipag-usap ka sa genie mula sa lampara ni Aladdin. At sa parehong oras ay hindi na kailangang sabihin, paano makuha mo ang gusto mo. Ang database management system (DBMS) ay magpapasya kung paano pinakamahusay na matupad ang iyong kahilingan.

ayos lang. Sinabi ko lang na ang SQL ay hindi isang procedural language. Sa esensya, ito ay totoo. Gayunpaman, milyon-milyong mga programmer sa paligid (at maaaring isa ka sa kanila) ay nakasanayan na sa paglutas ng mga problema sa pamamaraan, kaya sa mga nakaraang taon Nagkaroon ng maraming presyon upang magdagdag ng ilang mga kakayahan sa pamamaraan sa SQL. Samakatuwid, kasama na ngayon bagong bersyon Ang pagtutukoy ng SQL, SQL:2003, mayroong mga tool sa pamamaraan ng wika tulad ng mga bloke ng BEGIN, mga kondisyong pahayag KUNG, mga pag-andar at pamamaraan. Gamit ang mga bagong tool na ito, maaaring maimbak ang mga program sa isang server upang magamit muli ng maraming user.

Upang ilarawan kung ano ang ibig kong sabihin noong sinabi kong "sabihin sa system kung ano mismo ang kailangan mo," sabihin nating mayroon kang talahanayan ng EMPLOYEE na may data ng empleyado at gusto mong piliin ang lahat ng mga row mula dito na tumutugma sa lahat ng "senior" na empleyado. Ang mga "senior" na manggagawa ay maaaring tukuyin bilang sinumang higit sa 40 taong gulang o kumikita ng higit sa $60,000 sa isang taon. Ang pagpili na kailangan mo ay maaaring gawin gamit ang sumusunod na query:

PUMILI * MULA SA EMPLEYADO KUNG SAAN EDAD >40 O SALARY >60000;

Pinipili ng pahayag na ito mula sa talahanayan ng EMPLOYEE ang lahat ng mga hilera kung saan ang halaga ng column na AGE (edad) ay mas malaki sa 40 o ang halaga ng column na SALARY (suweldo) ay higit sa 60000. Alam mismo ng SQL kung paano pumili ng impormasyon. Sinusuri ng database engine ang database at nagpapasya para sa sarili kung paano dapat isagawa ang query. Ang kailangan mo lang gawin ay ipahiwatig kung anong data ang kailangan mo.

Tandaan:
Ang query ay isang tanong na itatanong mo sa database. Kung ang alinman sa data nito ay tumutugma sa mga kundisyon ng iyong kahilingan, ipapasa ito sa iyo ng SQL
.

Ang mga modernong pagpapatupad ng SQL ay kulang sa marami sa mga simpleng konstruksyon ng programming na mahalaga sa karamihan ng iba pang mga wika. Sa mga aplikasyon para sa Araw-araw na buhay kadalasan kahit ilan sa mga konstruksyon na ito ay kinakailangan, kaya ang SQL talaga sublanguage datos. Kahit na sa mga karagdagan na lumitaw sa SQL kasama ang pamantayan ng SQL: 1999 at karagdagang mga extension idinagdag sa SQL:2003, kailangan mo pa ring gamitin ang isa sa mga sumusunod kasabay ng SQL upang lumikha ng kumpletong aplikasyon. mga wika ng programa, tulad ng S.

Maaari kang pumili ng impormasyon mula sa database sa isa sa mga sumusunod na paraan.

  • Gamit ang isang beses, hindi-programmable na query mula sa computer console, paglalagay ng SQL command at pagbabasa ng mga resulta ng pagpapatupad nito sa screen. Ang console ay isang tradisyonal na kahulugan ng termino kagamitan sa kompyuter, na gumaganap ng gawain ng keyboard at screen na ginagamit sa mga modernong PC. Kapaki-pakinabang ang mga query sa console kapag kailangan mo ng mabilis na pagtugon sa isang partikular na kahilingan. Upang matugunan ang ilang kasalukuyang pangangailangan, maaaring kailanganin mo ang data mula sa database na hindi pa kinakailangan dati. Maaaring hindi mo na sila kailangan muli, ngunit kailangan mo sila ngayon. Ipasok ang naaangkop na SQL query mula sa keyboard, at pagkaraan ng ilang sandali ang resulta ay lalabas sa iyong screen.
  • Paggamit ng isang programa na kumukuha ng impormasyon mula sa isang database at pagkatapos ay lumilikha ng isang ulat batay sa data na ito, alinman sa ipinapakita sa screen o naka-print. Maaari ding gamitin ang SQL sa ganitong paraan. Mahirap SQL query, na maaaring maging kapaki-pakinabang pa rin sa hinaharap, ay maaaring direktang ilagay sa programa. Nagbibigay-daan ito sa iyo na muling gamitin ito sa hinaharap. Kaya, ang pagbabalangkas ng query ay isinasagawa nang isang beses. Sinasaklaw ng Kabanata 15 kung paano ipasok ang SQL code sa mga program na nakasulat sa ibang wika.

Ang bawat SQL command ay nagsisimula sa isang keyword, isang pandiwa na naglalarawan sa aksyon na ginagawa ng command, tulad ng CREATE. Ang isang pangkat ay maaaring magkaroon ng isa o higit pang mga pangungusap. Inilalarawan ng pangungusap ang data kung saan gumagana ang utos o naglalaman ng paglilinaw ng impormasyon tungkol sa aksyon na ginagawa ng command. Ang bawat sugnay ay nagsisimula sa isang keyword, tulad ng WHERE Ang ilang mga sugnay sa utos ay kinakailangan, ang iba ay hindi. Ang ilang mga pangungusap ay maaaring maglaman ng mga karagdagang keyword at expression. Kasama sa maraming pangungusap ang mga pangalan ng talahanayan o field. Ang mga pangalan ay dapat nasa pagitan ng 1 at 18 character, magsimula sa isang titik, walang mga puwang, at Mga espesyal na simbolo bantas. Ang mga keyword ay hindi maaaring gamitin bilang mga pangalan.

52. SQL (Structured Query Language) – Nakabalangkas na Wika Mga kahilingan- Ito karaniwang wika mga kahilingan para sa pakikipagtulungan mga database ng relasyon datos.

Hindi naglalaman ang SQL tradisyunal na mga operator, na kinokontrol ang pagpapatupad ng mga programa, naglalaman lamang ito ng isang set karaniwang mga operator access sa data na nakaimbak sa database.

Maaaring gamitin ang SQL upang ma-access ang isang database sa dalawang mode: interaktibong gawain at sa mga programa sa aplikasyon .

Sa pamamagitan ng paggamit gumagamit ng SQL baka sa interactive na mode mabilis na makatanggap ng mga sagot sa anuman, kabilang ang medyo kumplikadong mga query, samantalang upang maipatupad ang mga query na ito sa ibang wika ay kinakailangan na bumuo ng isang kaukulang programa. Ang mga application program na nakasulat sa ilang mga programming language ay gumagamit ng SQL bilang built-in wika para sa pag-access sa database.

Ang pagkilala sa wikang SQL sa kabuuan, maaari naming i-highlight ang mga sumusunod na tampok:

· mataas na antas ng istraktura, nakapagpapaalaala wikang Ingles;

· pagsasarili mula sa partikular na DBMS;

· pagkakaroon ng pagbuo ng mga pamantayan;

· ang kakayahang magsagawa ng mga interactive na query upang makuha ang data at baguhin ang kanilang istraktura;

· probisyon pag-access sa software sa mga database;

· suporta sa arkitektura ng kliyente/server;

· Extensibility at suporta para sa object-oriented na teknolohiya;



· kakayahang mag-access ng data sa Internet.

Pangunahing pag-andar ng wikang SQL:

SQL – interactive na wika ng query. Pumasok ang mga user Mga utos ng SQL interactive upang kunin ang data at ipakita ito sa screen, gayundin upang gumawa ng mga pagbabago sa database;

SQL – wika ng programming sa database. Upang ma-access ang database, ang mga SQL command ay ipinasok sa mga application program;

SQL – wika ng pangangasiwa ng database. Ang isang database administrator ay maaaring gumamit ng SQL upang tukuyin ang istraktura ng database at kontrolin ang access sa data;

SQL – wika ng aplikasyon ng kliyente/server. Sa inilapat Mga programang SQL ginagamit bilang isang paraan ng pag-oorganisa ng komunikasyon lokal na network na may isang database server na nag-iimbak ng nakabahaging data, atbp.

55. Mga kakayahan sa wika Ang wikang SQL, na sumusunod sa pinakabagong mga pamantayang SQL:2003, SQL:1999, ay isang napakayaman at Mahirap na wika, ang lahat ng mga posibilidad na mahirap agad na mapagtanto, higit na hindi maintindihan. Samakatuwid, kailangan nating hatiin ang wika sa mga antas. Sa isa sa mga klasipikasyon na ibinigay ng pamantayan ng SQL, ang wikang ito ay nahahati sa "basic" (entry), "intermediate" (intermediate) at "full" na mga antas. Isang pangunahing antas ng naglalaman ng humigit-kumulang apatnapung utos na maaaring ipangkat sa mga kategorya ayon sa kanilang paggana.

GUMAWA NG MGA Detalye ng TABLE (NOMZ INT, FULL NAME CHAR(15), YEAR INT, GENDER CHAR(3))

DROP TABLE Mga Detalye

ALTER TABLE Detalye (SAMPLE CHAR(10))

GUMAWA NG VIEW Academic Progress M1 BILANG PILI *MULA SA Akademikong Pagganap SAAN GROUP= "M-1"

INSERT INTO Information VALUES (980101, "IVANOV I. I.", 1980, "HUSBAND")

I-DELETE MULA SA Mga Detalye KUNG SAAN NOMZ=980201

UPDATE Information SET Buong pangalan = "KRAVTSOVA I. I." SAAN NOMZ=980201

SELECT * FROM Information WHERE FULL NAME="SIDOROV S. S." O BUONG PANGALAN="PETROV P. P."

54. Mga uri at expression ng data Upang ma-access ang isang relational table sa wika ng SQL kailangan mong magsulat (tukuyin) ng isang utos. SELECT (piliin)keyword nagsasabi sa DBMS kung anong aksyon ang gagawin nito utos na ito. Magsisimula ang mga kahilingan sa command keyword. Bilang karagdagan sa SELECT, ito ay maaaring mga salita GUMAWA- lumikha, INSERT-insert, I-DELETE- tanggalin, COMMIT- kumpleto, atbp.

MULA – isang keyword tulad ng SELECT na lumalabas sa bawat command. Sinusundan ito ng isang puwang at pagkatapos ay ang pangalan ng mga talahanayan na ginamit bilang mga mapagkukunan ng impormasyon. Ang mga pangalan ng mga talahanayan at mga patlang ay dapat maglaman ng mula 1 hanggang 18 na mga character, magsimula sa isang titik at hindi naglalaman ng mga puwang o mga espesyal na character.

SAAN isang keyword na sinusundan ng isang panaguri—isang kundisyon na ipinataw sa isang entry sa talahanayan na dapat nitong matugunan upang maisama sa pagpili.

INIUTOS NI - pag-uuri ng mga ipinapakitang tala (Asc – pataas, Desc – pababang. Kung ang uri ng pag-uuri ay hindi tinukoy, ang pag-uuri ay nangyayari sa pataas na pagkakasunud-sunod).

CHAR(haba) CHARACTER(haba)Patuloy na haba ng mga string ng character

INTEGER INTBuong mga numero

MALIITMaliit na integer

NUMERIC(katumpakan, degree) DECIMAL(katumpakan, degree DEC(katumpakan, degree)Fixed point number

FLOAT (katumpakan)Numero ng lumulutang na punto

Dobleng katumpakanmga numero na may lumulutang na lock, mataas na katumpakan

Mga expression sa SQL ay ginagamit upang tukuyin ang pamantayan para sa pagpili ng data o pagsasagawa ng mga operasyon sa mga halaga na binabasa mula sa isang database. Ang mga expression ay isang tiyak na pagkakasunud-sunod ng mga patlang ng database, mga constant, mga function na konektado ng mga operator.

Mga Constant ay ginagamit upang ipahiwatig ang mga tiyak na halaga ng data. Fixed point constants, halimbawa: 21 -375.18 62.3

Floating point constants, halimbawa: 1.5E7 -3.14E9 2.5E-6 0.783E24

String constants dapat isama sa single quotes. Mga halimbawa ng naturang mga pare-pareho: "Minsk" "New York" "Ivanov I. I."

Nawawalang halaga(WALA). Sinusuportahan ng SQL ang paghawak ng nawawalang data gamit ang konsepto ng isang nawawalang halaga.

Karamihan sa mga SQL-oriented na DBMS ay sumusuporta sa tinatawag na pinagsama-samang (kabuuang) function. Sa madalas na ginagamit pinagsama-samang mga function maaaring isama ang mga sumusunod:

· COUNT- bilang ng mga halaga sa haligi ng talahanayan;

· SUM– ang kabuuan ng mga halaga sa hanay;

· AVG– arithmetic mean ng mga value sa column;

· MAXpinakamataas na halaga sa hanay;

· MINpinakamababang halaga sa kolum.

Maaaring gamitin ang mga sumusunod na expression: mga uri ng operator:

· aritmetika: + (dagdag), - (pagbabawas), * (pagpaparami), / (dibisyon);

· relasyon: = (katumbas), > (mas malaki),< (меньше), >= (mas malaki sa o katumbas ng),<= (меньше или равно), <>(hindi pantay);

· pang-aasar ng utak: AT(lohikal na "AT"), O(lohikal na "O"), HINDI(lohikal na pagtanggi);

56. Mga Utos sa Kontrol ng Transaksyon nagbibigay-daan sa iyo upang matiyak ang integridad ng database.

transaksyon sa SQL ay ilang sequential SQL command na dapat isagawa bilang isang unit.

Sa wikang SQL, ang pagproseso ng transaksyon ay ipinatupad gamit ang dalawang utos - COMMIT At ROLLBACK. Pinamamahalaan nila ang mga pagbabagong ginawa ng isang pangkat ng mga koponan. Koponan COMMIT nag-uulat ng matagumpay na pagkumpleto ng transaksyon. Ipinapaalam nito sa DBMS na nakumpleto na ang transaksyon, matagumpay na nakumpleto ang lahat ng mga utos nito, at walang mga hindi pagkakapare-pareho ang lumitaw sa database. Koponan ROLLBACK nag-uulat ng hindi matagumpay na pagkumpleto ng transaksyon. Ipinapaalam nito sa DBMS na hindi gustong kumpletuhin ng user ang transaksyon, at dapat itapon ng DBMS ang anumang mga pagbabagong ginawa sa database bilang resulta ng transaksyon. Sa kasong ito, ibinabalik ng DBMS ang database sa estado kung nasaan ito bago isagawa ang transaksyon.

Mga koponan COMMIT At ROLLBACK ay pangunahing ginagamit sa mode ng programa, bagama't maaari din silang magamit nang interactive.

57. Upang ma-access ang mga control command Ito ay mga utos para sa pagsasagawa ng mga administratibong function na nagtatalaga o nagpapawalang-bisa sa karapatan (pribilehiyo) na gumamit ng mga talahanayan ng database sa isang tiyak na paraan. Ang bawat gumagamit ng database ay may ilang mga karapatan na may kaugnayan sa mga bagay sa database.

Mga karapatan– ito ang mga aksyon na may bagay na maaaring gawin ng user. Maaaring magbago ang mga karapatan sa paglipas ng panahon: maaaring kanselahin ang mga luma, maaaring magdagdag ng mga bago. Ang mga sumusunod na karapatan ay ibinigay:

· INSERT – ang karapatang magdagdag ng data sa talahanayan;

· I-UPDATE – ang karapatang baguhin ang data ng talahanayan;

· DELETE – ang karapatang magtanggal ng data mula sa talahanayan;

· MGA SANGGUNIAN – ang karapatang tukuyin ang pangunahing susi.

58 Pag-embed ng wika sa mga application program..Sa built-in Ito ay mga utos na idinisenyo upang ipatupad ang access sa isang database mula sa mga application program na nakasulat sa isang partikular na programming language.

Pagsasalin: Alexandr Pyramidin

Ipinapakilala sa iyo ng artikulong ito ang istruktura ng wikang SQL, pati na rin ang ilang pangkalahatang konsepto tulad ng mga uri ng mga field ng data na maaaring maglaman at ang ilan sa mga kalabuan na umiiral sa SQL. Hindi mo kailangang tandaan ang bawat detalyeng binanggit sa artikulong ito. Ito ay isang maikling pangkalahatang-ideya lamang; maraming mga detalye ang ibinibigay upang maaari kang sumangguni sa kanila sa ibang pagkakataon habang ikaw ay nakabisado ang wika.

Paano gumagana ang SQL?

Ang SQL ay isang wikang partikular na idinisenyo para sa mga relational database (RDBs). Gumagawa ito ng maraming gawain na kailangan mong gawin kung gumagamit ka ng pangkalahatang layunin ng programming language tulad ng C. Upang bumuo ng RDB sa C, kailangan mong magsimula sa simula. Tutukuyin mo ang isang bagay na tinatawag na isang talahanayan na maaaring lumaki upang magkaroon ng anumang bilang ng mga hilera, at pagkatapos ay lumikha ng mga incremental na pamamaraan upang magpasok at kumuha ng mga halaga.

Kung gusto mong makahanap ng ilang partikular na string, kakailanganin mong sundin ang sunud-sunod na pamamaraan tulad ng sumusunod:

  • Isaalang-alang ang isang hilera ng talahanayan.
  • Tingnan kung ang string na ito ay isa sa mga string na kailangan mo.
  • Kung gayon, i-save ito sa isang lugar hanggang sa masuri ang buong talahanayan.
  • Suriin kung may iba pang mga hilera sa talahanayan.
  • Kung mayroon, bumalik sa hakbang 1.
  • Kung wala nang mga hilera, i-print ang lahat ng mga halaga na nakaimbak sa hakbang 3.

(Siyempre, hindi ito ang aktwal na hanay ng mga utos ng C, ang lohika lamang ng mga hakbang na isasama sa isang tunay na programa.) Gagawin ng SQL ang lahat ng ito para sa iyo. Ang mga utos sa SQL ay maaaring gumana sa lahat ng mga pangkat ng mga talahanayan bilang isang entity at maaaring magproseso ng anumang dami ng impormasyong nakuha o nakuha mula sa mga ito bilang isang yunit.

Ano ang ginagawa ng ANSI?

Tulad ng sinabi namin sa Panimula, ang pamantayan ng SQL ay tinukoy gamit ang ANSI (American National Standards Institute) code. Ang SQL ay hindi naimbento ng ANSI. Ito ay mahalagang imbensyon ng IBM. Ngunit ang ibang mga kumpanya ay tumalon sa SQL kaagad. Hindi bababa sa isang kumpanya (Oracle) ang nanalo ng karapatang mag-market ng mga produkto ng SQL mula sa IBM.

Pagkatapos ng ilang mga nakikipagkumpitensyang SQL program na lumitaw sa merkado, tinukoy ng ANSI ang pamantayan kung saan dapat silang sumunod. (Ang pagtukoy sa gayong mga pamantayan ay ang pag-andar ng ANSI.) Gayunpaman, pagkatapos nito lumitaw ang ilang mga problema. Bumangon sila bilang resulta ng standardisasyon ng ANSI, sa anyo ng ilang mga paghihigpit. Dahil hindi palaging tinutukoy ng ANSI kung ano ang pinakakapaki-pakinabang, sinusubukan ng mga programa na sumunod sa pamantayan ng ANSI nang hindi pinapayagan itong limitahan ang mga ito nang labis. Ito naman ay humahantong sa mga random na hindi pagkakapare-pareho. Ang mga database program ay karaniwang nagdaragdag ng mga karagdagang feature sa ANSI SQL at kadalasang nakakarelaks sa marami sa mga paghihigpit. Samakatuwid, isasaalang-alang din ang mga karaniwang variant ng ANSI. Bagama't malinaw na hindi natin masasakop ang bawat pagbubukod o pagkakaiba-iba, ang mga magagandang ideya ay malamang na pinagtibay at ginagamit sa iba't ibang mga programa, kahit na hindi sila tinukoy ng pamantayan ng ANSI. Ang ANSI ay isang uri ng pinakamababang pamantayan, at magagawa mo ang higit pa sa pinapayagan nito, bagama't dapat mong sundin ang mga alituntunin nito kapag ginagawa ang mga gawaing tinukoy nito.

Interactive at nested SQL

Mayroong dalawang SQL: Interactive at Nested. Para sa karamihan, ang parehong mga form ay gumagana nang pareho, ngunit ginagamit nang iba. Ang Interactive SQL ay ginagamit upang direktang tumakbo sa database upang makagawa ng output para magamit ng customer. Sa SQL na ito - kapag nagpasok ka ng isang command, ito ay isasagawa kaagad, at makikita mo kaagad ang output (kung mayroon man).

Binubuo ang Nested SQL ng mga SQL command na inilagay sa loob ng mga program na karaniwang nakasulat sa ibang wika (gaya ng COBOL o PASCAL). Ginagawa nitong mas malakas at epektibo ang mga naturang programa.

Gayunpaman, ang pagpapahintulot sa mga wikang ito ay may kasamang istraktura ng SQL at istilo ng pamamahala ng data na nangangailangan ng ilang interactive na SQL extension. Ang pagpasa ng mga SQL command sa nested SQL ay "na-pass off" para sa mga variable o parameter na ginamit ng program kung saan sila na-nest.

Sa aklat na ito, ipapakita namin ang SQL sa isang interactive na paraan. Ito ay magbibigay sa amin ng kakayahang talakayin ang mga utos at ang kanilang mga aksyon nang hindi nababahala tungkol sa kung paano sila na-interface sa ibang mga wika. Ang Interactive SQL ay ang form na pinakakapaki-pakinabang sa mga hindi programmer. Lahat ng natutunan mo tungkol sa interactive na SQL ay karaniwang nalalapat sa isang nested form. Ang mga pagbabagong kinakailangan para gumamit ng nested form ay sasakupin sa huling kabanata ng aklat na ito.

Mga Subsection ng SQL

Ang parehong interactive at nested form ng SQL ay may maraming bahagi, o mga subsection. Dahil malamang na makikita mo ang terminolohiyang ito kapag nagbabasa ng SQL, magbibigay kami ng ilang paglilinaw. Sa kasamaang palad, ang mga terminong ito ay hindi ginagamit sa pangkalahatan sa lahat ng pagpapatupad. Tinukoy ang mga ito ng ANSI at kapaki-pakinabang sa isang konseptwal na antas, ngunit ang karamihan sa mga SQL program ay hindi gaanong nagagawa upang hawakan ang mga ito nang hiwalay, kaya ang mga ito ay mahalagang maging functional na mga kategorya ng mga SQL command.

  • DDL (Data Definition Language) - tinatawag na Schema Description Language sa ANSI - binubuo ng mga command na lumilikha ng mga bagay (mga talahanayan, index, view, at iba pa) sa isang database.
  • Ang DML (Data Manipulation Language) ay isang hanay ng mga utos na tumutukoy kung anong mga halaga ang kinakatawan sa mga talahanayan sa anumang oras.
  • Ang DCD (Data Control Language) ay binubuo ng mga tool na tumutukoy kung papayagan ang isang user na magsagawa ng ilang partikular na pagkilos o hindi. Bahagi sila ng ANSI DDL.

Huwag kalimutan ang mga pangalang ito. Ang mga ito ay hindi magkakaibang mga wika, ngunit mga seksyon ng mga SQL command na naka-grupo ayon sa kanilang mga function.

Iba't ibang Uri ng Data

Hindi lahat ng uri ng mga halaga na matatagpuan sa mga patlang ng talahanayan ay lohikal na pareho. Ang pinaka-halatang pagkakaiba ay sa pagitan ng mga numero at teksto. Hindi ka maaaring maglagay ng mga numero sa pagkakasunud-sunod ng alpabeto o ibawas ang isang pangalan mula sa isa pa.

Dahil ang mga sistema ng DDB ay nakabatay sa mga ugnayan sa pagitan ng mga piraso ng impormasyon, ang iba't ibang uri ng data ay dapat na maiiba sa isa't isa upang ang mga naaangkop na proseso at paghahambing ay maaaring gawin sa kabuuan ng mga ito. Sa SQL, ginagawa ito sa pamamagitan ng pagtatalaga sa bawat field ng uri ng data na nagsasaad ng uri ng halaga na maaaring hawakan ng field. Ang lahat ng mga halaga sa field na ito ay dapat na pareho ang uri. Sa talahanayan ng Mga Customer, halimbawa, ang cname at lungsod ay naglalaman ng mga linya ng teksto na susuriin, at ang snum at cnum ay mga numero. Para sa kadahilanang ito, hindi ka maaaring maglagay ng Pinakamataas na halaga o isang Wala na halaga sa field ng rating, na isang uri ng numeric na data. Ang hadlang na ito ay mabuti dahil nagpapataw ito ng ilang istruktura sa iyong data. Madalas mong inihahambing ang ilan o lahat ng mga halaga sa isang partikular na field, kaya maaaring gusto mo lang magsagawa ng pagkilos sa ilang partikular na row kaysa sa lahat ng mga ito. Hindi mo ito magagawa kung ang mga halaga ng field ay may halo-halong uri ng data.

Sa kasamaang palad, ang pagtukoy sa mga uri ng data na ito ay isang pangunahing lugar kung saan ang karamihan sa mga komersyal na programa ng database at ang opisyal na pamantayan ng SQL ay hindi palaging sumasang-ayon. Ang pamantayan ng ANSI SQL ay kinikilala lamang ang teksto at numero, habang ang karamihan sa mga komersyal na programa ay gumagamit ng iba pang mga espesyal na uri. Tulad ng DATA at TIME ay, sa katunayan, halos karaniwang mga uri (bagaman ang kanilang eksaktong format ay nag-iiba). Sinusuportahan din ng ilang package ang mga uri gaya ng MONEY at BINARY. (Ang MONEY ay isang espesyal na "currency" system na ginagamit ng mga computer.)

Ang lahat ng impormasyon sa isang computer ay ipinapadala sa mga binary na numero at pagkatapos ay na-convert sa iba pang mga sistema upang madali nating magamit at maunawaan ang mga ito.

Tinutukoy ng ANSI ang ilang uri ng numero, ang mga pagkakaiba sa pagitan ng kung saan ay medyo banayad at kung minsan ay nalilito. Ang mga pinahihintulutang uri ng data ng ANSI ay nakalista sa Appendix B. Ang pagiging kumplikado ng mga uri ng ANSI na numero ay maaaring maiugnay, kahit sa isang bahagi, sa pagsisikap na gawing tugma ang nested SQL sa ilang iba pang mga wika. Ang dalawang uri ng numero ng ANSI, INTEGER at DECIMAL (na maaaring paikliin bilang INT at DEC, ayon sa pagkakabanggit), ay magiging sapat para sa aming mga layunin, pati na rin para sa mga layunin ng karamihan sa mga praktikal na aplikasyon sa negosyo. Naturally, ang uri ng INTEGER ay maaaring katawanin bilang isang DECIMAL NUMBER, na hindi naglalaman ng anumang mga digit sa kanan ng decimal point.

Ang uri para sa text ay CHAR (o CHAR), na tumutukoy sa isang string ng text. Ang isang field ng CHAR ay may haba na tinutukoy ng maximum na bilang ng mga character na maaaring ilagay sa field. Karamihan sa mga pagpapatupad ay mayroon ding hindi karaniwang uri na tinatawag na VARCHAR, na isang text string at maaaring may anumang haba hanggang sa maximum na tinukoy ng pagpapatupad (karaniwan ay 254 na character). Ang mga halaga ng CHARACTER at VARCHAR ay kasama sa mga solong panipi bilang "teksto". Ang pagkakaiba sa pagitan ng CHAR at VARCHAR ay ang CHAR ay dapat magreserba ng sapat na memorya para sa maximum na haba ng string, habang ang VARCHAR ay naglalaan ng memorya kung kinakailangan.

Ang mga uri ng character ay binubuo ng lahat ng napi-print na character, kabilang ang mga numero. Gayunpaman, ang numero 1 ay hindi katulad ng simbolo na "1". Ang character na "1" ay isang naka-print na piraso lamang ng teksto, hindi tinukoy ng system bilang numeric na halaga 1. Halimbawa, 1 + 1 = 2, ngunit ang "1" + "1" ay hindi katumbas ng "2". Ang mga halaga ng character ay naka-imbak sa computer bilang mga binary na halaga, ngunit ipinapakita sa gumagamit bilang naka-print na teksto.

Ginagawa ang conversion sa isang format na tinutukoy ng system na iyong ginagamit. Ang format ng conversion na ito ay isa sa dalawang karaniwang uri (posibleng may mga extension) na ginagamit sa mga computer system: ASCII code (ginagamit sa lahat ng personal at maliliit na computer) at EBCDIC (Extended Binary Decimal Information Interchange Code) code (ginagamit sa malalaking computer). Ang ilang partikular na operasyon, gaya ng pag-alpabeto ng mga value ng field, ay magbabago sa format.

Dapat nating sundin ang merkado, hindi ANSI, sa paggamit ng uri ng DATE. (Sa isang system na hindi nakikilala ang uri ng DATE, siyempre maaari mong ideklara ang petsa bilang isang character o numeric na field, ngunit gagawin nitong mas labor intensive ang karamihan sa mga operasyon.)

Dapat mong suriin ang iyong dokumentasyon para sa software package na iyong gagamitin upang malaman kung ano mismo ang mga uri ng data na sinusuportahan nito.

SQL. Mga hindi pagkakapare-pareho.

Maiintindihan mo mula sa nakaraang talakayan na may mga hiwalay na pagkakaiba sa pagitan ng mga produkto ng mundo ng SQL. Ang SQL ay lumitaw mula sa komersyal na database ng mundo bilang isang tool at kalaunan ay binuo sa isang pamantayan ng ANSI. Sa kasamaang-palad, hindi palaging tinutukoy ng ANSI kung ano ang pinakakapaki-pakinabang, kaya sinusubukan ng mga program na sumunod sa pamantayan ng ANSI nang hindi hinahayaan itong mahigpit ang mga ito. Ang ANSI ay isang uri ng pinakamababang pamantayan - magagawa mo ang higit pa sa pinapayagan nito, ngunit dapat mong makuha ang parehong mga resulta kapag nagsasagawa ng parehong gawain.

ANO ANG "USER"?

Karaniwang naninirahan ang SQL sa mga computer system na mayroong higit sa isang user at samakatuwid ay kailangang mag-iba sa pagitan ng mga ito (maaaring magkaroon ng anumang bilang ng mga user ang iyong pamilya sa PC, ngunit kadalasan ay walang paraan upang maiiba ang isang user mula sa isa pa).

Karaniwan, sa ganoong sistema, ang bawat user ay may ilang uri ng code sa pag-verify ng mga karapatan na nagpapakilala sa kanya (nag-iiba-iba ang terminolohiya). Sa simula ng isang session sa isang computer, ang user ay nag-log in (nagparehistro), na nagsasabi sa computer kung sino ang user sa pamamagitan ng pagkilala sa kanyang sarili gamit ang isang partikular na ID. Anumang bilang ng mga taong gumagamit ng access ID ay mga indibidwal na user; at katulad nito, ang isang tao ay maaaring kumatawan sa isang malaking bilang ng mga user (sa iba't ibang oras) gamit ang iba't ibang mga SQL access ID. Ang mga aksyon sa karamihan ng mga kapaligiran ng SQL ay nakamapa sa isang partikular na Access Identifier na eksaktong tumutugma sa isang partikular na user. Ang isang talahanayan o iba pang bagay ay pagmamay-ari ng isang user na may ganap na kontrol dito. Ang gumagamit ay maaaring o walang pribilehiyo na magsagawa ng isang aksyon sa bagay. Para sa aming mga layunin, sasang-ayon kami na ang sinumang user ay may kinakailangang mga pribilehiyo upang magsagawa ng anumang aksyon hanggang sa partikular na bumalik kami sa talakayan ng mga pribilehiyo sa Kabanata 22. Ang espesyal na halaga na USER ay maaaring gamitin bilang argumento sa isang command. Ipinapahiwatig nito ang magagamit na ID ng gumagamit na nagbibigay ng utos.

Mga kombensiyon at terminolohiya

Ang mga keyword ay mga salita na may espesyal na kahulugan sa SQL. Maaari silang maging mga utos, ngunit hindi mga pangalan ng teksto o bagay. I-highlight natin ang mga pangunahing salita sa pamamagitan ng pag-type ng mga ito sa malaking titik. Dapat kang mag-ingat na huwag malito ang mga keyword sa mga termino.

Ang SQL ay may ilang mga espesyal na termino na ginagamit upang ilarawan ito. Kabilang sa mga ito ang mga salitang tulad ng "query", "clause" at "predicate", na pinakamahalaga sa paglalarawan at pag-unawa sa wika, ngunit hindi nangangahulugang anumang bagay na independyente para sa SQL.

Ang mga utos o pahayag ay mga tagubilin kung saan mo ina-access ang isang database ng SQL.

Ang mga utos ay binubuo ng isa o higit pang magkakahiwalay na lohikal na bahagi na tinatawag na mga sugnay.

Nagsisimula ang mga pangungusap sa isang keyword at binubuo ng mga keyword at argumento. Halimbawa, ang mga sugnay na maaari mong makaharap ay "MULA SA Salespeope" at "WHERE city = "London"". Nakumpleto o binabago ng mga argumento ang kahulugan ng isang pangungusap. Sa mga halimbawa sa itaas, ang Salespeople ay ang argumento at ang FROM ay ang keyword ng FROM clause. Katulad nito, ang "lungsod = "London"" ay isang argumento sa sugnay na WHERE.

Ang mga bagay ay mga istruktura ng database na binibigyan ng mga pangalan at nakaimbak sa memorya. Kabilang dito ang mga base table, view, at index.

Upang ipakita sa iyo kung paano nabuo ang mga koponan, gagawin namin ito sa mga halimbawa. Gayunpaman, mayroong isang mas pormal na paraan ng paglalarawan ng mga utos na gumagamit ng mga pamantayang kombensiyon. Gagamitin namin ito sa mga susunod na kabanata bilang isang kaginhawaan upang maunawaan ang mga kombensyong ito kung sakaling makita mo ang mga ito sa iba pang mga dokumento ng SQL.

Ang mga square bracket () ay magsasaad ng mga bahagi na maaaring hindi gamitin, at ang mga ellipses (...) ay nagpapahiwatig na ang lahat ng nauuna sa kanila ay maaaring ulitin kahit ilang beses. Ang mga salita sa angle bracket () ay mga espesyal na termino na nagpapaliwanag kung ano ang mga ito. Lubos naming pinasimple ang karaniwang terminolohiya ng SQL nang hindi nahihirapang maunawaan.

Buod

Sa madaling sabi ay tinalakay namin ang mga pangunahing kaalaman sa kabanatang ito. Ngunit ang aming intensyon ay mabilis na masakop ang mga pangunahing kaalaman ng SQL upang masakop mo ang buong saklaw ng impormasyon.

Ngayon alam mo na ang ilang bagay tungkol sa SQL: kung ano ang istraktura nito, kung paano ito ginagamit, kung paano ito kumakatawan sa data at kung paano ito tinukoy (at ilang mga hindi pagkakapare-pareho na kasama nito), ilang mga kumbensyon at termino na ginamit upang ilarawan ang mga ito. Ang lahat ng ito ay masyadong maraming impormasyon para sa isang kabanata; Hindi namin inaasahan na maaalala mo ang lahat ng mga detalyeng ito, ngunit maaari kang sumangguni sa kanila sa ibang pagkakataon kung kailangan mo.

Ngayon, ang mga kursong SQL na "para sa mga dummies" ay lalong nagiging popular. Maaari itong ipaliwanag nang napakasimple, dahil sa modernong mundo maaari kang makahanap ng tinatawag na "dynamic" na mga serbisyo sa web. Ang mga ito ay nakikilala sa pamamagitan ng isang medyo nababaluktot na shell at nakabatay sa Lahat ng mga baguhan na programmer na nagpasya na mag-alay ng mga website, una sa lahat ay nagpatala sa mga kursong SQL "para sa mga dummies".

Bakit natutunan ang wikang ito?

Una sa lahat, ang SQL ay itinuro upang higit pang lumikha ng malawak na iba't ibang mga application para sa isa sa mga pinakasikat na blog engine ngayon - WordPress. Pagkatapos makumpleto ang ilang simpleng mga aralin, magagawa mong lumikha ng mga query ng anumang kumplikado, na nagpapatunay lamang sa pagiging simple ng wikang ito.

Ano ang SQL?

O isang structured query language, ay nilikha para sa isang layunin: upang matukoy, magbigay ng access at iproseso ang mga ito sa medyo maikling panahon. Kung alam mo ang kahulugan ng SQL, mauunawaan mo na ang server na ito ay inuri bilang isang tinatawag na "non-procedural" na wika. Iyon ay, ang mga kakayahan nito ay nagsasama lamang ng isang paglalarawan ng anumang mga bahagi o resulta na gusto mong makita sa hinaharap sa site. Ngunit kapag hindi eksaktong ipahiwatig kung anong mga resulta ang makukuha. Ang bawat bagong kahilingan sa wikang ito ay parang karagdagang "superstructure". Ito ay sa pagkakasunud-sunod kung saan sila ay ipinasok sa database na ang mga query ay isasagawa.

Anong mga pamamaraan ang maaaring gawin gamit ang wikang ito?

Sa kabila ng pagiging simple nito, binibigyang-daan ka ng database ng SQL na lumikha ng iba't ibang uri ng mga query. Kaya ano ang maaari mong gawin kung matutunan mo ang mahalagang programming language na ito?

  • lumikha ng iba't ibang uri ng mga talahanayan;
  • tumanggap, mag-imbak at magbago ng natanggap na data;
  • baguhin ang mga istraktura ng talahanayan sa iyong paghuhusga;
  • pagsamahin ang natanggap na impormasyon sa iisang bloke;
  • kalkulahin ang natanggap na data;
  • tiyakin ang kumpletong proteksyon ng impormasyon.

Anong mga utos ang pinakasikat sa wikang ito?

Kung magpasya kang kumuha ng kursong SQL for Dummies, makakatanggap ka ng detalyadong impormasyon tungkol sa mga utos na ginagamit sa paglikha ng mga query gamit ito. Ang pinakakaraniwan ngayon ay:

  1. Ang DDL ay isang utos na tumutukoy sa data. Ito ay ginagamit upang lumikha, magbago at magtanggal ng iba't ibang uri ng mga bagay sa database.
  2. Ang DCL ay isang utos na nagmamanipula ng data. Ito ay ginagamit upang magbigay ng iba't ibang mga user ng access sa impormasyon sa database, gayundin sa paggamit ng mga talahanayan o view.
  3. Ang TCL ay isang pangkat na namamahala ng iba't ibang mga transaksyon. Ang pangunahing layunin nito ay upang matukoy ang progreso ng isang transaksyon.
  4. DML - manipulahin ang natanggap na data. Ang gawain nito ay payagan ang gumagamit na ilipat ang iba't ibang impormasyon mula sa database o ipasok ito doon.

Mga uri ng mga pribilehiyo na umiiral sa server na ito

Ang mga pribilehiyo ay tumutukoy sa mga pagkilos na maaaring gawin ng isang partikular na user alinsunod sa kanyang katayuan. Ang pinaka-minimal, siyempre, ay isang regular na pag-login. Siyempre, maaaring magbago ang mga pribilehiyo sa paglipas ng panahon. Ang mga luma ay tatanggalin at ang mga bago ay idadagdag. Ngayon, alam ng lahat ng kumukuha ng mga kursong "for dummies" ng SQL Server na mayroong ilang uri ng mga pinahihintulutang pagkilos:

  1. Uri ng bagay - pinapayagan ang gumagamit na magsagawa ng anumang utos na may kaugnayan lamang sa isang partikular na bagay na matatagpuan sa database. Kasabay nito, ang mga pribilehiyo ay naiiba para sa iba't ibang mga bagay. Ang mga ito ay nakatali hindi lamang sa isang partikular na user, kundi pati na rin sa mga talahanayan. Kung ang isang tao, gamit ang kanyang mga kakayahan, ay lumikha ng isang talahanayan, kung gayon siya ay itinuturing na may-ari nito. Samakatuwid, may karapatan siyang magtalaga ng mga bagong pribilehiyo sa ibang mga user na may kaugnayan sa impormasyong nasa loob nito.
  2. Ang uri ng system ay ang tinatawag na copyright ng data. Ang mga gumagamit na nakatanggap ng gayong mga pribilehiyo ay maaaring lumikha ng iba't ibang mga bagay sa database.

Kasaysayan ng SQL

Ang wikang ito ay nilikha ng IBM Research Laboratory noong 1970. Noong panahong iyon, medyo iba ang pangalan nito (SEQUEL), ngunit pagkatapos ng ilang taon ng paggamit ay binago ito, pinaikli ito ng kaunti. Sa kabila nito, kahit ngayon maraming sikat na dalubhasa sa programming ang binibigkas pa rin ang pangalan sa makalumang paraan. Ang SQL ay nilikha na may iisang layunin - upang mag-imbento ng isang wika na magiging napakasimple na kahit na ang mga ordinaryong gumagamit ng Internet ay maaaring matuto nito nang walang anumang mga problema. Ang isang kagiliw-giliw na katotohanan ay na sa oras na iyon SQL ay hindi lamang ang naturang wika. Sa California, isa pang grupo ng mga espesyalista ang bumuo ng katulad na Ingres, ngunit hindi ito naging laganap. Bago ang 1980, mayroong ilang mga variation ng SQL na bahagyang naiiba sa bawat isa. Upang maiwasan ang pagkalito, nilikha ang isang karaniwang bersyon noong 1983, na sikat pa rin ngayon. Binibigyang-daan ka ng mga kursong SQL na "para sa mga dummies" na matuto nang higit pa tungkol sa serbisyo at ganap na pag-aralan ito sa loob ng ilang linggo.

Ngayon ay bumaling tayo sa paksa ng computer, kaya ang artikulong ito ay magiging partikular na interes, una sa lahat, sa mga programmer. Kami, mahal na mambabasa, ay magsasalita tungkol sa wika ng mga structured na query, na sa English ay naka-encrypt bilang SQL (Structured Query Language). Kaya, pumunta tayo sa punto. Sa ngayon, pag-usapan natin kung ano ang SQL at kung ano ang kailangan nito.

Ang Structured Query Language ay isang unibersal na wika para sa paglikha, pagbabago, at pamamahala ng impormasyon na bahagi ng relational database. Sa una, ang SQL ang pangunahing paraan upang gumana sa data. Gamit ito, maaaring gawin ng user ang mga sumusunod na pagkilos:

  • paglikha ng isang bagong talahanayan sa database (DB);
  • pagdaragdag ng mga bagong tala sa mga kasalukuyang talahanayan;
  • pag-edit ng mga talaan;
  • kumpletong pagtanggal ng mga talaan;
  • pagpili ng isang talaan mula sa iba't ibang mga talahanayan alinsunod sa mga tinukoy na kondisyon;
  • pagbabago ng hitsura at istruktura ng isa o higit pang mga talahanayan.

Sa pag-unlad nito, ang SQL ay nagbago nang malaki at pinayaman ng mga bagong kapaki-pakinabang na function, bilang isang resulta kung saan nagsimula itong magmukhang higit at higit na katulad ng isang tunay na programming language. Ngayon, ang SQL ay ang tanging mekanismo na maaaring mag-link ng software ng application at isang database. Ganyan ang SQL.

Ang SQL ay may ilang uri ng mga query. Kapansin-pansin na ang anumang query sa SQL ay nagpapahiwatig ng alinman sa isang kahilingan para sa data mula sa nais na database, o isang pag-access sa database na may obligadong pagbabago ng data sa loob nito. Kaugnay nito, kaugalian na makilala ang mga sumusunod na uri ng mga kahilingan:

  • paglikha o pagbabago ng bago o umiiral na mga bagay sa database;
  • pagtanggap ng data;
  • pagdaragdag ng bagong data sa talahanayan;
  • pagtanggal ng data;
  • access sa isang database management system (DBMS).

Kaunti tungkol sa mga pakinabang at disadvantages ng data processing system na ito.

Mga pakinabang ng SQL

  • Kalayaan mula sa umiiral na DBMS sa ibinigay na sistema. Ang mga teksto ng SQL ay pangkalahatan para sa maraming DBMS. Gayunpaman, nalalapat ang panuntunang ito sa mga simpleng gawain na nauugnay sa pagproseso ng data sa mga talahanayan.
  • Ang pagkakaroon ng mga pamantayan ng SQL ay nakakatulong na "patatagin" ang wika.
  • Deklarasyon. Ang kalamangan na ito ay kapag nagtatrabaho sa data, pinipili lamang ng programmer ang impormasyon na kailangang baguhin o baguhin. Kung paano ito gagawin ay awtomatikong napagpasyahan sa antas ng software ng DBMS mismo.

Mga disadvantages ng SQL

  • Hindi sinusunod ng SQL ang modelo ng relational data. Sa bagay na ito, pinapalitan ng SQL ang Tutorial D na wika, na tunay na relational.
  • Tinutukoy ng pagiging kumplikado ng SQL ang layunin nito. Napakakomplikado ng wika na isang programmer lamang ang makakagamit nito. Bagaman ito ay orihinal na naisip bilang isang tool sa pagkontrol na gagana sa karaniwang gumagamit.
  • Ilang hindi pagkakapare-pareho ng mga pamantayan. Maraming mga kumpanya na bumubuo ng DBMS ang nagdaragdag ng kanilang sariling mga tampok sa dialect ng wikang SQL, na makabuluhang nakakaapekto sa pagiging pangkalahatan ng wika.

Isang huling bagay: ano ang SQL Server? Ito ay isang database management system na binuo sa loob ng mga pader ng sikat na kumpanyang Microsoft. Matagumpay na gumagana ang system na ito sa mga database ng parehong mga personal na computer sa bahay at malalaking database ng malalaking negosyo. Sa segment ng merkado na ito, ang SQL Server ay higit pa sa mapagkumpitensya.

Well, tandaan natin ang MySQL sa maikling salita. Ang application na ito ay karaniwang ginagamit bilang isang server na tumatanggap ng mga kahilingan mula sa mga lokal o malalayong kliyente. Ang MySQL ay maaari ding isama sa mga standalone na programa. Dapat tandaan na ang application na ito ay isa sa mga pinaka-flexible na sistema ng pamamahala ng data, dahil kabilang dito ang maraming iba't ibang uri ng mga talahanayan.