Lär dig SQL-språk. SQL-språk


Transkript.

2 Postgres Professional E. P. Morgunov SQL-språk. Grundkursutbildning och praktisk manuell Moscow 2017

3 UDC BBK M79 M79 MORGUNOV, E. P. SQL-språk. Grundkurs: Studier. Tillägg / E. P. Morgunov; Ed. E. V. Rogova, P. V. Luzanova; Postgres professionell. M., s. Denna pedagogiska och praktiska handbok är den första, grundläggande, en del av kursen i SQL, som erbjuds av det ryska företaget Postgres Professional. Utbildningsmaterialet är föremål för att använda PostgreSQL-databashanteringssystemet. Handboken kan användas både under lärarens vägledning och för självstudierande SQL-språk. Handboken är avsedd för studenter som är inskrivna i anvisningarna för "Informatik och datorteknik", "Informationssystem och teknik", "tillämpad informatik", "Software Engineering" och "Matematisk avsättning och administration av informationssystem". Det kan vara användbart för ett brett spektrum av studenter och specialister som vill bekanta sig med grunderna i SQL-språket i PostgreSQL-databashanteringssystemet. UDC BBK Postgres Professional, 2017 E. P. Morgunov, 2017

4 Innehållsförteckning Inledning 5 1 Introduktion till databaser och SQL Vad är databasen och varför de behöver de grundläggande begreppen för relationsmodellen, vad är SQL-språkbeskrivningen för ämnesområdet och databasen för kontrollfrågor och uppgifter som skapar en arbetsmiljöinställning DBMS-programmet PSQL Interactive Terminal PostgreSQL-utplacering av träningsdatabaser Styr frågor och jobb Grundläggande funktioner Tabeller 22 Styrfrågor och uppgifter Datatyper PostgreSQL Numeriska symboliska typer (sträng) Typer "Datum / tid" Typer Logisk typ av arrays Typer JSON Control Frågor och frågor Språkdata Språk Språk Standard Integritet Skapa och ta bort tabeller Ändring av tabeller Presentation Databas Scheman Kontrollera frågor och uppgifter Begär Ytterligare alternativ Välj Välj Kommunikationsaggregat och gruppering av subqueries Kontrollera frågor och uppgifter Ändra data Infoga strängar i tabell Uppdatera rader i tabeller Radera rader från Tabeller Kontrollera frågor och uppgifter

5 8 Index Allmän information Index på flera kolumner Unika indexbaserade uttryck Delvisa indexkontrollfrågor och uppgifter Transaktioner Isoleringsnivå Läs oöverträffad Inledd isoleringsnivå Repeterbar Läsisoleringsnivå Serializerbart exempel på användning av transaktionstransaktioner Styrfrågor och uppgifter Förbättrad prestanda Grundläggande begrepp Metoder Visa tabell Metoder För att bilda raduppsättningar av raderhanteringsplanerare Optimering av förfrågningar Kontrollera frågor och uppgifter Rekommenderade källor 255 4

6 Inledning För närvarande är termen "databas" känd för många människor, till och med avlägsna från den professionella utvecklingen av datorprogram. Databaserna har blivit en mycket utbredd teknik, som i sin tur krävde fler specialister som kan utforma dem och behålla dem. Under utvecklingen av teorin och övning av databaser har de facto-standarden blivit en relationell datamodell, och inom ramen för denna modell bildades också ett specialiserat programmeringsspråk, så att du kunde utföra alla nödvändiga åtgärder med data från Strukturerat sökspråk (SQL). Således är en viktig del av kvalifikationen av en specialist i databasdomänen SQL-språk. Denna lärobok skisserar grunderna i SQL-språket är den grundläggande kursen. Dessutom anses språket i förhållande till ett specifikt databashanteringssystem (DBMS) PostgreSQL. Genomförandet av SQL-språket i varje DBMS uppfyller standarden i en eller annan grad, men förutom standardiserade funktioner och möjligheter, erbjuder varje DBMS sin extra språkutvidgning. PostgreSQL ger mycket bra SQL-standardstöd och ger också intressanta och praktiskt användbara ytterligare funktioner. En av de främsta fördelarna med PostgreSQL är Extensibility. Det betyder till exempel att användaren (självklart, som är en specialist i databaser) kan utveckla sina egna datatyper. Dessa datatyper har alla egenskaper hos inbäddade datatyper och kan skrivas in utan att ett serverns stopp. Dessutom är PostgreSQL en fritt distribuerad öppen källkodsprodukt, som är tillgänglig på ett stort antal plattformar. Handboken diskuterar inte bara alla huvudsakliga SQL-språk utan även andra frågor, till exempel index och transaktioner. Handboken är skriven på ett sådant sätt att det kan användas både under lärarens vägledning och självständigt. Det antas att eleverna har tillgång till den redan installerade DBMS, så installationsproceduren PostgreSQL anses inte i detalj, men referera bara till var du ska hitta installationsanvisningar. Denna ersättning är avsedd att få praktiska färdigheter att använda SQL-språk. Utbildningsmaterialet tillämpas på ett sådant sätt att många viktiga kunskapsläsare måste få som ett resultat av uppgifterna i slutet av varje kapitel. I huvudtexten av kapitel kan dessa kunskaper inte representeras. Det antas att en betydande del av uppgifterna kommer att utföras av läsaren självständigt med hjälp av dokumentationen för PostgreSQL DBMS, men det är ofta ges till anvisningarna för deras genomförande. De uppgifter som anges i handboken skiljer sig åt när det gäller komplexitet. Det svåraste av dem, liksom de som kräver mycket tid att utföra, är markerade med en asterisk. Uppgifter kan utföras som träningsmaterial av ett specifikt kapitel. Men vissa av dem har en omfattande natur, därför för deras verkställighet är det nödvändigt att studera hela kapitlet eller åtminstone flera av dess avsnitt. fem

7 Även om handboken har praktisk orientering och är inte en teoretisk kurs, men i det första kapitlet kortfattat presenteras de grundläggande begreppen av databaser och relationsmodell på grundnivå. Detta görs så att eleverna kan fortsätta till den praktiska utvecklingen av SQL-språk, från de första dagarna av träningsperioden, även till det ögonblick då dessa begrepp granskas grundligt i föreläsningskursen. Vid fakulteterna för informationsteknik på ryska universitet studeras databasen traditionellt under det andra eller tredje året. Dessutom ges denna disciplin som regel till en termin. Antalet akademiska skoltider kan dock variera. Om den praktiska klasserna på denna disciplin, läroplanen tilldelar 36 timmar, då rekommenderar vi nästa gång distribution av tid för att studera materialet till förmånen. Kapitel 1. Introduktion till databaser och SQL Kapitel 2. Skapa en arbetsmiljö Kapitel 3. Grundläggande operationer med tabeller Kapitel 4. Datatyper PostgreSQL Kapitel 5. Grunderna för datat Definition Språk Kapitel 6. Förfrågningar Kapitel 7. Ändra data Kapitel 8. Index Kapitel 9. Transaktioner Kapitel 10. Ökad produktivitet 1 timme 1 timme 4 timmar 4 timmar 4 timmar 8 timmar 4 timmar 2 timmar 4 timmar 4 timmar Kapitel 1 och 2 kan studeras i en två timmars lektion, eftersom postgresql DBMS redan måste vara Installerad i klassrummet i förväg. Kapitel 3 är en kort översikt över SQL-språkens huvudkapacitet, efter att ha studerat det, måste eleverna föreställa sig enkla sätt att använda alla större språk. Detta kapitel är inte särskilt komplicerat, men volymetriskt, därför ges fyra timmar till sin studie. Kapitel 4 ägnas åt att överväga de viktigaste typerna av data som används i PostgreSQL. Detta är ett stort kapitel, men det består av uppgifter och övningar. Det antas att studenter om fyra timmar endast måste lära sig de viktigaste metoderna för att använda datatyper. Och för att kunskapen ska vara förankrad rekommenderas att man ifrågasätter materialet i detta kapitel (inklusive övningar) i processen att studera de återstående kapitlen i handboken, om det behövs, klargör vissa särdrag för tillämpningen av specifika typer. För att distribuera den tid som tilldelats för att studera det här kapitlet rekommenderar vi följande: två timmar på de första fyra stycket numeriska och strängtyper, typerna "Datum / tid" och en logisk typ, ytterligare två timmar på arrays och JSON / JSONB-typ. För att uppfylla databasförfrågningarna är det nödvändigt att förstå dess struktur, tabellernas relationer. Därför är kapitel 5, som diskuterar grunden för datationsspråket, mycket viktigt ur den detaljerade studien av "lufttransporter" -datababellerna och förberedelserna för utvecklingen av kapitel 6. Eftersom materialet i kapitlet Baserat på det faktum att databasen redan är utplacerad på en studerandes dator, skriver du in kommandon för att skapa tabeller. Detta gör att du kan minska tiden för att lära sig kapitlet. Handboken antog ett tillvägagångssätt, där kommandona Data Definition först övervägas och sedan datanipulationskommandon. Därför, kapitel 5 "Basics of Data Definition Språk" föregår 6

8 Kapitel 6 "Förfrågningar". Det valda tillvägagångssättet implementeras emellertid inte för hårt: I granskningen kapitel 3 anses huvudlagen, inklusive enkla förfrågningar. Och förfrågningar är redan ett datanipulationsspråk. För studier av kapitel 5 i fyra timmar. Under den första två timmars lektionen måste du utforska de två första styckena, som inkluderar frågor som integritetsbegränsningar och skapa och ta bort tabeller. Den andra två timmars ockupationen måste ägnas åt studien av de tre återstående styckena. De hänvisas till hur man ändrar tabeller, liksom på representationer (visningar) och databasdiagram. Kapitel 6 är det centrala chefen för förmånen, därför åtta klockan är att studera, dvs mer än på studien av andra kapitel. Den består av fyra stycken. Den första av dem ägnas åt en rad ytterligare funktioner i kommandot Välj. Detta är i synnerhet om saker som gräns och offset förslag, som operatör och regelbundna uttryck i villkoren för erbjudandet om var och om andra möjligheter. Materialet i denna punkt är dock enkelt att studera det är tillräckligt för att fördela en timme. Andra stycket beskriver hur du ansluter tabeller. Detta är ett mer komplext ämne, för att studera det, det är nödvändigt att fördela två timmar. Den tredje stycket ägnas åt aggregering och gruppering. Det behandlar ett så viktigt och intressant ämne som fönsterfunktioner. Denna paragraf kräver också en två timmars lektion. Den svåraste delen av detta kapitel är den fjärde. Han är dedikerad till underskott. I synnerhet är ett så viktigt och intressant ämne täckt som vanliga tabla uttryck (vanliga tabelluttryck CTE). För att studera materialet i denna punkt är det nödvändigt att fördela tre timmar. Kapitel 7 innehåller alla kommandon som är utformade för att ändra data: Sätt i rader, uppdatera och ta bort dem. Sedan i tidigare kapitel har dessa lag redan använts för att lösa enkla uppgifter, då diskuterar detta kapitel mer komplexa sätt att använda dem. Det har många övningar, de utgör hälften av sin volym. Det rekommenderas att betala två timmar för att studera metoderna för att infoga strängar i tabellen, och ytterligare två timmar anser att operationerna för uppdatering och borttagning av linjer. Kapitel 8 är avsedd för index, det är litet, så det kan hittas med det i en två timmars lektion. Eftersom index är nära relaterade till prestationsproblem, dvs genomförandet av förfrågningar, skulle det vara tillrådligt att han har studerat det slutliga kapitlet att återgå till kapitel 8 och se kommandon och förfrågningar som presenteras i den, som redan känner till förklara kommandot. Kapitel 9 är dedikerat till transaktioner. Mekanismerna för deras utförande har många subtiliteter, så när man studerar det här kapitlet är det nödvändigt att experimentera och försöka förklara resultaten. I det slutliga kapitel 10 anses frågor om förbättrad produktivitet. Detta kapitel kan tyckas för abstrakt och svårt för den första kursen på SQL-språket, men det är väldigt viktigt. Eleverna måste lära sig att läsa frågeexekveringsplaner och förstå utnämningen av varje operation som presenteras i planen. Och behärskningen av optimering av förfrågningar kommer att kräva mycket tid och erfarenhet, det kommer inte omedelbart. I händelse av att 54 timmar ges till praktiska klasser på disciplinen "databas" i läroplanen, kan du ändra den föreslagna fördelningen av studieklockor. I synnerhet i kapitel 4 kan du ägna mer tid till datatyper 7

9 JSON / JSONB och Arrays. Kapitel 6, du kan överväga fönstret fungerar mer detaljerat och allmänna tabelluttryck. När man studerar kapitel 9, dedikerad till transaktioner, skulle det vara tillrådligt att utveckla en enkel tillämpning där transaktioner skulle användas och genomföra experiment med denna ansökan, som utför flera sessioner och förändra nivåerna av transaktionsisoleringsnivåerna parallellt. Som en del av kapitel 10 är det meningsfullt att återvända till kommandon och förfrågningar i kapitel 8 och undersöka deras genomförandeplaner med förklara kommandot. På grund av extra tid kan du överväga alla uppgifter och övningar av ökad komplexitet (markerad med en asterisk). Således kan tidsfördelningen vara så här: Kapitel 1. Introduktion till databaser och SQL Kapitel 2. Skapa en arbetsmiljö Kapitel 3. Grundläggande funktioner med tabeller Kapitel 4. Datatyper PostgreSQL Kapitel 5. Grunderna för Data Definition Språk Kapitel 6. Fråga Kapitel 7. Ändra data Kapitel 8. Index Kapitel 9. Transaktioner Kapitel 10. Förbättra produktiviteten 1 timme 1 timme 4 timmar 6 timmar 6 timmar 12 timmar 6 timmar 4 timmar 8 timmar 6 timmar i bruksanvisningen används olika typer av teckensnitt för att markera Textfragment beroende på deras destination. De kommandon som används av användaren både i operativsystemmiljön och PSQL-verktygsmediet är markerade med fetmonosinfont. Till exempel: psql -d demo -u postgres eller välj avg (total_amount) från bokningar; Resultaten av driften av operativsystemkommandon och SQL-kommandon som utförts i PSQL-verktygsmediet skrivs ut av monosinteckensnitt. Till exempel, som svar på Explin Select * från AirCrafts Command; Följande kommer att visas: Fråga Planera SEQ Skanna på flygplan (kostnad \u003d Rowk \u003d 9 Bredd \u003d 52) (1 linje) Vi hoppas att studien av det material som anges i studiehandboken kommer att bidra till att öka dina kvalifikationer och expansion av en professionell horisont. åtta

10 1 Introduktion till databaser och SQL detta huvud introduceras. I det kommer vi att berätta om grunderna i databaser, om vad en relationell modell är och varför SQL-språket behövs. Ett mycket viktigt ämne i detta kapitel är en beskrivning av ämnesområdet, på grundval av vilket en träningsdatabas kommer att utformas, vilket kommer att fungera som en webbplats för att utforska SQL. Denna handbok är främst avsedd för den praktiska utvecklingen av SQL-språket, och att inte studera databasens teori, för att studera teorin, det är nödvändigt att kontakta auktoritativa källor, vars förteckning ges i slutet av studien manuell. 1.1 Vad är databasen och varför de behöver databassteknik inte alltid. Men innan deras introduktion till praktiken samlade människor och behandlade data. En av lagringsmetoderna var de så kallade platta filerna (platta filer) som hade en mycket enkel struktur: data lagrades som poster uppdelade i fasta längd. I det verkliga livet uppstår komplexa länkar som måste överföras till den elektroniska databasen mellan dataelementen ofta. När du använder platta filer är dessa länkar svåra att organisera, och ännu svårare att behålla dem när de ändrar och tar bort enskilda dataelement. En av de grundläggande begreppen i databasen är en datamodell. Det kan sägas att det karakteriserar metoden för att organisera data och de grundläggande metoderna för åtkomst till dem. Först föreslogs hierarkiska och nätverksdata modeller. Men under utvecklingen av teorier och idéer utvecklades en relationell datamodell, som nu är dominerande. Därför domineras relationsdatabaser. Deras karakteristiska egenskap är det faktum att data uppfattas av användaren som ett bord. Användaren har operatörer att välja data från tabeller, samt för att infoga nya data, uppdateringar och radera tillgängliga data. En av fördelarna med relationsdatabasen är dess förmåga att upprätthålla kopplingar mellan dataelement, vilket eliminerar programmeraren från behovet av att hantera denna rutin och mycket mödosamt arbete. Under dessa dagar, när relationella databassteknologier ännu inte har varit utbredd, måste programmeringarna manuellt genomföra sådana operationer på procedurspråk, som nu kallas Cascading uppdaterar externa nycklar eller cascading borttagning av poster från underordnade tabeller (filer). Här betyder ordet "manuellt" att för att utföra dessa operationer var det nödvändigt att skriva en kod som består av elementära kommandon, så att du kan komma till varje uppdaterad eller borttagen inspelning. Den här metoden för att arbeta med databaser kallades navigationsprogrammeraren angav den programspecifika registreringsalgoritmen. Vi ger en enkel situation som ett exempel: i databasen som byggs på grundval av filer lagras information om studenter och deras examensberäkningar, och de personuppgifter för studenter lagras i en fil, låt oss kalla det villkorligt "studenter", och Examens utvärderingar i en annan fil, som villkorligt kallar "uppskattningar". Om du vill radera information om en viss student och dess undersökning 9

11 Uppskattningar, det måste inte bara utföra operationen att radera en specifik post från filen "Elever", men vidareorganisera en slinga för att söka och radera de här dokumenten från filen "Utvärdering", där nyckelfältet har samma värde som fältet i den borttagna posten från fil "studenter". Arbeta med relationella databaser är en programmerare bortskaffad programmering på en "atom" nivå, eftersom moderna språk för "kommunikation" med dessa databaser är deklarativa. Det innebär att det bara behöver erhållas för att få resultatet, men det är inte nödvändigt att ordinera ett sätt att få resultatet, det vill säga hur man får det. Databasystem är ett datoriserat system för lagring, bearbetning och utfärdande information om användarförfrågan. Ett sådant system innehåller mjukvara och hårdvara, själva data, såväl som användare. Moderna databassystem är vanligtvis multiplayer. I sådana system kan flera användare omedelbart komma åt databasen. Huvudprogrammet är databashanteringssystemet. På engelska kallas det databashanteringssystemet (DBMS). Förutom DBMS kan databassystem inkludera verktyg, verktyg för att utveckla applikationer (program), databasdesignverktyg, rapportgeneratorer etc. Användare med databassystem är uppdelade i ett antal kategorier. Den första kategorin tillämpas programmerare. Den andra kategorin är slutanvändarna för vilka allt arbete utförs. De kan komma åt databasen med hjälp av applikationsprogram eller universella applikationer som ingår i programvaran. I de flesta DBMS finns det en så kallad frågespråksprocessor, vilket gör det möjligt för användaren att ange en högkvalitativ språkkommandon (till exempel SQL-språk). Den tredje användarkategorin är databasadministratörer. Deras ansvarsområden är: Skapa en databas, välja optimala åtkomstlägen till IT, avgränsning av befogenheter hos olika användare för att komma åt en eller annan information i databasen, utför en databasbackup etc. Databassystemet kan delas upp i två huvudkomponenter: server och kunduppsättning (eller externa gränssnitt). Servern är DBMS. Klienter är olika applikationer skrivna av applikationsprogrammerare, eller inbäddade applikationer som levereras med DBMS. En server kan betjäna många kunder. Moderna DBMS innehåller en ordbok av data. Detta är en del av databasen som beskriver själva data som lagras i den. Dataordlistan hjälper DBMS att utföra sina funktioner. 1.2 De grundläggande begreppen för relationell modell i varje teknisk sfär har sin egen terminologi. Det finns grundläggande termer som alla ytterligare resonemang är baserade. Sådana termer vid 10

12 är också inom databaser. Nu kommer vi att prata om dem. I den era som föregår födelse av relationsteori ansågs databasen traditionellt som en uppsättning filer som består av poster och poster i sin tur delades in i separata fält. Fältet var en elementär dataenhet. I relationella databaser uppfattar användaren data i form av tabeller. Därför motsvarar termen "fil" termen "tabell", i stället för termen "inspelning" använder termen "sträng" och istället för termen "fält" termen "kolumn" (eller "kolumn"). Tabellerna består således av rader och kolumner vid skärningspunkten som måste vara "atomiska" värden som inte kan brytas i mindre element utan förlust av mening. I den formella teorin om relationella databaser kallas dessa tabeller (relationer) därför databaser relationella. Attityden är en matematisk term. Vid bestämning av egenskaperna hos sådana relationer används teorin om uppsättningar. När det gäller denna teori om bordsträngen kommer de att kallas tuplen och kolumnerna av attribut. Attityden har en rubrik som består av attribut och en kropp som består av tuplar. Antalet attribut kallas graden av relation, och antalet tuples är ett grundläggande nummer. Förutom teorin om uppsättningar är en av grunden för relationell teori en sådan del av matematisk logik som beräkning av predikat. Således finns det tre grupper av termer i teorin och praktik av databaser. Ibland används villkoren från olika grupper som synonymer, såsom inspelning och sträng. Som vi redan har sagt ovan uppfattar användaren data i form av tabeller i relationella databaser. Tänk på ett enkelt system där endast två tabeller. Första "Elever": Count Book F. I. O. Serie av dokumentdokumentets nummer Ivanov Ivan Petrovich Klimov Andrei Ivanovich Novikov Nikolai Yuryevich och den andra "prestationen": Catering bok ämne Skolårsreferens SPOCT Fysik 2016 / Matematik 2016 / Fysik 2016 / Fysik 2016 / När Arbeta med databaser är det ofta nödvändigt att följa olika restriktioner som kan bero på specifika ämnen i ett visst ämnesområde. Förenkla den verkliga situationen, ta följande begränsningar: 11

13 Antalet testbok består av fem siffror och kan inte vara negativa (i olika universitet används det olika antalet nummeruppdragssystem, dessa system kan vara mycket mer komplicerade av oss och kan ta hänsyn till till exempel året för studentens inträde till universitetet); En serie av ett identitetsdokument är ett fyrsiffrigt nummer och antalet dokument som intygar det sexsiffriga numret; Semesterantalet kan bara ta två värden på 1 (hösttermin) och 2 (vårtermin); Bedömningen kan bara ta tre värden 3 (tillfredsställande), 4 (bra) och 5 (utmärkt): Andra uppskattningar att uppvisa i testböcker accepteras inte. För att identifiera strängar i tabeller och tabellerna i tabellerna används för att kommunicera med varandra. Den potentiella nyckeln är en kombination av ett tabellattribut som låter dig unikt identifiera linjerna i den. Nyckeln kan bestå och endast från ett attribut på bordet. Till exempel, i "Elever" -bordet, kan en sådan identifierare vara attributet "Cancing Book Number". Som en potentiell nyckel i den här tabellen kan de två attributen, tillsammans, också tjäna: "En serie identitetsdokument" och "personlighetsdokumentnummer". Ingen av dem individuellt kan användas som en unik identifierare. I det här fallet kommer nyckeln att vara komposit. Samtidigt är det viktigt att den potentiella nyckeln inte får vara överflödig, dvs ingen delmängd av attribut som ingår i det borde inte ha egenskapen för unikhet. Den potentiella nyckeln, som innehåller de två nämnda attributen är inte överflödig. Nycklar behövs för att ta itu med radnivån (poster). Om det finns mer än en potentiell nyckel i tabellen väljs en av dem som den så kallade primärnyckeln, och resten kommer att vara alternativa nycklar. Tänk på tabellerna "studenter" och "prestanda". Antag att tabellen "Elever" har ingen sträng med ett antal kreditbok 55900, då är det meningsfullt att inkludera en sträng med ett sådant antal kreditbok i tabellen "Tillgänglighet". Således måste värdena för kolumnen "Cancta Book Number" i "Accessibility" -bordet överenskommas med värdena för samma kolumn i tabellen "Elever". Testboksnummerattributet i tabellen "Tillgänglighet" är ett exempel på vad som kallas en extern nyckel. En tabell som innehåller en extern nyckel kallas en referensbord (referensbord). En tabell som innehåller motsvarande potentiella nyckel kallas en refererad tabell (refererad tabell). I sådana fall sägs det att den externa nyckeln hänvisar till en potentiell nyckel i referensbordet. Den externa nyckeln kan vara komposit, d.v.s. kan innefatta mer än ett attribut. Den externa nyckeln är inte nödvändig för att vara unik. Problemet är att säkerställa att databasen inte innehåller felaktiga externa nyckelvärden, som kallas problemet med referensintegritet. Begränsningen enligt vilken värdena för de yttre nycklarna måste överensstämma med värdena för potentiella nycklar, kallas en gräns för referensintegritet (referensgräns). Att säkerställa genomförandet av begränsningar av referensintegritet är engagerad i DBMS, och utvecklaren kräver endast att ange attribut som tjänar som externt 12

14 nycklar. Vid utformning av databaser, förutses det ofta att när man tar bort en rad måste även de motsvarande raderna från referensbordet raderas, och när kolumnens värde ändras, är de externa nyckelvärdena i den refererande tabellen måste ändras. Detta tillvägagångssätt kallas cascading-radering (uppdatering). Ibland tillämpas också andra tillvägagångssätt. Till exempel, istället för att radera rader från ett referensbord i dessa linjer, ersätta helt enkelt de attributvärden som ingår i den externa tangenten, de så kallade nollvärdena. Dessa är speciella värden som betyder "ingenting" eller brist på värde, de sammanfaller inte med värdet "noll" eller "tom sträng". NULL-värdet appliceras i databaser och som standardvärde när användaren inte har angett något specifikt värde. Primärnycklar kan inte innehålla nollvärden. Transaktion är en av de viktigaste begreppen databasteori. Det betyder en uppsättning operationer på databasen, som betraktas som en enda och odelbar arbetsenhet, utförd helt eller inte alls, om något misslyckades under transaktionsprocessen. Således är transaktioner ett sätt att säkerställa konsistensen av data. I vår databas kan transaktionen vara två operationer: Ta bort en sträng från "Elever" -bordet och radera linjerna relaterade till den externa nyckeln från prestandan. 1.3 Vad är SQL-språk SQL-språk är ett obehagligt språk som är ett vanligt verktyg som arbetar med data i alla relationella DBMS. Operatörer (kommandon) skrivna på detta språk anger endast DBMS, vilket resultat ska erhållas, men beskriv inte förfarandet för att erhålla detta resultat. DBMS själv bestämmer metoden för att exekvera användarkommandot. SQL-språket tilldelade traditionellt en grupp av datadefinitionsoperatörer (DDL DDL), en grupp datatipulationsoperatörer och en grupp operatörer som hanterar åtkomstbehörigheter till databasobjekt (Datakontrollsspråk DCL). Data Definition Språkoperatörer (DDL) inkluderar kommandon för att skapa, modifiera och ta bort tabeller, vyer och andra databasobjekt. Kapitlen 5 och 8 är dedikerade till detaljerad övervägning av dessa kommandon. De data manipulerande språkoperatörerna (DML) inkluderar kommandon för provtagning av rader från tabeller, sätter in rader till tabeller, uppdateringar och radering av strängar. Dessa kommandon diskuteras i detalj i kapitel 6 och 7. DCL-operatörer i handboken anses inte, eftersom PostgreSQL tillåter på det inledande skedet av lärande SQL-språk att göra utan deras användning. 13

15 1.4 Beskrivning av ämnesområdet och en träningsdatabas För att visa alla huvudfunktioner i SQL-språket behöver vi en databas. Denna databas bör inte vara för komplicerad att dess studie inte kräver för mycket tid. Men samtidigt måste det vara ganska varierat så att förfrågningar om att hon skulle se ut, nästan detsamma som i verkligt arbete. Som ämnesområde väljer vi passagerartransporter. Den ursprungliga beskrivningen och beskrivningen av databasen "Air Transportation" finns på adresser och RU / DOCS / PostGRESPRO / CURRENT / DEMODB-bookings.html. Vi hoppas att detta område är bekant med många läsare i vår studiehandbok. Naturligtvis, för träningsändamål, är den verkliga situationen avsiktligt förenklad, men alla de viktigaste sakerna bevaras. Så utför ett visst ryskt flygbolag passagerartransporter. Den har sin flotta av flygplan av olika modeller. Varje modell av flygplanet har en specifik kod som tilldelas den internationella lufttransportförbundet (IATA). Samtidigt antar vi att flygplanet i en modell har samma layouter av salongerna, dvs beställningen av stolarna och numreringen av platser i företagsklassens och den ekonomiska klassens salonger. Till exempel, om det här är en Sukhoi Superjet-100-modell, hänvisar 2a platsen till företagsklassen, och platsen är 20d till den ekonomiska klassen. Business Class and Economic Class är en mängd så kallad serviceklass. Vårt flygbolag serverar flyg mellan flygplatser i Ryssland. Varje flygplats har tilldelats en unik tre-brev-kod, medan endast huvudbokstäverna i det latinska alfabetet används. Dessa koder tilldelar inte flygbolaget själv, men speciella organisationer som hanterar passagerartransporter. Ofta sammanfaller inte namnet på flygplatsen med namnet på den stad som den här flygplatsen tillhör. Till exempel, i staden Novosibirsk, heter flygplatsen Tolmachevo, i staden Yekaterinburg Koltsovo, och i St Petersburg Pulkovo. Dessutom har vissa städer mer än en flygplats. Omedelbart kommer Moskva ihåg som ett exempel med sina flygplatser Domodedovo, Sheremetyevo och Vnukovo. Vi lägger till en viktig detalj: Varje flygplats kännetecknas av geografiska koordinater för lång tid och senare, såväl som tidszon. Flygvägar bildas mellan städerna. Naturligtvis kräver varje sådan väg inte bara staden, utan också flygplatsen, eftersom vi redan har sagt, kan det finnas mer än en flygplats i staden. Som en förenkling av verkligheten bestämmer vi att rutterna inte kommer att ha mellanliggande landningar, t. e. De kommer bara att ha avgångsflygplats och destination. Varje rutt har ett sexsiffrigt nummer, inklusive siffror och bokstäver i det latinska alfabetet. Baserat på listan över rutter bildas flygschemat (eller flyg). Schemat anger den planerade avgångstiden och den schemalagda ankomsttiden, liksom vilken typ av flygplan som utför detta flyg. Med det faktiska utförandet av flygningen är det nödvändigt att ta hänsyn till ytterligare information, nämligen: den faktiska avgångstiden och den faktiska ankomsttiden samt status för flygningen. Flygstatus kan ta ett antal värden: 14

16 planerad (per månad möjligheten att boka); I tid (per natt registrering öppnas); Försenad (flygning kvarhållen); Avgick (Flew); Anlände (anlände); Avbruten (avbokad). Låt oss nu vända sig till passagerare. Flyg börjar med en biljettbokning. För närvarande är den allmänt accepterade praxis utformningen av e-biljetter. Varje sådan biljett har ett unikt nummer bestående av 13 siffror. Inom ett bokningsförfarande kan flera biljetter upprättas, men varje sådant förfarande har ett unikt sexsiffrigt nummer (chiffer) av bokningen bestående av de latinska alfabetet och siffrorna. För varje bokningsförfarande redovisas dessutom ett bokningsdatum och den totala kostnaden för de utfärdade biljetterna beräknas. Vid varje biljett, förutom det tretton siffror, registreras passageraridentifieraren, liksom dess namn och efternamn (i latinskription) och kontaktuppgifter. Som passagerar-ID används identitetsdokumentet. Självklart kan passageraren ändra sitt dokument, och ibland även efternamn och namn, i den tid som passerade mellan bokningsbiljetter på olika dagar, så det är det omöjligt att säga att vissa speciella biljetter var inredda för samma passagerare. Mer än ett flyg kan skrivas in i varje elektronisk biljett. Specialister kallar dessa flygrekordsegment. Som ett exempel kan närvaron av flera segment ges som: Krasnoyarsk Moskva, Moskva Anapa, Anapa Moskva, Moskva Krasnoyarsk. Det är möjligt inom ramen för en bokning att utfärda några biljetter på olika passagerare. För varje resa, flygnummer, avgång och destination flygplatser, avgångstid och ankomsttid, liksom kostnaden för flygningen. Dessutom anges den så kallade klassen av tjänsten: ekonomisk, affär, etc. När passageraren anländer till avgångsflygplatsen och är registrerad en biljett, utfärdas den så kallade landningskupongen. Denna biljett är ansluten till flygbiljetten: samma nummer anges i cockle, som har en elektronisk flygbiljett i den här passageraren. Dessutom anges flygnumret i kupongen och rummet i planet. Landningskopplingsnumret indikeras också av det sekventiella numret som är tilldelat i registreringsprocessen av biljetter till detta flyg. Minns att varje stol i kabinen överensstämmer med en viss serviceklass. Denna information beaktas vid registrering av biljett och utformning av boardingkuponger. Om passageraren till exempel har förvärvat en biljett med en ekonomisk klass av tjänst, kommer det i sin landningskupong att finnas ett platsnummer i den ekonomiska klassens salong, men inte i affärsklassen. Efter den beskrivna beskrivningen av ämnesområdet kan du designa en modelldatabas avsedd för att lära sig SQL-språk. Eftersom vår handledning primärt är avsedd att studera SQL-språket, och inte för att mastera konsten att designa databaser, kommer vi bara att ge ett diagram 15

17 Bokningar Bokningar Flygplatser # Book_Ref * BOOK_DATE * Total_Amount # Airport_Code * Airport_Name Biljetter Biljetter # Longitude * Latitude * Timezone Biljetter Biljetter # Ticketes_no * book_ref * passagerare_id * passagerare_name contact_data ticket_id * flighter_conditions * Belopp Flyg Flyg # Flight_id * Flight_no * schemalagd_departure * schemalagd_arrival * avgång_airport * ARRIVAL_AIRPORT * Status * AirProgram_Code Actual_Departure Actual_Arrival AirCrafts Aircraft # AirProgram_Code * Modell * Range Boarding_Passerar pensionat passerar platser # Ticket_No # Flight_Id_Conde_No * Seat_No # FARE_CONDITIONS Dataschema, som visar väsentligen isolerade i Ämnesområde, liksom deras anslutning och attribut. Specifika datatyper, primära och externa nycklar, såväl som restriktioner som åläggs attribut och tabeller, vi kommer att visa redan i efterföljande kapitel i processen med hänsyn till SQL-kommandon avsedda för fysiska skapande tabeller i databasen. Följande schema finns på webbplatsen för Postgres Professional till de adresser som anges i början av det här avsnittet. Styrfrågor och uppgifter 1. Vilka grupper av operatörer fördelas som en del av SQL-språket? 2. Ge den informella definitionen av de grundläggande begreppen för relationell datamodell: attityd, tupel, attribut. 3. Varför behöver jag externa nycklar i relationella tabeller? 4. Vad är en potentiell nyckel? 5. * Erbjuder ett exempel på en överdriven potentiell nyckel för ett av tabellerna i lufttransportdatabasen och förklara varför det är överflödigt. sexton

18 6. * I det aktuella genomförandet av databasen "Air Transport" antas det att planen för en modell kan ha bara en layout av stugan. Föreställ dig att ledarskapet beslutade att ta hänsyn till möjligheten att ha olika layouter för varje modell. Vilka tabeller måste modifiera i det här fallet och hur? Behöver du skapa ytterligare tabeller? 17.

19 2 Skapa en arbetsmiljö Innan du börjar direkt utforska SQL måste du komma åt PostgreSQL-servern. Detta kan exempelvis göras i en datorklass eller med hänvisning till en fjärrserver via terminalen. Du kan dock skapa en arbetsmiljö för dig själv och på din lokala dator genom att ställa in den fullständiga versionen av PostgreSQL DBMS, d.v.s. server och klientprogram. I det här fallet kommer du att ha mycket mer auktoritet att ställa in och använda PostgreSQL. I den sista delen av kapitlet visar vi hur man använder en träningsdatabas för "lufttransporter", fylld med speciellt beredda plausibla data. 2.1 Installera DBMS Eftersom den verkliga träningshandboken är avsedd att studera SQL-språket, och inte grunden för PostgreSQL DBMS-administrationen, kommer vi bara att begränsa oss bara till korta anvisningar om var du hittar installationsanvisningar. Du måste börja med valet av DBD-distributionen som du vill installera. Du kan välja originalalternativet PostgreSQL eller den som erbjuds av Postgres Professional. Det heter Postgres Pro och innehåller inte bara alla funktioner och moduler som ingår i standarddistributionen, men också ytterligare utvecklingar som gjorts i Postgres Professional. För att studera grunden för SQL-språket är dessa fördelningar lika lämpliga. Dokumentationen på Ryska ingår dock endast i Postgres Pro. När du bestämmer dig för en specifik DBMS-distribution måste du välja operativsystemet. PostgreSQL stöder flera system, inklusive olika Linux-versioner, samt Windows. Det rekommenderas att fastställa den senaste stabila versionen av DBMS. Om du bestämmer dig för att använda den ursprungliga PostgreSQL-distributionen, kan du hitta instruktioner för att installera den i olika operativsystem i adressen om du väljer Postgres Pro-distribution, då ska du kontakta här: Senaste. Efter att ha installerat både PostgreSQL och Postgres Pro på onsdag måste du vidta ytterligare åtgärder för att använda det ryska alfabetet i en interaktiv PSQL-terminal orsakade inte problem. PSQL-verktyget ses i nästa avsnitt. Under installationsprocessen skapas DBMS användarkonto med namnet Postgres. För att utforska den här handboken är det inte nödvändigt att skapa ytterligare konton. arton

20 Installera en viss PostgreSQL-distribution, måste du lära dig hur du kör databasservern, eftersom det annars är omöjligt att arbeta med data. Hur man gör det beskrivs i detalj i dokumentationen i avsnitt 18.3 "Kör databaserver". Du kan hitta det här avsnittet på aktuell / server-start.html. När du installerar DBMS i Windows, skapas Tjänsten (Service) för att automatiskt starta PostgreSQL-servern när operativsystemet är laddat. När du har slutfört servern med servern måste du stoppa den korrekt (stäng av) den. Förfarandet för en sådan situation beskrivs i dokumentationen i avsnitt 18.5 "Slå av servern". Du kan hitta det här avsnittet på PostgreSQL / 9.6 / Server-Shutdown.html. 2.2 PSQL-program Interactive PostgreSQL-terminal För att komma åt databasservern ingår den interaktiva terminalen PSQL i PostgreSQL. För att starta det måste du ange PSQL-kommandot när du startar PSQL-verktyget i Windows-miljön, är det möjligt att felaktigt visa bokstäverna i det ryska alfabetet. För att felsöka detta kommer det att vara nödvändigt i fönstret Egenskaper, där PSQL körs, ändra teckensnittet till Lucida-konsolen och använd CHCP-kommandot för att ändra den aktuella kodsidan på CP1251: CHCP 1251 i PSQL-verktygsmiljön, du Kan skriva in inte bara SQL-språkkommandon, men också olika servicekommandon, som stöds av själva verktyget. För att få en kort referens för alla servicekommandon måste du ange \\? Många sådana kommandon börjar med tecken \\ d. Till exempel, för att kunna se en lista över alla tabeller och visningar (visningar) som skapats i den databas som du är ansluten, skriver in kommandot \\ DT om du är intresserad av definitionen (helt enkelt, strukturen) för alla Databastabell, till exempel, studenter, du måste ange kommandot \\ D-studenter för att få listan över alla SQL-kommandon, måste du utföra kommandot \\ h för att mata ut ett specifikt SQL-kommando, till exempel skapa tabell, måste du Gör det här: \\ h Skapa tabell 19

21 Det här verktyget gör att du kan minska mängden manuell ingång genom att lägga till kommandot till "krafterna" av PSQL inmatad. När du till exempel går in i ett SQL-kommando kan du använda flikknappen för att lägga till kommandot till kommando-sökordet eller namnet på databastabellen. Till exempel, när du anger kommandot Skapa tabell ... Du kan, ange "CR" -tecken, tryck på fliken PSQL-tangenten, kompletterar det här ordet till "Skapa". På samma sätt kan du göra med ordtabellen. För att komma in i det är det tillräckligt att bara ange bokstäverna "TA" och tryck på TAB-tangenten. Om du har angett för små bokstäver så att PSQL-verktyget definitivt kan identifiera sökordet, kommer tillägget inte att hända. Men i det här fallet kan du trycka på Tab-tangenten två gånger och få en lista över alla sökord som börjar med den klöverkombination du angav. 2.3 Använda en databas Efter att du har slutfört installationen av databasservern kan vi gå direkt till övervägandet av frågan om hur du distribuerar i ditt PostgreSQL-kluster, Air Travel-databasen som utarbetats av Postgres Professional. På företagets hemsida finns det en sektion som är avsedd för den här databasen, det är möjligt att hitta den på länken den finns i tre versioner som endast skiljer sig åt data: den mest kompakta versionen innehåller data i en månad, medium- Stor version täcker en tidsperiod om tre månader, och den mest kompletta versionen innehåller data för hela året. Alla data genererades med hjälp av speciella algoritmer som säkerställer deras "trovärdighet". Vi rekommenderar att du börjar med en kompakt version av databasen "Air Transport", och efter att ha fått viss erfarenhet av att skriva SQL-frågor, installerar du den fullständiga versionen och du kan bättre "känna" olika subtiliteter som arbetar med stora volymer, till exempel, Utvärdera effekten av indexåtkomst till data. Som ett första steg till databasutbyggnaden är det nödvändigt att ladda ner den arkiverade säkerhetskopian på ZIP-länken. Då måste du extrahera filen från arkivet: unzip demo_small.Zip Den extraherade filen heter Demo_Small.sql. Nu skapar vi en databas med demo-namnet i ditt postgresql-kluster. Det kortaste kommandot blir så här: psql -f demo_small.sql -u Postgres Om du vill omdirigera utmatningen av meddelanden som genererar DBMS under drift, från skärmen till filer, kan du göra det här: psql -f demo_small.sql - u Postgres\u003e demo.log 2\u003e demo.err Du kan dela standardutmatningsenheten och standardfelutmatningsenheten. Konventionella meddelanden kommer att omdirigeras till demo.log-filen och felmeddelanden till demo.err-filen. Observera att mellan nummer 2, som anger handtaget på standardfelmeddelandesignalen och "\u003e" -tecknet, som betecknar omdirigering av utgången, bör det inte vara ett utrymme. tjugo

22 Om du är bekvämare för att samla alla meddelanden till en vanlig fil måste du göra det här: PSQL -F demo_small.sql -u Postgres\u003e Demo.log 2\u003e & 1 Observera att allt uttryck 2\u003e & 1 på slutet av laget är skrivet utan mellanslag. Det indikerar operativsystemet som felmeddelanden behöver styras där, där vanliga meddelanden visas. Om vår SQL-fil var väldigt stor, så kan du utföra kommandot i bakgrunden, sätta "&" -symbolen i slutet av kommandoraden, och under processen i realtid är det att titta på att använda svanskommandot. Psql -f demo_small.sql -u Postgres\u003e demo.log 2\u003e & 1 & tail -f demo.log Välj ett av de föreslagna kommandotalternativen för att distribuera en databas och kör det här kommandot. Allt är klart! Du kan ansluta till en ny databas: PSQL -D Demo -u Postgres styr frågor och jobb 1. Utför PostgreSQL DBMS i miljön i det operativsystem du valt. 2. Bekanta dig med PSQL-verktyget med hjälp av den inbyggda hjälpen, såväl som att använda den hjälp som hämtas av PSQL --HELP-kommandot 3. Förutom PSQL-verktyget finns det andra universella program att arbeta med PostgreSQL-databasservern , till exempel PGADMIN. Detta är ett kraftfullt verktyg med ett grafiskt gränssnitt. Installera PGADMIN-programmet och läs huvudteknikerna för att arbeta med den. 4. Utför utbyggnaden av den akademiska databasen. Försök att ansluta till den med hjälp av PSQL-verktyget. För att lämna verktyget, använd kommandot \\ Q. 21.

23 3 Grundläggande funktioner med tabeller SQL-språk är mycket varierat, det innehåller ett antal kommandon som i sin tur har många gånger har många parametrar och nyckelord. Men låt oss börja med en kort recension av SQL-språkets huvudsakliga förmåga. I det här kapitlet kommer du att lära dig att ange data i databasen, behärska de viktigaste sätten att få information från databasen, dvs prover, och lära dig hur du gör ändringar i den information som lagras i databasen och raderar de data som inte längre är Behöver. I praktiken att lära sig främmande språk finns det en bra tradition. Redan vid första ockupationen studerar studenten några grundläggande grammatiska strukturer och ord som tillåter honom att säga något enklare, men ändå, praktiskt taget användbara fraser. Vi följer denna tradition. I det här avsnittet i vår manual kommer du att bekanta dig med de grundläggande SQL-språkkommandon som gör att du kan utföra grundläggande operationer. Och mer komplexa (och intressanta) kommandon du kommer att studera i följande kapitel. Låt oss säga två ord om vårt tillvägagångssätt att arbeta. I princip är två sätt att organisera studentens arbete (studie) möjliga. Det första sättet: En student använder en databas, som redan innehåller alla nödvändiga tabeller och andra databasobjekt som är förberedda i förväg av författaren till läroboken eller annan kvalificerad specialist. I det här fallet ingår också en viss uppsättning nödvändiga data i tabellen, så du kan omedelbart gå till utförandet av förfrågningar till dessa tabeller. Den beskrivna metoden verkar mycket attraktiv eftersom det kräver mindre ansträngning vid det första steget att mastera SQL-språket. Men enligt vår mening är ett annat sätt mer korrekt. Förmodligen är det mer mödosamt, men när du använder det är du bättre, som de säger, känner processen med att skapa tabeller och ange poster till dessa tabeller. Och utför olika databasförfrågningar, du blir lättare att uppskatta korrektheten av resultatet av utförandet av frågan, eftersom du har gått in i alla data själv och därför kan du rimligen anta vilka resultat du förväntar dig att se på skärmen. Naturligtvis kan det första sättet vara mycket användbart att lära sig mer komplexa, avancerade, SQL-språkfunktioner, vilket är svåra att förstå utan att använda stora datarrayer, och stora datarrayer går in i en databas manuellt irrationell. Mycket mer rationellt kommer att vara deras automatiska format programmatiskt. I kapitel 1 beskrev vi ämnesområdet, så vi kan nu gå vidare till direkt skapande av tabeller i databasen. För att uppfylla alla efterföljande kommandon och operationer använder vi PSQL-verktyget, som ingår i standardförsörjningen av PostgreSQL DBMS. På din dator måste DEMO-databasen redan distribueras. Skapningsprocessen beskrivs i kapitel 2. Kör nu PSQL-verktyget och anslut till den här databasen med Postgres användarkonto: PSQL -D Demo --U Postgres för att skapa tabeller på SQL-språket Serverar kommandot Skapa tabell. Dess fullständiga syntax presenteras i dokumentationen för PostgreSQL, och förenklad syntax: 22


Företag Postgres Professional E. P. Morgunov PostgreSQL. Grunderna för SQL-språkhandledning Sankt Petersburg "BHV-Petersburg" 2018 UDC 004.655 BBK 32.973.26-018.2 M79 Morgunov, E. P. M79 Postgresql. Grunderna

Språk SQL Föreläsning 6 Index E. P. Morgunov Sibiriska Statens vetenskaps- och teknik Universitetet Namnet efter akademiker M. F. Reshetnev G. Krasnoyarsk Institut för informatik och telekommunikation [E-post skyddad]

Bröder i.l. 41. Fundamentals av databasdesign. Metoder för att bygga DBMS. SQL, exempel på implementering. Grunderna i moderna databaser. 1. Grundläggande definitioner. Terminologi. I litteraturen kan du träffas

Ämne 10. Basics of Database Technology Database Technology är en av de viktigaste datavetenskapliga prestationerna som används för att bygga datasystem och applikationer som implementerar information

Grundläggande databaskoncept 1. Välj rätt procedur för att designa DBA A) Lösning av dataöverföringsproblem B) Analys av ämnesområdet, med beaktande av kraven i slutanvändare c)

Inledning Den här boken är avsedd för utvecklare som använder Oracle som ett databashanteringssystem (DBMS). Därför försvinner den här boken inte mycket utrymme för att överväga problem,

Alternativ 1 Välj rätt svar. Endast ett alternativ för det korrekta svaret är möjligt. 1. Informationssystem är a) Eventuellt informationsbehandlingssystem B) Textinformationsbehandlingssystem

SQL Föreläsning 3 Grundläggande av Data Definition Språk E. P. Morgunov Sibirisk Statens vetenskap och teknik Universitetsnamn som heter Academian M. F. Reshetneva G. Krasnoyarsk Informatik Informatik Informatik och telekommunikation

Språk SQL-föreläsning 5 Byte av data E. P. Morgunov Sibirisk Statens vetenskap och teknik Universitetsutbildning Namngivna efter akademiker MF Reshetneva G. Krasnoyarsk Institut för informatik och telekommunikation [E-post skyddad]

➀ Informationssystem och databanker. Det viktigaste villkoret för att säkerställa en effektiv funktion är tillgången på ett utvecklat informationssystem. Informationssystemet är ett system,

Kapitel 1. Komma igång Hur Microsoft Access Database Design Data Design Stages Stages med en databas Bädda in till Operation Anpassad gränssnitt Åtkomst 2007 Ställa in elementen

Kapitel 3. Installera och starta multiplayerversionskraven och förhållandena ... 1 Förfarande för installation av en SBI ++ på nätverket ... 2 Installera och konfigurera en server och klient Pervasive.sql ... 3 Installation av programmet .. . 4 Förberedelser

Banktestuppgifter Utbildningsdisciplin Riktning Nivån för utarbetandet av avdelningen B1.B.12 Datahantering 09.03.02 Informationssystem och teknik Bachelor av metoder och mätning och automatisering

Databasen med utvecklingen av datorutrustning utfördes i två huvudområden: användningen av datorutrustning för att utföra numeriska beräkningar; Användning av beräkningsutrustning

Moskva State Technical University uppkallat efter N. E. Bauman Kaluga Branch Yu. E. Gagarin, S. V. Ponomarev Tillämpning av SQL-språk i MS Access Educational and Methodological Manual UDC 681.3.06 BBK 32.973

1. Information och data 2. Grundläggande begrepp av system med databaser Information Datorsystem med databaser är system för information, matematisk, programvara, språk, organisatorisk

PDM Steg Suite Version 5.0 Installationsanvisningar PDM-steg Suite Instruktioner för en systemprogrammerare. Del 1 Ao Nic "Tillämpad logistik" 2019 PDM Steg Suite v.5.0. Instruktioner för systemprogrammerare

1 av 6 Föreläsning 1. Databasystemarkitektur. Funktionerna hos administratören för databassystemet i företagsinformationssystemet. Databasobjekt. 1,1. Arkitektur av ANSI / SPARC-databasystemet ... 1

Innehåll Introduktion ... 3 1 Studie av ämnesområdet och ställa in problemet ... 4 2 Bygga en infologisk modell ... 5 3 Datalog Design Database ... 6 3.1 Välja ett styrsystem

I moderna förhållanden, i automatisering av företag är det nödvändigt att hantera olika och ofta diametralt motsatta krav för redovisning av samma partitioner. Enligt dokumentationen

Utbildningsdisciplin "Databaser och förvaltning av dem" för elevernas specialitet tillämpad informatik (grundutbildning) 080800.62 Föreläsning 15 Modeller av organisering Tillgång till databaser Klassrum: 1. Arkitektur

SQL-föreläsning 7 Transaktioner E. P. Morgunov Sibirisk Statens vetenskap och teknik Universitetsutbildning M. F. Reshetneva G. Krasnoyarsk Institut för informatik och telekommunikation [E-post skyddad]

Datorinformationsteknikmodul 13. Allmänna egenskaper hos DBMS Access 1 Moduluppgifter Efter att ha studerat modulen kan du: Berätta om funktionaliteten hos åtkomst DBMS; Vet funktioner

System för elektronisk dokumenthantering A R X och i en R och U från installationshandboken Moskva, 2008 2 Sammanfattning Detta dokument beskriver programvaruförsörjningssatsen "Euphrates-dokument

Databaser (databas). Databashanteringssystem Allmänna bestämmelser Målet med något informationssystem är att bearbeta data om de verkliga världens föremål. I ordets breda mening är databasen en uppsättning information om

Introduktion till databasen. Introduktion till SQL. Sumy Educational Center Software Quality Assurance (QA) NetCracker 2016 1 Du lär dig om följande Vad är databas klassificeringsdatabas DBMS-klienter DBMS

1,1. Grunderna för att arbeta med databaser 1.1.1. Databaser och databashanteringssystem. Databasdatabasen (dB) är en namngiven uppsättning strukturerade data relaterade till en viss

Det verkar som om det var ganska nyligen, men sedan dess har betydande förändringar hänt! Vid den tidpunkt då författaren var engagerad i att förbereda sig för utskrift Professional SQL Server 7.0 Programmering i början av 1999

Introduktion till teorin om databas Föreläsning 1 Föreläsningsplan Basic Concepts Dataorganisation Typer av datamodulatorer Databasarkitektur Klassificering DB Server 2008. Föreläsning 1 2 Grundläggande begrepp Server 2008. Föreläsning

Bilaga 4 Processhantering Subsystems och Computing Innehållsförteckning 1. Allmän information ... 2 2. Modelleringsstater och arbetsflöden ... 2 2.1. Förvaltning av listan över grupper av stater ... 2 2.2. Varelse

Softacom CRM installationsguide version 2.1. 1 "Installationsguide softcom CRM". Innehåller beskrivningen av systeminstallationsprocessen. Innehåll 1 Introduktion ... 3 1.1 Allmänt Om systemet ... 3 1.2 Funktioner

Laboratoriearbete 4 "Skapa anslutningar mellan tabeller" Mål: Att studera tekniken för att skapa en relationsdatabasstruktur i Microsoft Office Access 2007 1. Kort teoretiskt informationsord

Logisk bokning Ämnen Logik och fysisk bokning Kopiera specialbord Reservation och databas Återställ och Cluster 2 Typer Bokning Logisk bokning

Microsoft Access: Kommunikation, fält beräknad, skapa en trycktonad distribution BD. Tabellkommunikation Moderna databaser består vanligtvis av många tabeller relaterade till varandra. Ett av målen att skapa en bra struktur

National Aviation University Department of Applied Informatics Kursarbete Ämne: DBMS Microsoft Access Skapa och bearbeta databas Mål: Teoretiskt och praktiskt taget behärska huvudarbeteteknikerna

Transaktioner och samtidig åtkomst: Jämförelse av implementeringar i PostgreSQL och Oracle Egor Rogov, Postgres Professional Varför är allt? Frågoresultat Varför är allt? Begäran Request Transaktion Atomicity Allt

@ DB, CUD 1. Datastruktur för vilken underordningen av de lägre nivånsobjekten kännetecknas av toppnivåobjekt, kallad A. Tabell B. relationell * c. Hierarkisk D. Nätverk 2. Distinskt

VOGBIT Installationsguide 2010 Innehållsförteckning Introduktion ... 4 Krav på programvara och hårdvara ... 5 Installationssekvens ... 6 Installation av programmet ... 7 Förfrågan och begär en licens ...

Steg av utveckling av databaser med databaser, som regel, fungerar inte professionella, så du kan formulera följande krav för databasen. Utvecklare, när man skapar en databas, bör fokusera på dessa

Access Database Management System har slutfört Nazalgul Niyazovna Chibinet, en student av fakulteten för främmande språk i Celabuga Institute of the Kazan (Promotional) Federal University. Vetenskaplig

Informatik Föreläsning 5 MS Access Information Systems Program för lagring, påfyllning, redigering och användning av stora datamängder Användbar Intelligent Access

Innehållsförteckning Förord \u200b\u200b... 3 timmar och C T B I. Databas, DBMS och datamodeller Kapitel 1. Syftet med databasstekniken. Funktioner och grundläggande komponenter i databashanteringssystem ..........................................

Laboratorium för övervakning och automatisering av utbildningsprocessen. Guide till webbplatsadministratörens stöd till utbildningsprocessen. Utgåva 3 av 12/18/15. Korotkov D.S., Zaurk I.O. Aktivera inaktivera

Kapitel 6 Databaseori 6.1. Allmänna begrepp 6.2. Datamodeller 6.3. Relationella databaser 6.4. Fördröjning av modeller och databaser 6.5. Databasdesign moderna informationssystem,

Laboratoriearbete 9 Undersökning av förmågan i Microsoft Access 2007 om bildandet av förfrågningar med SQL. Syfte: 1. För att studera ordningen för att bilda förfrågningar med SQL i Microsoft Access

Komplex av förberedelse av luftnavigeringsinformation Dokument som skapar en databas med flygnavigeringsdata Allmänna bestämmelser Huvudkällan för luftnavigeringsinformationen för komplexet är relationsbasen för luftnavigering

1. Beräknat medel för nuvarande kontroll. Problem som skickas till undersökningen (för diskussion) avsnitt av den akademiska disciplinen: Avsnitt 1. Ange data i banker 1. Begreppet Databank (BND). BND-komponenter. 1,1. Information

Föreläsning 2 1 via ordbok: Informationssystem Arkitektur Informationssystem Organisationellt beställt uppsättning dokument (problem med dokument) och informationsteknik, inklusive användning av

J. Buman, S. Emerson, M.Karnovsky Praktisk SQL-guide Den här boken hjälper till att även i de fall där den bästa användarhandboken är värdelös. Här är avslöjade ämnen som ofta hoppas över

Systemet med elektronisk dokumenthantering A R X och i en R och U med installationsguiden Moskva, 2009 2 Sammanfattning Detta dokument beskriver programvaruförsörjningen av Euphrates-dokumentet.

Sergey Vorobyov
Lead EngineerSterrian
Sql. Grundkurs
www.aplana.ru.

Innehåll
● Del 1. Introduktion till SQL
● Del 2. Data Defenition Språk
● Del 3. Data Manipulation Språk
● Del 4. Drl. Enkla förfrågningar.
● Del 5. Dataprovtagning från flera tabeller.
● Del 6. Aggregatfunktioner. Gruppering av data.
● Del 7. Subqueries.
● Del 8. Funktioner för att arbeta med rader, datum och siffror.
23

Sql. Grundkurs
Del 1. Introduktion till SQL
www.aplana.ru.

Introduktion till SQL
SQL (Eng. Strukturerad sökspråk - "Strukturerad språk
Förfrågningar ") - Universal datorspråk som används för
Skapande, modifieringar och datahantering i relationella baser
data.
43

Introduktion till SQL
Databaslista eller uppsättning relaterade listor med
Information
Databashanteringssystem (DBMS) - Special
Programvara som styr dessa listor
53

Relationell och icke-relationell databas
Relationsdatabas - Databas baserad på relationell modell
Data:
Data i databasen är en uppsättning tabeller;
Data uppfyller vissa integritetsförhållanden;
Stödjer operatörer manipulerar tabeller
(till exempel provtagning eller kopieringstabell).
Oreglerade databaser - Hierarkiska, Nätverk,
Objektorienterad, NOSQL.
63

Databasen skiljer sig från kalkylblad
1. Lagra ett stort antal linjer
I kalkylbladet är antalet strängar begränsat.
Miljoner linjer lagras i databasen.
2. Samtidigt underhåll av många användare
3. Säkerhet.
Användare är bara privilegierade på
Vissa tabeller och handlingar.
4. Relationella egenskaper.
Data lagras i olika tabeller, mellan tabeller
Det finns anslutningar.
5. Begränsningar som garanterar datainformation.
73

Bord (tabell)
Rad (rad) - horisontellt sortiment av celler som tilldelats för vardera
Bordsobjekt.
Spela in (post) - data i strängen.
Kolumn (kolumn) - innehåller information om en typ.
Fält (fält) - Korsa kolumnen och strängarna.
83

Grunderna i SQL-gränssnittet
Dbms
93
namn
Avkodning
Interbase / firebird.
Psql
Procedural SQL.
IBM DB2.
Sql pl
SQL Procedural Språk
MS SQL Server / Sybase ASE
T-sql.
Transakt-sql.
Mysql
SQL / PSM.
SQL / Persistent Stored
Modul.
Orakel
PL / SQL
Procedural språk / sql
(Baserat på ADA-språket)
PostgreSQL
PL / PGSQL
Procedural.
Språk / PostgreSQL
(Mycket liknar Oracle
PL / SQL)

10.

Skillnader i syntaxen för DBMS-funktioner
MSSQL
Db2.
Numerisk.
siffra
Numerisk.
DATEADD.
Month_add.
(Datum + 10 dagar)
Eomonth
Sista dagen.
Sista dagen.
Dateradiff.
Month_between
Timestampdiff.
Övre.
Övre.
Ucase / övre.
Konvertera.
To_char
To_char
Initcap
Initcap
-
103
Orakel

11.

SQL-syntax
Funktioner och namn på objekt är inaktiva för att registrera:
Välj \u003d Välj.
Men när du söker efter textfält beaktas registret
SQL är inte känslig för strängöverföring
Det finns inga obligatoriska tecken, slutlinjer
Stödjande - --- ritning kommentarer och
/ * Multi-Line * /
Varje transaktion är vanligt för att slutföra semikolon, men
När du utför separata kommandon är deras användning inte
Innan
113

12.

Datatyper
Char (n) - Strängar av konstant längd (upp till 256 byte i MS SQL Server), dvs.
Ange mindre data i linjen - storleken ändras inte
Varchar (n) - variabel längdlinjer, d.v.s. kräver minne så mycket
Hur mycket data
Heltal - nummer utan decimalpunkt
Numerisk (m, n) - används för att lagra noll och positiv eller
Negativa tal med en fast och flytande punkt. Skapa (totalt antal siffror), n-skala (antal nummer till höger
decimalpunkt). M / n-hellulära parametrar
Datum - Datum i formatet Yyyy-MM-DD (ISO), DD / MM / YYYY (ANSI), DD-MON-YY.
Boolean - logisk datatyp: True / False eller 1/0.
Fältvärdet kan också vara null - betyder inga värden -
Tom cell.
123

13.

Typdatum.
Som standard kan du representera datumet i DD-MONYYY-databasen (till exempel "01 -FEB-1900 "):
Infoga i tabell1 (ID, DATE_WORK) värden (1, '01 -FEB-1900 ').
Du kan också använda datumkärnan. Samtidigt redan för
Datumformat yyyy-mm-dd (till exempel, "1900-02-01"):
Infoga i tabell1 (ID, date_work) värden (1, datum "1900-02-01").
Också alternativt kan du använda datumtypen + TIME TIMESTAMP
För uppgiften, inte bara datum, men också tid:
Infoga i tabell1 (ID, date_work) värden (1, '01 -feb-1900-10.50.01 '),
de där.
1 februari 1900 10 timmar 50 minuter och 1 sekund (DD-MON-YY-format
-Hh.mm.s.nnnnn)
133

14.

Konvertera datatyper i MSSQL
Konvertera (datatyp, sträng, stil) - konvertera en
dataformat i en annan
I symboler:
Konvertera (Varchar (20), GetDate ())
Vid dagen
Konvertera (DateTime, "14-11-2015", 105)
siffra
Konvertera (numeriskt, "1234657890")
143

15.

Transformation av datatyper i Oracle
To_char (ingångsvärde, format) - datumkonvertering,
siffror, tid i strängen.
Format: 'Månad dd', 'Månad dd, yyyy', 'dd / mm / yyyy', 'Day Mon, YY AD'
År.
$9,999.00
Etc.
To_char (sysdate, "månad dd")
To_date (ingångsvärde, format) - radomvandling i
datum. Format: DD-Mon-Yyyy
Månad DD, Yyyy, HH: MI P.M.
Etc.
To_date ("02-jan-2012", "dd-mon-yyyy")
To_number (inmatningsvärde, format) - radomvandling i antal.
To_number ("123")
153

16.

Andra databasobjekt
Presentation (Visa) - Det här är BB-objekt som inte innehåller
egna bord, men deras innehåll tas från andra tabeller
eller synpunkter genom att utföra en fråga.
Schema (schema) - namngiven grupp relaterade BD-objekt.
Index (index) - Ett objekt skapat för att öka
Sökprestanda. Dold bord som innehåller en
eller flera viktiga kolumner i tabellen och pekarna till linjer
Bord.
Begränsning (begränsning) - de villkor som måste uppfylla
Inmatad av användarposten.
163

17.

Andra databasobjekt
Lagrat procedur (lagrat procedur) - databasobjektet,
Presentera en uppsättning SQL-instruktioner. Lagras i databasen.
Kallar proceduren leder till genomförandet av det finns i det
instruktioner.
Funktion (funktion) - som liknar det lagrade proceduren, men återvänder
värde som kan användas i större
operatör.
Trigger (trigger) - ett förfarande som utförs automatiskt
När en viss angiven händelse inträffar.
Markör (markör) - Hänvisning till minnesområdet. Använder sig av
Markör, du kan separat bearbeta varje rad i samband med
Det är en SQL-operatör.
173

18.

SQL-språksektioner
1. DDL - Data försvarsspråk (databasobjektdefinitionsspråk).
Skapa, Alter, Drop och TD
2. DCL - Datakontroll språk (datahanteringsspråk).
Bidrag, återkalla
3. DML - Data Manipulation Språk (Manipulation Språk
data). Infoga, uppdatera, radera
4. Datahämtning - Välj Data Provtagning
5. Transaktionskontroll (Transaktionsprocessspråket).
Commit, Rollback, SavePoint.
183

19.

Sql. Grundkurs
Del 2. Data Defenition Språk
www.aplana.ru.

20.

Data Defenition Språk.
1.
Skapa tabell (skapa tabeller)
Allmän syntax:
Skapa tabellnamn_tabel (
Field1 Field Type1,
Field2 typ2 typ,
..., fältet av polyn typ);
Skapa tabellperson_info (
Person_id heltal inte ,
Första_name varchar (15) inte ,
Last_Name Varchar (20) inte ,
Kön char (1),
Birtday Date,
Lön numerisk (7,2));
203

21.

Data Defenition Språk.
2. Ändra bord (byte av tabeller)
Alter Table Name_Table (Lägg till<имя столбца> <определение столбца>}|
(Ändra<имя столбца> <Определение столбца>) | Droppkolonn<имя
Kolumn\u003e)
3. Släppbord (Radera tabeller)
Drop Table Name_telles (Cascade Constraints);
4. Avkortningsbord (rengöringsbord)
Truncate tabellnamn_table
213

22.

Sql. Grundkurs
Del 3. Data Manipulation Språk
www.aplana.ru.

23.

Data Manipulation Språk.
1. Infoga - Sätt in en separat post.
Infoga Ino Name_Table-värden (fältvärde1, fältvärde2, ..,
Polyarn värde);
Infoga i NAME_TABLE (fält1, fält3, ...) värden (fältvärde, fältvärde, ...,
Polyarn värde);
Infoga i person_info-värden (1, "John", "Smith", "M", "15-okt-1973",
45568.56);
Infoga till Person_info (Person_ID, First_Name, Last_Name) Värden (5, Sarah "," Connor ");
Framgångsrikt.
Infoga i person_info-värden (, "Jane", "Smith", "F", "8-Aug-1987",
Null);
Fel, eftersom person_id inte kan vara null.
233

24.

Data Manipulation Språk.
Sätt i grupp av poster
Infoga i namn_tabel
VÄLJ ...;
Skapa tabell T2 (
First_1 Varchar (15),
Last_1 Varchar (20),
Födelsedag_1 datum);
Sätt in i t2.
Välj First_Name, Last_Name, födelsedag
Från person_info;
243

25.

Data Manipulation Språk.
Infoga i person_info-värden (2, "Sara", "Doe", "F", "9-okt-1986",
29789.56);

29789.56);
Framgångsrikt.
Infoga i person_info-värden (3, "Sara", "Doe", "F", "9-okt-1986",
29789.56);
Ta nu bort den andra posten med person_id \u003d 2
Ta bort från person_info där person_id \u003d 2
253

26.

Data Manipulation Språk.
Dataintegritet
Entity integritet - definierar en bordsträng som en unik kopia
Någon enhet.
Primär nyckel (primär nyckel) - kolumn eller gruppkolumner unika
Identifiera varje post.
Den externa nyckeln (utländsk nyckel) är en återspegling av banden mellan tabellerna. Underordnad
Bordet måste ha en identisk kolumn (eller kolumngrupp) för lagring
Värderingar, unikt identifiera huvudrekorden.
Referensintegritet - i underordnade tabeller ska inte registreras,
Med hänvisning till obefintliga register över de huvudsakliga tabellerna.
263

27.

Data Manipulation Språk.
273

28.

Data Manipulation Språk.
Primärnyckel
Alter Table Name_Table
Lägg till primärnyckel;
Alter bord person_info.
Lägg till primärnyckel (person_id);
Värdena för den primära nyckeln innebär en unik identifiering
Inlägg respektive värderingar kan inte upprepas.
Och försök igen att lägga till en post med person_id \u003d 2:
Infoga i person_info-värden (2, "Rita", "Blow", "F", "9-okt-1975",
29789.56);
283

29.

Extern nyckel
Alter Table_Name_Table_Table
Lägg till begränsning av främmande nyckelnamn (biblioteksnamn
Underlydande
Tabeller) Referenser Namn_Table_Table;
Skapa tabell person_address (
Person_id heltal,
Adress Varchar (200));
Alter Table Person_Address
Lägg till begränsning person_fk_address
Utländsk nyckel (person_id)
Referenser person_info;
293

30.

Data Manipulation Språk.
Infoga in i person_address-värden (1, "Moskva, Arbat Street, 67-14");
Infoga till personnummer (2, "Moskva, Arbat Street, 67-14");
Framgångsrikt.
Infoga till Person_Address-värden (4, "Zelenograd, Green Street, 23");
Fel. Försök att infoga en underordnad inträde i frånvaro av
relevant huvudrekord.
Infoga in i person_adressvärden (3, "Zelenograd, Green Street, 23");
303

31.

Bordsbindning när du skapar
Som vi redan har ansett tidigare, används skapandet allmänt.
Primär (primär nyckel) och externa (främmande nyckel) nycklar
Genom kommandon för att ändra strukturen hos befintliga tabeller. Också
Du kan lägga till dessa strukturer och när du skapar ett bord:
Skapa tabellflik1 (
ID-heltal primärnyckel,
…..
313

32.

Data Manipulation Språk.
2. Uppdatera - Ändra tabellkolumnervärden
A) Ändra alla tabellkolonnvärden
Uppdatering.
UPPSÄTTNING. =
Uppdatera person_address
Ange adress \u003d "Volgograd, First Street, 15-20"
B) Ändra de specifika värdena för tabellen
Uppdatering.
UPPSÄTTNING. =
Var =
Uppdatera Person_Address Set Adress \u003d "Volgograd, First Street, 15-20"
Där person_id \u003d 3;
Uppdatering.
UPPSÄTTNING. =
Var = [operatör]
Uppdatera person_info Set Lön \u003d Lön * 2
Där person_id \u003d 3;
323

33.

Data Manipulation Språk.
3. Radera - Radera rader från bordet
A) Ta bort alla tabellkolumnvärden
Radera från.
B) Ta bort specifika tabellvärden
Radera från.
Var =
333

34.

Praktisk uppgift nummer 1
1. Skapa databasen som visas i Figur 1 (Skapa tabeller och extern nyckel)
2. Gör följande data i tabellerna.
Dept: (1, "Marketing"), (2, "RD")
EMP: (1, 1, "James", 1000), (2, 2, "Smith", 2000)
3. Skapa ett Dept_arch-bord med samma struktur som vid depttabellen.
4. Sätt i alla data från dept-tabellen i dept_arch-tabellen.
343

35.

Praktisk uppgift nummer 1 (fortsättning)
5. Ökning med 15% Lön Smith-anställd.
6. Se till att DEPT-tabellen inte kan infogas sådan post: (2, "försäljning"). Varför?
7. Se till att EMP-tabellen inte kan sättas in sådan post: (3, 4, "Svart", 3000,
"Aktiva"). Varför?
8. Ändra namnet på RD till Randd (Dept-tabell).
9. Ta bort från EMP-tabellen från EMP_ID \u003d 1 från EMP-tabellen.
12. Radera alla poster från EMP-tabellen.
13. Ta bort EMP-tabellen.
353

36.

Sql. Grundkurs
Del 4. Drl. Enkla förfrågningar
www.aplana.ru.

37.

Vår träningsdatabas
373

38.

Data hämtningsspråk.
Välj - Dataprovtagning. Det här avsnittet är obligatoriskt i begäran och
Tillåter:
Välj fält1, ... fält från tabell1, .., tablen där tillstånd
383
Bestäm listan över utgångskolumner
Aktivera beräknade kolumner
Aktivera konstanter
Byt namn på utmatningskolumnerna
Ange principen om att bearbeta dubbla linjer
Aktivera aggregatfunktioner

39.

Data hämtningsspråk.
1.
Definition av listan Utgångskolumn
Listan över utgångskolumner kan anges på flera sätt:
. Ange * symbolen som betecknar införandet i resultaten av frågan om alla kolumner
Begäran i naturlig sekvens.
. Listad i önskad ordning endast det nödvändiga<имена столбцов>.
Välj person_code, First_Name, Last_Name från person;
- Kanske ändra kolumnernas ordning
Välj First_Name, Last_Name, Person_code från person;
393

40.

Sammanfogning
Anslutning av två eller flera delar av texten.
Välj produkt_Name + "såldes av" + säljare från köp;
403

41.

Data hämtningsspråk.
2. Slå på de beräknade kolumnerna
Som en beräknade frågekolumner kan vara:
. Resultaten av de enklaste aritmetiska uttrycken (+, -, /, * _ eller
Concatenering av strängar (+).
. Resultat av aggregeringsfunktioner (AVG | Summa | Max | Min |
RÄKNA)
413

42.

Data hämtningsspråk.
3. Inkludering av konstanter
Som kolonner kan vara en numerisk konstant och
Symboliska typer.
Välj "Det finns en sådan kod", Person_code, "För", First_Name, Last_Name
Från person.
423

43.

Data hämtningsspråk.
4.
Byt namn på utgångskolumner
Beräknad, såväl som alla andra kolumner, om så önskas,
Du kan tilldela ett unikt namn med ett sökord
SOM:<выражение> Som<новое имя>
Välj produkt_Name + "såldes av" + säljare som Soldby
Från köp;
Du kan ställa in alias och utan användning av ett sökord, men med begränsningar:
Välj produkt_Name + "såldes av" + säljare Soldby
Från köp;
Välj produkt_Name + "såldes av" + säljare "såld av"
Från köp;
433

44.

Data hämtningsspråk.
5. Ange principen om att bearbeta en dubbel
Distinkt - förbjuder utseendet på rader-duplikat i helgen
Uppsättning. Den kan ställas in en gång för Select-uttalandet.
I praktiken bildas utmatningssatsen initialt,
Organiserad, och sedan repetitivt från det
värden. Vanligtvis tar det mycket tid och borde inte
missbruk.
Välj distinkt * från person
Allt (gäller som standard) - säkerställer inkludering i
Begär resultat och repetitiva värden
443

45.

Data hämtningsspråk.
6.
Aktivera aggregatfunktioner
Aggregationsfunktioner (funktioner över uppsättningar, statistiska eller
grundläggande) är utformade för att beräkna vissa värden för
specificerade flera strängar. Följande aggregat används
Funktioner:
Avg | summa (<выражение) – подсчитывает среднее значение | сумму от
<выражение>.
Min | max (<выражение>) - finner det maximala | minimivärdet.
Räkna (* |<имя столбца>) - räknar antalet rader
Men på det här ytterligare
453

46.

Data hämtningsspråk.
Var är ett urval av data som uppfyller vissa
Betingelser.
Välj fält1, ... fält från tabell1, .., TableM var
Villkor1, ... tillstånd
463

47.

Data hämtningsspråk.
Exempel:
Välj * Från produkt där laststockdate är null;
Välj * Från produkt där laststockdate inte är null;
Välj produkt_Name, produkt_price, kvantity_on_hand
Från produkt där Quantity_on_hand\u003e 150;
Välj produkt_Name, produkt_price från produkt
Där produktnamn.<> "Fyrkantig zinkulator";
473

48.

Data hämtningsspråk.
Det finns mer komplexa förhållanden:
Slå i många
<конструктор значений строки> I (<подзапрос>|<набор конструкторов
radvärden\u003e)
Den uppsättning värden som jämförelseobjektet registrerades till
Nyckelordet i maj hörs eller inte hör hemma. Om subquery inte
Returnerar strängarna, predikatet tar värdet av false.
Exempel på att arbeta med uppsättningar:
Välj * Från köp där säljare i ("ca", "bb");
Välj * Från köp där säljare inte i ("ca", "bb");
Välj * Från köp där (säljare + produkt_name) i (("ca" + "liten
Widget "), (" GA "+" Chrome PhooBar "))
483

49.

Data hämtningsspråk.
Tillbehörsintervall
<конструктор значений строки> Mellan.<конструктор
Radvärden 1\u003e och<конструктор значений строки 2>
Mellan predikatet liknar ett predikat, men i stället för element
uppsättningar det sätter de gränser där [inte] borde
Kolla in värdet.
Var
Produkt_Price inte mellan 1 och 80;
493

50.

Data hämtningsspråk.
Boolska operatörer
<предикат> (Och | eller | inte)<предикат>
Anmärkningar: Boolesoperatör binder en eller flera predikat, bildar
Det enda logiska värdet är sant | FALSE. Med hjälp av predikat S.
Boolska operatörer kan öka och selektiva väsentligt
Förmågan att välja linjer till resultatet av frågan.
Vid användning av booleska operatörer, särskilt inte operatören, följer
Applicera runda fästen för att korrekt utarbeta villkor (och
Utfört tidigare eller).

"% Widget" eller produkt_price< 20;
Välj produkt_Name, produkt_price från produkt där produkt_name som
"% Widget" och produkt_price< 20;
503

51.

Data hämtningsspråk.

Välj lista över från listan där tabelllista kontrolleras som värde
(mall) (flykt);
En någon symbol - _
Välj person_code, First_Name, Last_Name från person där person_code som "_a";
Någon substring -%
Välj produkt_Name från produkt där produktnamn som "% krom%";
Om du behöver hitta text med en% symbol (till exempel, produktnamn
AB% CDEF):
Där produktnamn som "ab $% c%" fly "$";
Den första% läses som en symbol i titeln, den andra - som alla strängar.
513

52.

Data hämtningsspråk.
Provsökningsoperatör som
... där patronymic gillar "% ov%"
... där patronymic gillar "och%"
... där patronymic gillar '% hiv'
... var som "____ OS"
523

53.

Data hämtningsspråk.
Provsökningsoperatör som

Välj produkt_Name från inköp
Där produktnamn som "% widget"
Välj produkt_Name från inköp
Där produktnamn som "% $% widget"
Escape "$"
533

54.

Data hämtningsspråk.
Sortering
Välj lista över kolumner från tabelllista whery condition
Beställ via ASC-kolumnlista (DESC);
Nedåtgående:
Välj produkt_Name, produkt_price från produkt
Beställ produkt_price desc;
Stigande:
Välj produkt_Name, produkt_price från produkt
BESTÄLLNING AV PRODUCT_NAME ASC;
543

55.

Praktisk uppgift nummer 2
1. Skriv en förfrågan som helt anger inköpstabellen.
2. Skriv en förfrågan som väljer produktnamn och kvantitetskolumner från
Köptabeller.
3. Skriv en förfrågan som väljer dessa kolumner i omvänd ordning.
4. Skriv en förfrågan som visas för varje rad av personbordet
Nästa text:
Började arbeta. * Mottagen kolumn
Tilldela pseudonymen "Startat arbete".
5. Skriv en förfrågan som produktnamn Produktnamn
(Produktbord) för vilket priset inte är definierat (null).
6. Skriv en förfrågan som produktnamn Produktnamn
(Inköptabell), som såldes från 3 till 23 stycken.
* MSSQL stöder inte kolumner med Varchar och datumdatatyper. Använd operatören
Konvertering: Konvertera (Varchar, Hiredate)
3

56.

Praktisk uppgift nummer 2 (fortsättning)
7. Skriv en förfrågan som matar ut namnen på anställda som
Godkänd 1Go, 15 och 28 februari 2010.
8. Skriv en förfrågan som produktnamnet.
PRODUCT_NAME (Tabellköp) Säljs av anställda vars namn börjar på "B".
9. Skriv en förfrågan som stör produktnamnet.
PRODUCT_NAME (Tabellköp) Säljs av anställda vars namn inte börjar
"B".
10. Skriv en förfrågan som visar namn och datum för anställning
anställda vars namn börjar "b" och som de accepterade
att arbeta tidigare än 1 mars 2010.
11. Skriv en förfrågan som stör produktnamnet.
PRODUCT_NAME OCH LASTSTOCKDATAT SENASTE SUPPLY DATE (Tabell
Produkt) vars namn liten widget, medellång widget och stor
Widget eller de för vilka det senaste leveransdatumet inte anges.
Sortera upp datumet för den senaste leveransen.
563

57.

Sql. Grundkurs
Del 5. Provtagning av data från flera tabeller
www.aplana.ru.

58.

Val av data från flera tabeller
Välj namn_tablite_1.in_stolbets, namn_table_2.
Namestolbitsa
Från NAME_TABLE_1, NAME_TABLE_2;

Från köp, person;
Kartesisk produkt - Anslutning utan
Där design, som ett resultat av vilket varje linje
Ett bord kombineras med varje rad av en annan
Bord.
583

59.

Urval av data från flera tabeller med tillstånd
Select_name_tablitsa_1.in_stolbets, namn_tabectsy_2. Namestolbitsa
Från Name_Table_1, Name_Table_2
Där namn_ternet_table
Name_Named_Table.
Välj köp.product_name, person.first_name, person.last_name
Från köp, person
Var person.person_code \u003d köp.saleerson;
593

60.

Typer av förening
Det finns också andra sätt att ansluta tabeller på tangenterna:
<таблица А> [<тип соединения>] Ansluta sig.<таблица B> PÅ.<предикат>
<тип соединения> representerar en av argumenten: inre | (vänster | höger |
FULL)
Inre - innehåller linjer där det finns kolumner med den sammanfallande data
United tabeller. Används som standard.
Vänster - innehåller alla linjer i tabell A (vänster bord) och alla sammanfaller
Värden från tabell B. Kolumnerna med inkluderade linjer är fyllda med nollvärden.
Höger - innehåller alla rader av tabell B (högerbord) och alla sammanfaller
Tabellvärden A. Omvänd alternativ för den vänstra unionen.
Full - innehåller alla rader av båda tabellerna. Kolumner matchande sträng
Fylld med verkliga värden, och de inkonsekventa raderna är nollvärden.
Yttre (externt) - klargörande ord, vilket innebär att de inkonsekventa linjerna från
Värdbordet ingår i sammanfallningen.
603

61.

Alternativ för anslutning av tabeller
Adress
Telefon
Inre koppling.
Välj * Från Adress Inner Ansluta telefon på Adress.Clientid \u003d Telefon. Klientid
613

62.

Alternativ för anslutning av tabeller
Adress
Telefon
Välj * Från adress, telefon där adress.clientid \u003d phone.clientid
623

63.

Alternativ för anslutning av tabeller
Adress
Telefon
Vänster med.
Välj * Från Adress Vänster Ansluta telefon på adress.Clientid \u003d Telefon. Clientid
633

64.

Alternativ för anslutning av tabeller
Adress
Telefon
Rätt med.
Välj * Från adress höger Ansluta telefonen på adressen.Clientid \u003d Telefon. Clientid
643

65.

Alternativ för anslutning av tabeller
Adress
Telefon
Fullsluta.
Välj * Från adress Fullsluta telefonen på adressen.Clientid \u003d Telefon. Clientid
653

66.

Anslutningsoperatörer
UNION returnerar alla linjer från båda utvalda uttalandena; Repeterbar
Värdena raderas.
Union återvänder alla linjer från båda selektiva uttalandena. Repeterbar
Värden visas.
Intersect returnerar linjer som returneras och första och andra
Välj operatör.
Förutom returnerar de linjer som returneras av det första SELECT-uttalandet,
Exklusive de som returneras av den andra operatören.
Antalet och ordningen av kolumner som returneras av Välj från båda tabellerna ska
sammanfaller.
663

67.

Anslutningsoperatörer
Välj produktnamn.
Från köp.
Beställ efter produktnamn.
673
Välj produktnamn.
Från köp_Archive.
Beställ efter produktnamn.
Välj produktnamn.
Från köp.
Union
Välj produktnamn.
Från köp_Archive.
Beställ efter produktnamn.

68.

Anslutningsoperatörer
Välj produkt_nam E.
Fro m inköp.
Du n io n alla
Välj produkt_nam E.
Fro m köp_Archive
O rd er med 1
683
Välj produkt_nam E.
Fro m inköp.
Bortsett från
Välj produkt_nam E.
Fro m köp_Archive
O rd er med 1
Välj produkt_nam E.
Fro m inköp.
I Tersect.
Välj produkt_nam E.
Fro m köp_Archive
O rd er med 1

69.

Alias \u200b\u200bi fältet från
När du använder stora databaser med system som tagits
Användning av pseudonymer:
Välj purc.product_name, prod.laststockdate, pers.first_name,
pers.last_name.
Från köp som Purc,
Person som pers
Produktprodukter.
Var pers.person_code \u003d purc.salesperson och
prod.product_name \u003d purc.product_name;
693

70.

Praktisk uppgift nummer 3
1. Skriv en förfrågan som visar den kartesiska produkten av bordsprodukt
Och köp.
2. Skriv en förfrågan som visar namnet på de sålda varorna.
Produkt_Name, kvantitet kvantitet (köptabell) och
Quantity_on_hand (tabellprodukt).
3. Distribuera begäran och dra tillbaka namnet på produktprodukten_name
(Inköptabell), senaste leveransdatum LastStockdate (tabell
Produkt) och efternamn för den sista namnet Säljare (personbord).
4. Skriv en förfrågan som utmatningskolumner Product_Name, First_Name,
Last_Name Externa kombinera tabeller köp och person. Använd för tabeller
Korta pseudonymer.
703

71.

Praktisk uppgift nummer 3 (fortsättning)
5. Skriv en förfrågan som visar alla koder som inte upprepas i inköp
säljare
Säljare från köpet_Archive-bordet.
6. Skriv en förfrågan som bara visar koder som säljare från
Köptabeller, som också finns i köpet_Archive-tabellen.
7. Skriv en förfrågan som visar alla (inklusive upprepade) koder
Säljare säljare från köp och köp_Archive tabeller.
713

72.

Sql. Grundkurs
Del 6. Aggregatfunktioner. Gruppering
data.
www.aplana.ru.

73.

Matematiska operatörer
Matematisk operatör - Symboler som betecknar operationer (+, -, *, /)
Beräkningar med hjälp av data från tabeller.
Välj produkt_Name, produkt_price * 1.07 från produkt;
Välj produktnamn, produkt_price * Quantity_on_hand
Från produkt;
Välj produkt_Name, produkt_price * 1.07 * Quantity_on_hand produkt_price * Quantity_on_hand
Från produkt;
Välj produkt_Name, produkt_price * (Quantity_on_Hand + 10)
Från produkt;
733

74.

Matematiska operatörer
Funktioner av aggregering (funktioner över uppsättningar, statistiska eller grundläggande)
Utformad för att beräkna vissa värden för en viss uppsättning
Rader.
1. Summa - sammanfattar värdena och returnerar resultatet.
Välj summa (kvantitet)
Från köp;
2. AVG - Returnerar medelvärdet enligt det angivna
kolumn.
Välj AVG (PRODUCT_PRICE)
Från produkt;
743

75.

Matematiska operatörer
3. Min - Returnerar minimivärdet från den angivna kolumnen.
Välj Min (Produkt_Price)
Från produkt;
4. Max - returnerar det maximala värdet från den angivna kolumnen.
Välj max (produkt_price)
Från produkt;
753

76.

Matematiska operatörer
5. Räkna - räknas poster.
Välj räkning (*)
Från köp; - linjer med hänsyn till nollvärden
Välj Count (Product_Name)
Från köp, - värden i kolumnen, ignorerar null
763

77.

Grupp av.
Det här avsnittet är utformat för att kombinera resultaten av frågan i gruppen och beräkningen.
För var och en av dem statistiska värden. Ibland används term
"Grupperat bord".
Välj produkt_Name, summa (kvantitet)
Från köp.
Grupp efter produktnamn;
Välj uttalande kan innehålla flera gruppfunktioner.
Välj produkt_Name, summa (kvantitet) "totalt såld", räkna (kvantitet) transaktioner
Från köp.
Grupp efter produktnamn;
773

78.

Har
Ha - är en underavdelning som är utformad för att begränsa numret
Rader i ett grupperat bord och ingår i gruppen efter avsnitt.
Predikatet av detta avsnitt är baserat på samma semantiska regler som
I avsnittet, men direkt i predikatet kan bara delta
De kolumner som anges i gruppen efter avsnitt. Resten kan vara
Använd endast inuti aggregeringens funktioner. Den här delen
begränsar sammansättningen av grupper (undergrupper) av linjer till vilka
Begära resultat. I grupper (undergrupper) inkluderar endast de
Många möjliga linjer för de värden som villkoren utförs
Predikatavsnitt har. Inne i avsnittet kan du använda
Investerade förfrågningar med aggregeringsfunktioner, såväl som relaterade
Underskott.
783

79.

Har
De., Sammanfattning som beskrivs ovan, kan smalas
Utnämningstav till:
Med hjälp av att ha design du kan
Filtergrupper.
Att ha verk för grupper såväl som var för enskilda poster.
Välj produkt_Name, summa (kvantitet) "totalt såld",
Räkna (kvantitet) transaktioner
Från köp.
Grupp efter produktnamn.
Ha summa (kvantitet)< 5;
793

80.

Praktisk uppgift nummer 4
1. Skriv en förfrågan som visar vilken produktprisprodukt_price efter
öka med 15%.
2. Skriv en förfrågan som visar hur mycket den har produkter i produktbordet.
3. Installera begäran som visas för vilket antal varor (tabellprodukt) inte är
Pris.
4. Skriv en förfrågan som visar det lägsta och maximala priset på varor produkt_price.
5. Skriv en förfrågan som visar hur beloppet reverserades från försäljning av varor av varje
Namn.
6. Skriv en förfrågan som visar vilket belopp som har blivit omvänd från försäljningen av varje
Namn. Visa endast de poster för vilka försäljningsbeloppet är mer än 125.
803

81.

Sql. Grundkurs
Del 7. Subqueries
www.aplana.ru.

82.

Subqueries
Underfrågan är den vanliga valda begäran inbäddad i operatören.
VÄLJ,
Uppdatering.
eller
Radera.
Den används som en datakälla för avsnittet från avsnittet.
Där förälderoperatören.
823

83.

Subqueries
Det finns några begränsningar för användningen av underskott:
833
Underfrågan måste bara välja en kolumn (förutom att subquering med
Existerar predikat) och typen av data av dess resultat måste matcha typen
Datavärden som anges i predikatet.
I vissa fall kan du använda det distinkta sökordet för garanti
skaffa ett enda värde.
I den bifogade begäran kan Beslut av och unionen inte inkluderas.
Underfrågan kan lämnas och höger från sökförhållandet.
I underskott kan användas av aggregeringsfunktioner utan partition
Grupp av.

84.

Single-line subqueries
En enstaka subquery är en subquery som returnerar endast 1 värde.
Jämförelsesymboler används med resultatet av den bifogade förfrågan (\u003d<>, <, <=,
>, >=)
Välj * Från produkt
Där laststockdate \u003d (välj laststockdate
Från produkt där produkt_name \u003d "liten widget");
Ett exempel (med en aggregatfunktion i en enstaka subquery):
Välj * Från produkt där produkt_price\u003e
(Välj AVG (PRODUCT_PRICE) från produkten);
843

85.

Multi-line subqueries
Multi-line subquery är en subquery som bara returnerar\u003e \u003d 1
värde.
För sådana underskott är det omöjligt att jämföra med
med hjälp av jämlikhet / ojämlikhetsskyltar; Det är nödvändigt att använda funktionen
I.
Välj * Från produkt
Där produkt_name in.
(Välj distinkt produktnamn från köp);
Uppdatera produktuppsättning produkt_price \u003d produkt_price * 0,9
Där produktnamn inte i (välj distinkt produktnamn
Från köp);
853

86.

EXISTERAR.
Existerar använder en subquery som ett argument och
bedömer det som sant om det finns en underkrävande
Utmatning, och annars så falskt.
Den är exekverad subquery en gång och kan innehålla
flera kolumner, eftersom deras värden inte är markerade,
Och fixar helt enkelt resultatet av linjer.
Existerar predikatanteckningar:
Existerar - predikat returnerar sant eller falskt värde, och
Den kan appliceras separat eller med andra booleska
uttryck.
863

87.

EXISTERAR.
Välj * Från produkt
Var existerar.
(Välj * Från köp
Var produkt.product_name \u003d köp.product_name);
873

88.


Allt - jämförelse kommer att göras med alla poster som
Returnerar en subquery (eller bara med alla värden i uppsättningen). Sann.
kommer bara tillbaka om alla poster som återkommer
Subvärdig, kommer att uppfylla det tillstånd du angav.
Välj * Från produkt
Var produkt_price\u003e \u003d alla (välj produkt.product_price
Från köp, produkt


Förfrågan kommer att returnera alla produkter från produkttabellen, vars pris är mer eller
Det är lika med priset på varje produkt som säljs av en anställd med koden "GA".
883

89.

Gruppförhållanden (jämförelsesoperatörer).
Någon - jämförelse kommer att returnera sant om tillståndet kommer att uppfylla minst en
Inspelning från subquery (eller ring).
Välj * Från produkt där produkt_price\u003e någon (välj
Produkt.product_price.
Från köp, produkt
Där köp.product_name \u003d produkt.product_name
Och köp.SaleSvaron \u003d "GA");
Förfrågan kommer att returnera alla poster från produktbordet för vilket priset på produkten
Fler priser på vilken produkt som helst som säljs av en anställd med koden "GA".
Vissa - gör samma sak som någon. Helt utbytbar.
893

90.

Praktisk uppgift nummer 5
1. Skriv en förfrågan som returnerar alla anställda som tog arbetet på samma sätt
Dag som anställd John Smith.
2. Skriv en förfrågan som returnerar alla produkter vars pris är lägre än genomsnittspriset.
3. Skriv en förfrågan som returnerar alla varor som sålde mer än en
gånger.
4. Skriv ut varorna förstorade till 15%, som såldes mer än en gång.
5. Skriv en begäran som returnerar alla anställda,
som åtminstone en gång sålde någonting.
6. Skriv en förfrågan som returnerar alla produkter från produkttabellen, vars pris
Mindre priser på någon produkt som säljs av en anställd med koden "GA".
7. Skriv en förfrågan som returnerar alla produkter från produktbordet, priset är mindre
Priser minst en produkt som säljs av en anställd med koden "GA". Se till att
Operatörer några och eventuella utbytbara.
903

91.

Sql. Grundkurs
Del 8. Funktioner för att arbeta med rader, datum och
Tal
www.aplana.ru.

92.

Funktioner för att arbeta med siffror
Runda - rundar siffrorna med någon given noggrannhet.
Runda (Input RelationS, Number_Name_Textile_Textile)
Välj produktnamn, rund (produkt_price, 0)
Från produkt;
Välj Runda (1234.5678, 3) --msSQL
Välj Runda (1234.5678, 3) från Dual;
Rundfunktion
Runda (1234.5678.4)
Runda (1234.5678, 3)
Runda (1234.5678, 2)
Runda (1234.5678,1)
Runda (1234.5678.0)
Runda (1234.5678, -1)
Runda (1234.5678, -2)
Runda (1234.5678, -3)
923
Returvärde
1234.5678
1234.568
1234.57
1234.6
1235
1230
1200
1000
--ORAKEL

93.

Funktioner för att arbeta med siffror
TRUNC - Avkortar numret, sänker dess noggrannhet.
Trunska funktion
Returvärde
Trunc (1234.5678.4)
1234.5678
Trunc (1234.5678.3)
1234.567
Trunc (1234.5678, 2) 1234.56
Trunc (1234.5678,1)
1234.5
Trunc (1234.5678.0)
1234
Trunc (1234.5678, -1)
1230
Trunc (1234.5678, -2) 1200
Trunc (1234.5678, -3) 1000
933

94.

Hjälptabeller
Auxiliary (dummy) tabeller
Att utföra funktioner, utan att binda till specifika tabeller i ett antal DBMS
Du måste ange servicebordet, eftersom SQL innebär
Design Välj ... Från.
Oracle - Dual.
DB2 - SysDummy1.
Sybase - dummy.
MySQL - Dual.
MSSQL - NEJ. MSSQL känner igen serviceförfrågningar utan
Behöver ange ett dummybord.
943

95.

Funktioner för att arbeta med datum
GetDate - returnerar det aktuella datumet.
Välj GetDate ();
DATEADD - Returnerar det datum som erhållits som beloppet för det ursprungliga datumet
Datum och intervall som läggs till i de angivna komponentdatumsdatumerna
Datum.
Add_Months (värde, kvantitet, första datum)
Välj DateAdd (månad, 1, GetDate ());
Välj DATEADD (år, -2, getDate ());
953

96.

Funktioner för att arbeta med datum
Eomonth - returnerar den sista dagen i någon månad som anges
I det datum som överförts till det (MSSQL 2012+).
Eomonth (datum)
Välj EOMonth (GetDate ());
Välj eOMonth ("2015-03-15");
Välj First_Name, Last_Name, Hiredate, EOMonth (Hiredate) +1
Från person;
963

97.

Funktioner för att arbeta med datum
Datiff - Returnerar antalet enheter som skiljer två datum.
Dateradiff (värde, första datum, slutdatum)
Välj Datediff (Millisecond, GetDate (), SysDatetime ());
Välj Datediff (månad, "17-aug-2012", GetDate ());
973

98.

Funktioner för att arbeta med text
Övre - sätter alla strängtecken i toppregistret.
Lägre - sätter alla strängtecken i små bokstäver.
InitCap (Oracle) - Ändrar raden av sträng på den blandade (den första bokstaven i varje
Ord kommer att vara i det stora fallet, resten av ordet är i lägre).
Välj övre (produktnamn) från produkt;
Välj lägre (produktnamn) från produkt;
Välj initcap ("Denna text hade oförutsägbart fall") från dubbla;
983

99.

Funktioner för att arbeta med text
LEN - bestämmer längden på linjen.
Välj produkt_Name, LEN (Produkt_Name) Längd
Från produkt.
Där LEN (produktnamn)\u003e 15;
993

100.

Funktioner för att arbeta med text
Substring - skär värdet i parametern.
Substring (source_text, position för den ursprungliga symbolen,
Tecken)
Substring (linje 1, a, [, b])
Returnerar del "Linje 1" som börjar med ett tecken med nummer A,
och ha längden på tecknen. Om A \u003d 0 är det ekvivalent med det faktum att
A \u003d 1 (startlinje) om tecknen är positivt tillbaka
från vänster till höger. Om B är negativt, börjar från slutet av linjen och
Anses vara vänster rätt! Om B är frånvarande, sedan som standard
Alla tecken returneras till slutet av linjen
100
3

101.

Funktioner för att arbeta med text
Selecting (Item_ID, 1, 3) Plats,
Substring (Item_id, 5, 3) Item_number
Från old_item;
101
3

102.

Funktioner för att arbeta med text
Charindex-hittar läget för symbolen (eller symbolerna) som separerar elementen
Show.
Charindex (linje 1, linje 2, [, a])
Returnerar platsen för "Linje 1", i "LINE 2". "Linje 2" ses
Vänster, från och med läge A. Om en negativ, ses "String 2"
till höger. Standardvärdet för A är 1, vilket resulterar i positionen,
Den första posten, "linje 1", i "linje 2". Om vid en given A, "Linje 1" är det inte
Hittade, returnerar 0
102
3

103.

Funktioner för att arbeta med text
Charindex (skeeping_simvivo, text _fa_cing, position
_Anchal_simvol)
Välj Item_DESC, Charindex (",", ITEM_DESC, 1)
Från old_item;
103
3

104.

Förtrollande funktioner
Välj Item_DESC, substring (Item_DESC, 1, Charindex (",", ITEM_DESC, 1))
Kategori.
Från old_item;
104
3

105.

Förtrollande funktioner
105
3
Välj Item_DESC,
Substring (item_desc, 1, charindex (",", item_desc, 1) -1) Kategori,
Substring (item_desc, charindex (",", item_desc, 1) +2, 99) Item_size
Från old_item;

106.

Praktisk uppgift nummer 6
1. Jag använder funktioner för att arbeta med datum och siffror, räkna,
Hur många år är du.
2. Visa strängen "Jag vet textfunktioner" i övre och
Lägre register.
3. Lär dig längden på den här raden.
4. Arbeta med kolumnen köp.product_name, Output:
De tre första symbolerna
Alla återstående tecken som börjar från den fjärde
Fullsträng
106
3

107.

Användbara resurser
http://sqlfiddle.com/ - Ett verktyg som emulerar en tom databas:
Gör det möjligt att utföra en betydande del av DML, DDR och DR
Begäran. Stöder 5 huvuddialekter
http://www.sql-tutorial.ru/ - Interaktiv SQL Textbook på
Ryska
http://www.sql-ex.ru/ - Interaktiv portal för att lösa
Uppgifter på SQL.
https://dev.mysql.com/downloads/mysql/ - Gratis SQL
server för olika
https://www.mysql.com/products/workbench/ - Gratis
Verktyg för att arbeta med MySQL-servern
107
3

108.

Tack för uppmärksamheten!
Dina frågor?
Företaget "Aplana"
Sergey Vorobyov
Blyingenjörstester
+7-917-556-13-49
www.aplana.ru.

SQL (vanligtvis uttryckt som "sicwell") symboliserar ett "strukturerat sökspråk". Detta är ett språk som ger dig möjlighet att skapa och fungera i relationella databaser som är uppsättningar av relaterad information som är lagrad i tabellerna. Om du undrade var du skulle börja lära dig SQL, så då. Vårt företag erbjuder dig SQL-kurser, liksom SQL-lektioner för nybörjare, efter att ha studerat vilka skapandet av en SQL-databas du kan producera dig själv. Studien av SQL är en mycket lovande lektion. Det inkluderar SQL-föreläsningar, SQL-databasskurser, liksom SQL-förfrågningar. Det finns ett tillfälle att skicka SQL-språkkurser och genomföra SQL-lärande från början, samt gå igenom SQL-programmeringskurser med hjälp av SQL online-lärande, efter att ha fått en exklusiv praxis

Databasvärlden blir alltmer förenad, vilket ledde till behovet av att skapa ett standardspråk som kunde användas för att fungera i ett stort antal olika typer av datormedier. Standardspråket tillåter användare att ha passerat SQL-utbildning eller SQL Server-kurser som vet en uppsättning kommandon, använder dem för att skapa, hitta, ändra och överföra information, oavsett var de fungerar.

I vår mer och mer sammankopplade datorvärld har användaren som tillhandahålls på detta språk en stor fördel att använda och sammanfatta information från ett antal källor med ett stort antal sätt. Därför är SQL Server Training och SQL-förfrågningar att lära sig mycket viktiga.

Elegans och oberoende från datorteknikspecifikationer, liksom dess stödbranschledare inom relationell databassteknik, gjort SQL, och förmodligen under överskådlig framtid kommer det att lämna det huvudsakliga standardspråket. Av den anledningen borde alla som vill arbeta med databaser veta SQL, gå igenom SQL-baskursen eller studien av SQL från början och lära sig grunderna i SQL-kursen.

SQL-standarden bestäms av ANSI (American National Institute of Standards) och vid denna tidpunkt accepteras även av ISO (International Organization for Standardization). De flesta av de kommersiella databasprogrammen expanderar dock SQL utan att anmäla ANSI, vilket ger olika andra funktioner på detta språk, vilket de anser vara mycket användbara. Ibland bryter de mot språkens standard, även om bra idéer tenderar att utvecklas och snart bli standarden på "marknaden" i sig på grund av användbarheten av deras egenskaper. Och du kan utforska alla dessa funktioner genom att passera SQL-kurser på vårt kontor eller passera SQL Online Exploring.

Innan du kan använda SQL måste du förstå vilka relationella databaser som är och hur man utvecklar dem, samt går igenom SQL-kursen och utforskar SQL Server Lessons så att SQL-databasutvecklingen inte verkar svår.

Som vi betonade tidigare symboliserar SQL ett strukturerat sökspråk. Att studera SQL-förfrågningar och skapa fråga i databasen - förmodligen den mest använda SQL-aspekten. Faktum är att för kategorin SQL-användare är det osannolikt att någon använder detta språk för något annat. Av den anledningen kommer vi att starta vår SQL-språkstudie från att diskutera begäran och hur den utförs på detta språk.

Frågan är det kommando du ger ditt databasprogram, och som berättar att det ska ta det till viss information från tabellerna i minnet. Denna information skickas vanligtvis direkt till den datorskärm eller terminal du använder, men i de flesta fall kan du också skicka den till skrivaren, spara den i filen (som ett objekt i datorns minne) eller skicka in som inledande information för ett annat kommando eller process.

Förfrågningar behandlas vanligtvis som en del av DML-språket. Men eftersom begäran inte ändrar informationen i tabellerna, men bara visar den till användaren, kommer vi att överväga att förfrågningar som en oberoende kategori bland DML-kommandon som ger en åtgärd, och inte bara visa innehållet i databasen.

Alla förfrågningar till SQL består av ett enda lag. Strukturen i detta kommando är bedrägligt enkelt eftersom du måste expandera det för att utföra mycket komplexa utvärderingar och databehandling. Detta kommando kallas - Välj (val).

SQL-språk. Grundkurs.

I denna handledning, skrivet av Evgeny Morgunov, är grunderna i SQL-språket grundkursen. Dessutom anses språket i förhållande till ett specifikt databashanteringssystem (DBMS) - PostgreSQL. Genomförandet av SQL-språket i varje DBMS uppfyller standarden i en eller annan grad, men förutom standardiserade funktioner och möjligheter, erbjuder varje DBMS sin extra språkutvidgning. PostgreSQL ger mycket bra SQL-standardstöd och ger också intressanta och praktiskt användbara ytterligare funktioner. En av de främsta fördelarna med PostgreSQL är Extensibility. Det betyder till exempel att användaren (självklart, som är en specialist i databaser) kan utveckla sina egna datatyper. Dessa datatyper har alla egenskaper hos inbäddade datatyper och kan skrivas in utan att ett serverns stopp. Dessutom är PostgreSQL en fritt distribuerad öppen källkodsprodukt, som är tillgänglig på ett stort antal plattformar.

Handboken diskuterar inte bara alla huvudsakliga SQL-språk utan även andra frågor, till exempel index och transaktioner. Handboken är skriven på ett sådant sätt att det kan användas både under lärarens vägledning och självständigt. Det antas att eleverna har tillgång till den redan installerade DBMS, så installationsproceduren PostgreSQL anses inte i detalj, men referera bara till var du ska hitta installationsanvisningar. Denna ersättning är avsedd att få praktiska färdigheter att använda SQL-språk. Utbildningsmaterialet tillämpas på ett sådant sätt att många viktiga kunskapsläsare måste få som ett resultat av uppgifterna i slutet av varje kapitel.

I huvudtexten av kapitel kan dessa kunskaper inte representeras. Det antas att en betydande del av uppgifterna kommer att utföras av läsaren självständigt med hjälp av dokumentationen för PostgreSQL DBMS, men det är ofta ges till anvisningarna för deras genomförande.

Handboken är avsedd för studenter som studerar i områden 09.03.01 - "Informatik och datorteknik", 03/09/02 - "Informationssystem och teknik", 03/03/03 - "Tillämpad informatik", 09.03.04 - "Programvara Engineering "och 02.03. 03 -" Matematisk stöd och administrering av informationssystem ". Det kan vara användbart för ett brett spektrum av studenter och specialister som vill bekanta sig med grunderna i SQL-språket i PostgreSQL-databashanteringssystemet.

Utgivare - Postgres Professional

År av upplagan - 2017

Bokformat - PDF







2021. gtavrl.ru..