Basis SQL-instructies. Operator voor recordwijziging. Laten we even terugkeren naar DDL.

En boven de tabelgegevens.

De SQL-taal wordt aangeroepen ingebouwd, omdat Het bevat de functies van een volwaardige ontwikkeltaal en is gericht op datatoegang, waardoor het onderdeel is van applicatie-ontwikkeltools. Normen SQL-taal ondersteunt programmeertalen Pascal, Fortran, COBOL, C, enz.

Bestaat 2 methoden om ingebedde SQL te gebruiken:

  • statisch taalgebruik ( statische SQL) – de programmatekst bevat oproepen naar SQL-functies, die na compilatie in de uitvoerbare module worden opgenomen.
  • dynamisch taalgebruik ( dynamische SQL ) – dynamische constructie van SQL-functieaanroepen en hun interpretatie. Bijvoorbeeld, hebt u tijdens de uitvoering van het programma toegang tot gegevens uit een externe database.

De SQL-taal is (net als andere talen voor het werken met databases) ontworpen voor het voorbereiden en uitvoeren van queries. Als resultaat van het uitvoeren van een gegevensquery uit een of meer tabellen, wordt een reeks records verkregen, die wordt aangeroepen presentatie.

Definitie 1

Prestatie is een tabel die wordt gevormd als resultaat van het uitvoeren van een query.

Basisoperatoren voor SQL-querytaal

SQL-taaloperatoren worden conventioneel onderverdeeld in 2 subtalen:

  1. Gegevensdefinitietaal DDL;
  2. Taal voor datamanipulatie DML.

In de tabel zijn ze gemarkeerd met * specifieke exploitanten taal.

Laten we eens kijken naar de belangrijkste SQL-instructies.

    Verklaring voor het maken van tabellen:

    De naam van de tabel die wordt gemaakt en de naam van ten minste één kolom (veld) zijn verplichte operanden. Voor de kolomnaam moet u het type gegevens opgeven dat erin wordt opgeslagen.

    Voor individuele velden kunt u opgeven aanvullende regels controleer de waarden die erin worden ingevoerd. Bijvoorbeeld, NIET NUL geeft aan dat het veld niet leeg mag zijn en gevuld moet worden met een waarde.

    Voorbeeld 1

    Om een ​​tabel te maken boeken boekencatalogus, die de velden bevat:

    type– soort boek,

    naam- titel van het boek,

    prijs– prijs van het boek

    de verklaring zou er als volgt uit kunnen zien:

    Operator voor het wijzigen van de tafelstructuur:

    Wanneer u de tabelstructuur wijzigt, kunt u ( TOEVOEGEN), wijziging ( BEWERKEN) of verwijder ( DRUPPEL) een of meer tabelkolommen. De regels voor het vastleggen van deze operator zijn dezelfde als voor de operator MAAK TABEL. Als u een kolom wilt verwijderen, hoeft u deze niet op te geven.

    Voorbeeld 2

    Om toe te voegen aan een tabel boeken velden nummer, waarin het aantal boeken wordt opgeslagen, kunt u de operator schrijven:

    Operator voor het neerzetten van tabellen:

    Voorbeeld 3

    Als u bijvoorbeeld een bestaande tabel met de naam wilt verwijderen boeken het is voldoende om de operator te gebruiken:

    Operator voor het maken van indexen:

    De operator maakt een index op een of meer kolommen van een bepaalde tabel, waardoor query- en opzoekbewerkingen kunnen worden versneld. Voor één tabel kunnen meerdere indexen worden gemaakt.

    Optionele optie UNIEK is ervoor verantwoordelijk dat de waarden in alle kolommen die in de verklaring zijn opgegeven, uniek zijn.

    A.S.C. stelt de waarden in de kolommen in die automatisch in oplopende volgorde moeten worden gesorteerd (standaard), en OMSCHRIJVING– in aflopende volgorde.

    Operator voor indexdaling:

    Operator voor het maken van weergaven:

    Wanneer u een weergave maakt, hoeft u geen kolomnamen op te geven. Vervolgens worden de kolomnamen uit de query, die door de corresponderende operator wordt beschreven, gebruikt SELECTEER.

    Verwijderingsoperator bekijken:

    Operator voor recordselectie:

    Exploitant SELECTEER voert steekproeven en berekeningen uit op gegevens uit een of meer tabellen. Het resultaat van het uitvoeren van de operator is een responstabel die bevat ( ALLE) of bevat geen ( VERSCHILLEND) regels die worden herhaald.

    Operand VAN bevat een lijst met tabellen waaruit records worden gehaald voor gegevensselectie.

    Operator voor recordwijziging:

    Nieuwe veldwaarden in records mogen geen waarden bevatten ( NUL) of berekend volgens een rekenkundige uitdrukking.

    Operator voor het invoegen van nieuwe records:

    In het eerste operatorrecord INVOEGEN nieuwe vermeldingen worden geïntroduceerd met gegeven waarden in kolommen.

    In het tweede operatorrecord INVOEGEN er worden nieuwe rijen ingevoerd, geselecteerd uit een andere tabel via een clausule SELECTEER.

    Operator voor het verwijderen van records:

    Als gevolg van het uitvoeren van de operator worden rijen die voldoen aan de voorwaarde die is opgegeven door de optionele operand uit de opgegeven tabel verwijderd WAAR. Als de operand WAAR niet is opgegeven, worden alle tabelgegevens verwijderd.

De basis van de SQL-taal bestaat uit operators, voorwaardelijk verdeeld in verschillende groepen op basis van de functies die ze uitvoeren.

De volgende groepen instructies kunnen worden onderscheiden (niet alle SQL-instructies worden vermeld):

DDL-instructies (Data Definition Language) - instructies voor het definiëren van databaseobjecten

· CREATE SCHEMA - maak een databaseschema

· DROP SHEMA - verwijder een databaseschema

· MAAK TAFEL - maak een tabel

ALTER TABLE - verander de tabel

· DROP TABLE - verwijder een tabel

· DOMEIN MAKEN - maak een domein aan

WIJZIG DOMEIN - wijzig domein

· DROP DOMAIN - verwijder een domein

· CREËER COLLATIE - maak een reeks

· DROP COLLATION - verwijder een reeks

· CREËER WEERGAVE - maak een weergave

· DROP VIEW - verwijder een weergave

DML-instructies(Data Manipulation Language) - operators voor gegevensmanipulatie

· SELECTEER - selecteer rijen uit tabellen

· INSERT - rijen aan de tabel toevoegen

· UPDATE - wijzig rijen in de tabel

· DELETE - verwijder rijen in de tabel

· COMMIT - doorgevoerde wijzigingen

· ROLLBACK - gemaakte wijzigingen ongedaan maken

Operators voor gegevensbescherming en -beheer

· CREËER BEWEGING - creëer een beperking

· DROP ASSERTION - verwijder een beperking

· GRANT - geef rechten aan een gebruiker of applicatie om objecten te manipuleren

REVOKE - trek gebruikers- of applicatierechten in

Daarnaast zijn er groepen operators voor het instellen van sessieparameters, het verkrijgen van informatie over de database, statische SQL-operators en dynamische SQL-operators.

Het belangrijkste voor de gebruiker zijn gegevensmanipulatieverklaringen (DML).

Voorbeelden van het gebruik van operatoren voor gegevensmanipulatie

INSERT - rijen in een tabel invoegen

Voorbeeld 1. Eén rij in een tabel invoegen:

WAARDEN(4, "Ivanov");

UPDATE - rijen in een tabel bijwerken

Voorbeeld 3. Meerdere rijen in een tabel bijwerken:

SET PNAME = "Poesjnikov"

WAAR P.PNUM = 1;

DELETE - rijen in een tabel verwijderen

Voorbeeld 4. Meerdere rijen in een tabel verwijderen:

WAAR P.PNUM = 1;

Voorbeelden van het gebruik van de SELECT-instructie

SELECT-instructie is eigenlijk het belangrijkste voor de gebruiker en het meest complexe exploitant SQL. Het is bedoeld voor het ophalen van gegevens uit tabellen, d.w.z. het implementeert in feite een van de hoofddoelen van de database: het verstrekken van informatie aan de gebruiker.

De SELECT-instructie wordt altijd uitgevoerd op sommige tabellen die deel uitmaken van de database.

Opmerking. In feite kunnen databases niet alleen permanent opgeslagen tabellen bevatten, maar ook tijdelijke tabellen en zogenaamde views. Weergaven zijn eenvoudigweg SELECT-expressies die in de database zijn opgeslagen. Vanuit het oogpunt van de gebruiker is een weergave een tabel die niet permanent in de database is opgeslagen, maar "verschijnt" wanneer deze wordt geopend. Vanuit het oogpunt van de SELECT-instructie zien zowel persistente tabellen als tijdelijke tabellen en views er precies hetzelfde uit. Wanneer het systeem daadwerkelijk een SELECT-instructie uitvoert, wordt er uiteraard rekening gehouden met de verschillen tussen opgeslagen tabellen en views, maar deze verschillen verborgen van de gebruiker.


Het resultaat van een SELECT-instructie is altijd een tabel. De resultaten van de SELECT-instructie zijn dus vergelijkbaar met de operatoren van relationele algebra. Elke relationele algebra-operator kan worden uitgedrukt op een passende manier geformuleerd door de SELECT-instructie. De complexiteit van de SELECT-instructie wordt bepaald door het feit dat deze alle mogelijkheden van relationele algebra bevat, evenals aanvullende mogelijkheden, die in relationele algebra Nee.

SELECT Uitvoeringsopdracht verklaring

Om te begrijpen hoe het resultaat van het uitvoeren van een SELECT-instructie wordt verkregen, kunt u het conceptuele diagram van de uitvoering ervan bekijken. Dit schema is puur conceptueel, omdat het is gegarandeerd dat het resultaat hetzelfde zal zijn alsof het stap voor stap volgens dit schema zou worden uitgevoerd. In feite wordt het daadwerkelijke resultaat verkregen door meer geavanceerde algoritmen die een bepaald DBMS ‘bezit’.

Fase 1: Een enkele SELECT-instructie uitvoeren

Als de operator bevat trefwoorden UNION, EXCEPT en INTERSECT, dan wordt de zoekopdracht verdeeld in verschillende onafhankelijke zoekopdrachten, die elk afzonderlijk worden uitgevoerd:

Stap 1 (VANAF). Het directe cartesiaanse product van alle tabellen die zijn opgegeven in de vereiste FROM-clausule wordt berekend. Als resultaat van stap 1 verkrijgen we tabel A.

Stap 2 (WAAR). Als er een WHERE-clausule in de SELECT-instructie voorkomt, wordt tabel A, verkregen in stap 1, gescand. De voorwaardelijke expressie die in de WHERE-clausule wordt gegeven, wordt voor elke rij uit tabel A geëvalueerd. Alleen de rijen waarvoor de voorwaardelijke expressie TRUE retourneert, worden in het resultaat opgenomen. Als de WHERE-clausule wordt weggelaten, ga dan direct naar stap 3. Als de voorwaardelijke expressie geneste subquery's omvat, worden deze geëvalueerd in overeenstemming met dit conceptuele schema. Als resultaat van stap 2 verkrijgen we tabel B.

Stap 3 (GROEPEREN OP). Als er een GROUP BY-clausule aanwezig is in de SELECT-instructie, worden de rijen van tabel B die in de tweede stap zijn verkregen, gegroepeerd volgens de groeperingslijst in de GROUP BY-clausule. Als de GROUP BY-clausule wordt weggelaten, ga dan direct naar stap 4. Als resultaat van stap 3 krijgen we tabel C.

Stap 4 (HEBBEN). Als een SELECT-instructie een HAVING-clausule bevat, worden groepen uitgesloten die niet voldoen aan de voorwaardelijke expressie die in de HAVING-clausule is opgegeven. Als de HAVING-sectie wordt weggelaten, ga dan direct naar stap 5. Als resultaat van stap 4 krijgen we tabel D.

Stap 5 (SELECTIE). Elke groep verkregen in stap 4 genereert als volgt één resultaatrij. Alle scalaire expressies die zijn opgegeven in de SELECT-clausule worden geëvalueerd. Volgens de regels voor het gebruik van de GROUP BY-clausule moeten dergelijke scalaire expressies hetzelfde zijn voor alle rijen binnen elke groep. Voor elke groep worden waarden berekend geaggregeerde functies, gegeven in de SELECT-sectie. Als er geen GROUP BY-clausule is, maar wel aggregatiefuncties in de SELECT-clausule, dan is er slechts één groep. Als er noch een GROUP BY-clausule, noch aggregatiefuncties aanwezig zijn, wordt aangenomen dat er evenveel groepen zijn als er tot nu toe rijen geselecteerd zijn. Als resultaat van stap 5 verkrijgen we tabel E, die evenveel kolommen bevat als er elementen zijn vermeld in de sectie SELECT en evenveel rijen als er groepen zijn geselecteerd.

Fase 2. Uitvoeren van UNION, EXCEPT, INTERSECT-bewerkingen

Als de SELECT-instructie de trefwoorden UNION, EXCEPT en INTERSECT bevat, worden de tabellen die voortvloeien uit de eerste fase samengevoegd, afgetrokken of doorsneden.

Fase 3. Het resultaat bestellen

Als de SELECT-instructie een ORDER BY-clausule bevat, worden de rijen van de tabel die in de voorgaande stappen zijn verkregen, geordend volgens de volgordelijst die is opgegeven in de ORDER BY-clausule.

Basis SQL-instructies. Syntaxis en voorbeelden van het gebruik van de SELECT-instructie.

De basis van de SQL-taal bestaat uit operators, voorwaardelijk verdeeld in verschillende groepen op basis van de functies die ze uitvoeren.

De volgende groepen operators kunnen worden onderscheiden (niet alle SQL-operators worden vermeld):

DDL-instructies (Data Definition Language) - instructies voor het definiëren van databaseobjecten

· CREATE SCHEMA - maak een databaseschema

· DROP SHEMA - verwijder een databaseschema

· MAAK TAFEL - maak een tabel

ALTER TABLE - verander de tabel

· DROP TABLE - verwijder een tabel

· DOMEIN MAKEN - maak een domein aan

WIJZIG DOMEIN - wijzig domein

· DROP DOMAIN - verwijder een domein

· CREËER COLLATIE - maak een reeks

· DROP COLLATION - verwijder een reeks

· CREËER WEERGAVE - maak een weergave

· DROP VIEW - verwijder een weergave

DML-operatoren (Data Manipulation Language) - operators voor gegevensmanipulatie

· SELECTEER - selecteer rijen uit tabellen

· INSERT - rijen aan de tabel toevoegen

· UPDATE - wijzig rijen in de tabel

· DELETE - verwijder rijen in de tabel

· COMMIT - doorgevoerde wijzigingen

· ROLLBACK - gemaakte wijzigingen ongedaan maken

Operators voor gegevensbescherming en -beheer

· CREËER BEWEGING - creëer een beperking

· DROP ASSERTION - verwijder een beperking

· GRANT - geef rechten aan een gebruiker of applicatie om objecten te manipuleren

REVOKE - trek gebruikers- of applicatierechten in

Tegelijkertijd zijn er groepen operators voor het instellen van sessieparameters, het verkrijgen van informatie over de database, statische SQL-operators en dynamische SQL-operators.

Het belangrijkste voor de gebruiker zijn gegevensmanipulatieverklaringen (DML).

Voorbeelden van het gebruik van operatoren voor gegevensmanipulatie

INSERT - rijen in een tabel invoegen

Voorbeeld 1. Eén rij in een tabel invoegen:

WAARDEN(4, "Ivanov");

UPDATE - rijen in een tabel bijwerken

Voorbeeld 3. Meerdere rijen in een tabel bijwerken:

SET PNAME = "Poesjnikov"

WAAR P.PNUM = 1;

DELETE - rijen in een tabel verwijderen

Voorbeeld 4. Meerdere rijen in een tabel verwijderen:

WAAR P.PNUM = 1;

Voorbeelden van het gebruik van de SELECT-instructie

De SELECT-instructie is feitelijk de meest gebruikerskritische en meest complexe SQL-instructie. Het is ontworpen om gegevens uit tabellen op te halen, ᴛ.ᴇ. het implementeert in feite een van de basisdoelen van de database: het verstrekken van informatie aan de gebruiker.

De SELECT-instructie wordt altijd uitgevoerd op sommige tabellen die deel uitmaken van de database.

Opmerking. In databases zijn er namelijk niet alleen permanent opgeslagen tabellen, maar ook tijdelijke tabellen en zogenaamde views. Weergaven zijn eenvoudigweg SELECT-expressies die in de database zijn opgeslagen. Vanuit het oogpunt van de gebruiker is een weergave een tabel die niet permanent in de database is opgeslagen, maar "verschijnt" wanneer deze wordt geopend. Vanuit het oogpunt van de SELECT-instructie zien zowel persistente tabellen als tijdelijke tabellen en views er precies hetzelfde uit. Wanneer het systeem daadwerkelijk een SELECT-instructie uitvoert, wordt er uiteraard rekening gehouden met de verschillen tussen opgeslagen tabellen en views, maar deze verschillen verborgen van de gebruiker.

Het resultaat van een SELECT-instructie is altijd een tabel. Op basis van de resultaten van zijn acties is de SELECT-instructie echter vergelijkbaar met de operators van relationele algebra. Elke relationele algebra-operator moet worden uitgedrukt door een passend geformuleerde SELECT-instructie. De complexiteit van de SELECT-instructie wordt bepaald door het feit dat deze alle mogelijkheden van relationele algebra bevat, evenals aanvullende mogelijkheden die niet aanwezig zijn in relationele algebra.

SELECT Uitvoeringsopdracht verklaring

Om te begrijpen hoe het resultaat van het uitvoeren van een SELECT-instructie wordt verkregen, kunt u het conceptuele diagram van de uitvoering ervan bekijken. Dit schema is puur conceptueel, omdat het is gegarandeerd dat het resultaat hetzelfde zal zijn alsof het stap voor stap volgens dit schema zou worden uitgevoerd. In feite wordt het daadwerkelijke resultaat verkregen door meer geavanceerde algoritmen die een bepaald DBMS ‘bezit’.

Fase 1: Een enkele SELECT-instructie uitvoeren

Als de operator de trefwoorden UNION, EXCEPT en INTERSECT bevat, wordt de zoekopdracht opgedeeld in verschillende onafhankelijke zoekopdrachten, die elk afzonderlijk worden uitgevoerd:

Stap 1 (VANAF). Het directe cartesiaanse product van alle tabellen die zijn opgegeven in de verplichte FROM-sectie wordt berekend. Als resultaat van stap 1 verkrijgen we tabel A.

Stap 2 (WAAR). Als de SELECT-instructie een WHERE-clausule bevat, wordt tabel A, verkregen in stap 1, gescand. In dit geval wordt voor elke rij uit tabel A de voorwaardelijke expressie berekend die in de WHERE-clausule is opgegeven. Alleen de rijen waarvoor de voorwaardelijke expressie TRUE retourneert, worden in het resultaat opgenomen. Als de WHERE-sectie wordt weggelaten, ga dan onmiddellijk verder met stap 3. Als er geneste subquery's bij de voorwaardelijke expressie betrokken zijn, worden deze berekend in overeenstemming met dit conceptuele schema. Als resultaat van stap 2 verkrijgen we tabel B.

Stap 3 (GROEPEREN OP). Als de SELECT-instructie een GROUP BY-sectie bevat, worden de rijen van tabel B die in de tweede stap zijn verkregen, gegroepeerd in overeenstemming met de groeperingslijst in de GROUP BY-sectie. Als de sectie GROUP BY wordt weggelaten, ga dan onmiddellijk verder met stap 4. Als resultaat van stap 3 verkrijgen we tabel C.

Stap 4 (HEBBEN). Als de SELECT-instructie een HAVING-sectie bevat, worden groepen uitgesloten die niet voldoen aan de voorwaardelijke expressie die in de HAVING-sectie is gegeven. Als de HAVING-sectie wordt weggelaten, ga dan onmiddellijk verder met stap 5. Als resultaat van stap 4 verkrijgen we tabel D.

Stap 5 (SELECTIE). Elke groep verkregen in stap 4 genereert als volgt één resultaatrij. Alle scalaire expressies die zijn opgegeven in de sectie SELECT worden geëvalueerd. Volgens de regels voor het gebruik van de GROUP BY-clausule moeten dergelijke scalaire expressies hetzelfde zijn voor alle rijen binnen elke groep. Voor elke groep worden de waarden van de aggregatiefuncties in de sectie SELECT berekend. Als er geen GROUP BY-sectie is, maar er wel aggregatiefuncties zijn in de SELECT-sectie, wordt ervan uitgegaan dat er slechts één groep is. Als er geen GROUP BY-sectie of aggregatiefuncties zijn, wordt ervan uitgegaan dat er op dit moment net zoveel groepen zijn als er rijen zijn geselecteerd. Als resultaat van stap 5 verkrijgen we tabel E, die evenveel kolommen bevat als er elementen zijn vermeld in de sectie SELECT en evenveel rijen als er groepen zijn geselecteerd.

Fase 2. Uitvoeren van UNION, EXCEPT, INTERSECT-bewerkingen

Als de SELECT-instructie de trefwoorden UNION, EXCEPT en INTERSECT bevatte, worden de tabellen verkregen als resultaat van de eerste fase samengevoegd, afgetrokken of doorsneden.

Fase 3. Het resultaat bestellen

Als de SELECT-instructie een ORDER BY-sectie bevat, worden de rijen van de tabel die in de voorgaande stappen zijn verkregen, geordend in overeenstemming met de bestellijst in de ORDER BY-sectie.

Basis SQL-instructies. Syntaxis en voorbeelden van het gebruik van de SELECT-instructie. - concept en typen. Classificatie en kenmerken van de categorie "Basis SQL-operatoren. Syntaxis en voorbeelden van het gebruik van de SELECT-operator." 2017, 2018.

De gestructureerde zoektaal SQL is gebaseerd op relationele calculus met variabele tupels. De SQL-taal is ontworpen om bewerkingen uit te voeren op tabellen, het maken, verwijderen, wijzigen van de structuur, en op tabelgegevens, selecteren, wijzigen, toevoegen en verwijderen, evenals enkele gerelateerde bewerkingen. SQL is een niet-procedurele taal en bevat geen controle-instructies voor het organiseren van routines, invoer, uitvoer, enz.


Deel uw werk op sociale netwerken

Als dit werk je niet bevalt, staat onderaan de pagina een lijst met soortgelijke werken. Je kunt ook de zoekknop gebruiken


Gestructureerde querytaal SQL: geschiedenis, standaarden,

Basistaaloperatoren.

De gestructureerde zoektaal SQL is gebaseerd op relationele calculus met variabele tupels. De taal kent verschillende standaarden. De SQL-taal is ontworpen om bewerkingen uit te voeren op tabellen (maken, verwijderen, wijzigen van de structuur) en op tabelgegevens (selecteren, wijzigen, toevoegen en verwijderen), evenals enkele gerelateerde bewerkingen. SQL is een niet-procedurele taal en bevat geen besturingsinstructies, subroutineorganisatie, IO enz. In dit opzicht wordt SQL niet autonoom gebruikt; het wordt meestal ondergedompeld in de omgeving van de ingebouwde DBMS-programmeertaal (bijvoorbeeld FoxPro DBMS Visual FoxPro, ObjectPAL DBMS Paradox, Visual Basic for Applications DBMS Access).

In moderne DBMS'en met een interactieve interface kunt u query's maken met behulp van andere tools, zoals QBE. Echter toepassing van SQL Hiermee kunt u vaak de efficiëntie van de gegevensverwerking in de database vergroten. Wanneer u bijvoorbeeld een query voorbereidt in de Access-omgeving, kunt u van het Query Builder-venster (waarin u een voorbeeldquery formuleert in de QBE-taal) naar een venster met de equivalente SQL-instructie gaan. In sommige gevallen is het voorbereiden van een nieuwe query door een bestaande query te bewerken eenvoudiger door de SQL-instructie te wijzigen. De samenstelling van SQL-instructies kan in verschillende DBMS'en enigszins verschillen. De SQL-taal heeft niet de functies van een volwaardige ontwikkeltaal, maar is gericht op gegevenstoegang en is daarom opgenomen in programma-ontwikkeltools. In dit geval wordt het embedded SQL genoemd. De SQL-taalstandaard wordt ondersteund door moderne implementaties van de volgende programmeertalen: PL/1, Ada, C, COBOL, Fortran, MUMPS en Pascal.

In gespecialiseerde client-server applicatie-ontwikkelsystemen wordt meestal ook de programmeeromgeving aangevuld communicatiemiddelen(het tot stand brengen en verbreken van verbindingen met databaseservers, het opsporen en verwerken van fouten die zich voordoen op het netwerk, enz.), ontwikkelingstools gebruikersinterfaces, ontwerp- en foutopsporingstools. Er zijn twee hoofdmethoden voor het gebruik van ingebedde SQL: statisch en dynamisch. Bij statisch gebruik van een taal (statische SQL) bevat de programmatekst aanroepen naar SQL-taalfuncties, die na compilatie strikt worden opgenomen in de uitvoerbare module.

Veranderingen in opgeroepen functies kunnen zich op het niveau van individuele oproepparameters bevinden met behulp van programmeertaalvariabelen. Bij dynamisch gebruik van de taal (dynamische SQL) wordt ervan uitgegaan dat oproepen naar SQL-functies dynamisch worden opgebouwd en dat de interpretatie van deze oproepen, bijvoorbeeld toegang tot gegevens uit een externe database, tijdens de uitvoering van het programma plaatsvindt. Dynamische methode meestal gebruikt in gevallen waarin de applicatie het type SQL-aanroep niet van tevoren kent en wordt gebouwd in dialoog met de gebruiker. Het belangrijkste doel van de SQL-taal (evenals andere talen voor het werken met databases) is het voorbereiden en uitvoeren van query's. Het ophalen van gegevens uit een of meer tabellen kan resulteren in een reeks records die een weergave wordt genoemd. Een weergave is in wezen een tabel die wordt gegenereerd als resultaat van een query. We kunnen zeggen dat het een soort opgeslagen zoekopdracht is. U kunt meerdere weergaven maken met dezelfde tabellen. De weergave zelf wordt beschreven door de weergave-ID op te geven en het verzoek dat moet worden gedaan om deze te verkrijgen.

Voor het gemak van het werken met views werd het concept van een cursor geïntroduceerd in de SQL-taal. Een cursor is een soort aanwijzer die wordt gebruikt om door sets records te bewegen terwijl deze worden verwerkt. De beschrijving en het gebruik van een cursor in SQL is als volgt. In het beschrijvende deel van het programma wordt de koppeling uitgevoerd variabel type cursor (CURSOR) met een SQL-instructie (meestal een SELECT-instructie). In het uitvoerende deel van het programma wordt de cursor geopend (OPEN<имя курсора>), waarbij de cursor door records wordt verplaatst (FETCH<имя курсора>...), gevolgd door de juiste verwerking en uiteindelijk het sluiten van de cursor (CLOSE<имя курсора>).

Basistaaloperatoren

Laten we een minimale subset van de SQL-taal beschrijven, gebaseerd op de implementatie ervan in de standaard ODBC-interface (Open Database Connectivity-compatibiliteit open bases gegevens) van Microsoft. SQL-taaloperatoren kunnen worden onderverdeeld in twee subtalen: Data Definition Language (DDL) en Data Manipulation Language (DML). De belangrijkste SQL-taaloperatoren worden in de tabel weergegeven.

Laten we eens kijken naar het formaat en de basismogelijkheden van de belangrijkste operators, met uitzondering van specifieke operators die in de tabel zijn gemarkeerd met het symbool “*”. We zullen onbelangrijke operanden en syntaxiselementen weglaten (bijvoorbeeld de regel die in veel programmeersystemen wordt gebruikt om “;” aan het einde van de operator te plaatsen).

1. Exploitant een tafel makenheeft het formaat:

MAAK TABEL<имя таблицы>

(<имя столбца> <тип данных>

[,<имя столбца> <тип данных> ]...)

De vereiste operanden van de operator zijn de naam van de tabel die wordt gemaakt en de naam van ten minste één kolom (veld) die het type gegevens aangeeft dat in deze kolom is opgeslagen.

Bij het maken van een tabel kunnen voor afzonderlijke velden enkele aanvullende regels worden opgegeven voor het controleren van de waarden die erin zijn ingevoerd. De NOT NULL-constructie dient precies dit doel en betekent voor een tabelkolom dat er in die kolom een ​​waarde moet worden gedefinieerd.

SQL-instructies

Weergave

Naam

Doel

MAAK TABEL

DRUPTAFEL

WIJZIG TABEL

INDEX MAKEN

DALINGSINDEX

CREËER UITZICHT

DROP-VIEW

GROOT*

HERROEPEN*

een tafel maken

een tabel verwijderen

veranderende tabelstructuur

indexcreatie

een index verwijderen

het creëren van een weergave

een weergave verwijderen

het toekennen van privileges

verwijdering van privileges

SELECTEER

BIJWERKEN

INVOEGEN

VERWIJDEREN

voorbeeldregistraties

het wijzigen van records

nieuwe records invoegen

vermeldingen verwijderen

Over het algemeen kunnen verschillende DBMS'en verschillende soorten gegevens gebruiken. De ODBC-interface ondersteunt zijn eigen standaardgegevenstypen, bijvoorbeeld karaktertypen (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR), enz. Bij het werken met een database van een bepaald DBMS via de ODBC-interface wordt automatische conversie uitgevoerd standaard typen gegevens ondersteund door de interface om gegevenstypen te brongen en vice versa. Indien nodig kan de gegevensuitwisseling tussen het programma en de gegevensbron plaatsvinden zonder conversie in het interne gegevensformaat van de bron.

Voorbeeld 1 . Een tabel maken.

Stel dat u een goederentabel wilt maken die goederen beschrijft en die de volgende velden bevat: type producttype, comp_id-identificator van het productiebedrijf, naam van het product en prijs van het product. De tabeldefinitie-instructie zou er als volgt uit kunnen zien:

CREATE TABLE goederen (type SQL_CHAR(8) NOT NULL,

comp_id SQL_CHAR(10) NIET NULL, naam SQL_VARCHAR(20),

prijs SQL_DECIMAL(8,2)).

2. Exploitant tabelstructuur verandertheeft het formaat:

WIJZIG TABEL<имя таблицы>

((TOEVOEGEN, WIJZIGEN, VERLATEN)<имя столбца> [<тип данных>]

[,(TOEVOEGEN, WIJZIGEN, VERLATEN)<имя столбца> [<тип данных>]]...)

Het wijzigen van de structuur van een tabel kan bestaan ​​uit het toevoegen (ADD), wijzigen (MODIFY) of verwijderen (DROP) van een of meer tabelkolommen. Opnameregels ALTER-verklaring TABLE zijn hetzelfde als de CREATE TABLE-instructies. Wanneer u een kolom verwijdert, geef dit dan aan<тип данных>geen behoefte.

3. Exploitant een tabel verwijderenheeft het formaat:

DRUPTAFEL<имя таблицы>

Met de operator kunt u een bestaande tabel verwijderen. Als u bijvoorbeeld een tabel met de naam items wilt verwijderen, volstaat het om een ​​instructie te schrijven als: DROP TABLE items.

4. Exploitant het maken van een indexheeft het formaat:

INDEX MAKEN< имя индекса >

OP< имя таблицы >

(<имя столбца>[ASC | OMSCHRIJVING ]

[,<имя столбца>[ASC | OMSCHRIJVING]...)

Met de operator kunt u een index maken op een of meer kolommen van een bepaalde tabel om de uitvoering van zoek- en zoekbewerkingen in de tabel te versnellen. U kunt meerdere indexen op één tabel maken. Door de optionele UNIQUE-optie op te geven, kunt u ervoor zorgen dat de waarden in alle kolommen die in de instructie worden opgegeven, uniek zijn. In wezen betekent het maken van een index met behulp van het UNIQUE-attribuut het definiëren van een sleutel in een eerder gemaakte tabel. Bij het aanmaken van een index kunt u de volgorde opgeven automatisch sorteren waarden in kolommen in oplopende volgorde ASC (standaard), of aflopende volgorde DESC. U kunt voor verschillende kolommen een verschillende sorteervolgorde instellen.

5. Exploitant een index verwijderenheeft het formaat:

DALINGSINDEX<имя индекса>

Met deze operator kunt u een eerder gemaakte index met de bijbehorende naam verwijderen. Om bijvoorbeeld de index main_indx in de emp-tabel te vernietigen, volstaat het om de instructie DROP INDEX main_indx te schrijven.

6. Exploitant het creëren van een weergaveheeft het formaat:

CREËER UITZICHT<имя представления>

[(<имя столбца> [,<имя столбца> ]...)]

ALS<оператор SELECT>

Deze exploitant Hiermee kunt u een weergave maken. Als er geen kolomnamen zijn opgegeven in de weergave, worden de kolomnamen uit de query die wordt beschreven door de bijbehorende SELECT-instructie gebruikt.

7. Operator verwijderen representatie heeft het volgende formaat:

DROP-VIEW<имя представления>

Met de operator kunt u een eerder gemaakte weergave verwijderen. Houd er rekening mee dat wanneer u een weergave verwijdert, de tabellen die aan de query deelnemen, niet worden verwijderd. Het verwijderen van een gerg-representatie gebeurt met een operator van het formulier: DROP VIEW repr.

8. Operator voor recordselectie heeft het formaat:

SELECTEER

< список данных >

VAN<список таблиц>

... ]

...]

Dit is de belangrijkste instructie van alle SQL-instructies. De functionaliteit is enorm. Laten we naar de belangrijkste kijken. Met de SELECT-instructie kunt u gegevens uit een of meer tabellen selecteren en berekeningen uitvoeren. Het resultaat van de instructie is een responstabel, die al dan niet (DISTINCT) dubbele rijen kan bevatten. Standaard worden alle rijen, inclusief dubbele rijen, opgenomen in de responstabel. Bij de gegevensselectie zijn records betrokken uit een of meer tabellen die zijn opgenomen in de lijst van de FROM-operand. De gegevenslijst kan de namen bevatten van de kolommen die aan de zoekopdracht deelnemen, evenals uitdrukkingen over de kolommen. In het eenvoudigste geval kunnen expressies kolomnamen, rekenkundige symbolen (+, , *, /), constanten en haakjes bevatten. Als een expressie in de gegevenslijst wordt geschreven, worden naast de gegevensselectie berekeningen uitgevoerd, waarvan de resultaten in een nieuwe (aangemaakte) kolom van de antwoordtabel vallen. Bij het gebruik van kolomnamen van meerdere tabellen in gegevenslijsten wordt een constructie van het formulier gebruikt om aan te geven dat een kolom bij een bepaalde tabel hoort:<имя таблицы>.<имя столбца>.

De WHERE-operand specificeert de voorwaarden waaraan de records in de resulterende tabel moeten voldoen. Uitdrukking<условие выборки>is Booleaans. De elementen kunnen kolomnamen, vergelijkingsbewerkingen, rekenkundige bewerkingen, logische verbindingen (AND, OR, NOT), haakjes, speciale functies LIKE, NULL, IN, enz. zijn. Met de GROUP BY-operand kunt u groepen selecteren in de resulterende set records.

9. Exploitant wijzigingen registrerenheeft het formaat:

UPDATE<имя таблицы>

SET<имя столбца> = {<выражение>, NUL )

[, SET<имя столбца> = {<выражение>, NULL)...]

De uitvoering van een UPDATE-instructie bestaat uit het wijzigen van de waarden in de tabelkolommen die zijn opgegeven door de SET-operand voor die records die voldoen aan de voorwaarde die is opgegeven door de WHERE-operand. Nieuwe veldwaarden in records kunnen leeg zijn (NULL) of berekend volgens een rekenkundige uitdrukking. Regels voor het schrijven van rekenkundige en logische uitdrukkingen zijn vergelijkbaar met de overeenkomstige regels van de SELECT-instructie.

10. Exploitant nieuwe records invoegenheeft twee soorten formaten:

INVOEGEN IN<имя таблицы>

[(<список столбцов>)]

WAARDEN (<список значений>)

INVOEGEN IN<имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

In het eerste formaat wordt de INSERT-instructie gebruikt om nieuwe records met opgegeven waarden in de kolommen in te voeren. De volgorde waarin de kolomnamen worden vermeld, moet overeenkomen met de volgorde van de waarden in de lijst van de VALUES-operand. Als<список столбцов>weggelaten, dan in<списке значений>Alle waarden moeten worden vermeld in de volgorde van de kolommen van de tabelstructuur.In het tweede formaat is het de bedoeling dat de INSERT-instructie wordt ingevoerdeen gegeven tabel met nieuwe rijen geselecteerd uit een andere tabel metmet behulp van de SELECT-clausule.

PAGINA 1

Andere soortgelijke werken die u mogelijk interesseren.vshm>

16. Leer de basisprincipes van de gestructureerde querytaal T-SQL 34,15 KB
Om dit doel te bereiken, is het noodzakelijk om de volgende taken op te lossen: query's maken om uit verschillende tabellen in SQL-taal te selecteren met behulp van gespecificeerde selectiecriteria; maak een selectiequery in SQL met statische aggregatiefuncties; maak een query die de resultaten van twee of meer query's combineert in één resultatenset met behulp van de opdracht UNION. Als resultaat van het voltooien van het werk moeten studenten het volgende kennen: categorieën SQL-opdrachten; basis SQL-opdrachten die worden gebruikt om een ​​query op te bouwen; principes voor het maken van SQL-query's...
6030. TAAL ALS ONTWIKKELINGSFENOMEEN. EXTERNE EN INTERNE FACTOREN VAN TAALONTWIKKELING 17,38 KB
Het probleem van de oorsprong van de taal omvat twee vragen. De eerste vraag houdt verband met het probleem van de oorsprong van taal in het algemeen, en hoe deze zich ontwikkelde menselijke taal hoe de mens de tweede leerde spreken met de oorsprong van elke individuele taal. Er is geen bewijs voor deze periode bewaard gebleven. Daarom moeten taalkundigen bij het bestuderen van de oorsprong van taal in het algemeen niet alleen met taalkundige feiten werken, maar ook met gegevens uit aanverwante wetenschappen. De belangstelling voor het probleem van de oorsprong van taal ontstond lang geleden.
10870. Interdisciplinaire verbindingen van de cursus “Professionele Russische taal”. Transformatie en differentiatie van de professionele Russische taal 10,57 KB
Transformatie en differentiatie van de professionele Russische taal 1. Transformatie en differentiatie van de professionele Russische taal. Syntactische normen worden bepaald door de structuur van de taal en ondergaan, net als andere orthoepische, lexicale en morfologische normen, veranderingen in het proces van taalontwikkeling. Bij het beheersen van de syntaxis van een niet-moedertaal doen zich een aantal problemen voor bij het kiezen van vormen van controle en het coördineren van de constructie van zinnen, het gebruik van deelwoorden, het kiezen van het juiste voorzetsel, enzovoort.
6929. Geschiedenis van de Delphi-taal 13,01 KB
Delphi is de Griekse stad waar het orakel van Delphi woonde. Delphi is een combinatie van meerdere kritische technologieën: Hoogwaardige compiler naar machinecode Objectgeoriënteerd model van componenten Visuele en dus snelle constructie van applicaties vanuit softwareprototypes Schaalbare tools voor het bouwen van databases Compiler naar machinecode De in Delphi ingebouwde compiler levert de hoge prestaties die nodig zijn voor het bouwen van applicaties in de architectuur...
10869. De concepten van "professionele taal", "speciale taal", hun differentiatie. Professionele Russische taal: de oorsprong, functies, reikwijdte van het functioneren (rekening houdend met de specifieke kenmerken van de specialiteit) 9,5 KB
Differentiatie van taal. Elke economische specialiteit daarnaast gemeenschappelijke taal gemeenschappelijk voor alle economen en heeft zijn eigen speciale en gespecialiseerde taal. Specialisten communiceren mondeling en schriftelijk in deze professionele talen; deze professionele talen worden aan studenten onderwezen; dergelijke professionele talen beschrijven systemen van kennis en vaardigheden in wetenschappelijke onderwijsreferentie en andere literatuur. In het systeem van economische taal zijn er gemeenschappelijke kenmerken voor iedereen professionele talen problemen.
1335. Basismodellen voor woordvorming in modern Amerikaans Engels 117,01 KB
De belangrijkste verschillen tussen Amerikaans en Brits Engels. Het probleem van het bepalen van de wereldstatus van Amerikaans Engels. Amerikaans Engels in moderne wereld. Lexicale kenmerken van Amerikaans Engels.
1936. GESCHIEDENIS, STRUCTUUR EN BASISCONCEPTEN VAN ECOLOGIE 495,77 KB
De term ‘ecologie’ is gevormd uit de Griekse wortels ‘oikos’ – thuis, de directe omgeving van een persoon en ‘logos’ – wetenschap. Daarom is ecologie in letterlijke zin de wetenschap van organismen, inclusief mensen, waargenomen binnen de grenzen van hun huis, met speciale aandacht voor de aard van de relaties tussen organismen en hun omgeving.
17746. Pedagogiek van de beeldende kunst: geschiedenis en belangrijkste ontwikkelingstrends 25,96 KB
Taak proefwerk overweeg het concept van de artistieke creativiteit van kinderen, identificeer onderzoek door uitstekende leraren en psychologen en de geschiedenis van de vorming van de artistieke creativiteit van kinderen. Een uiting van artistieke creativiteit kan zijn individuele werken- zelfstandig of onder begeleiding van een volwassene gemaakt, tekeningen, boetseren, mondelinge en schriftelijke kunst, melodieën, dramatisering, dans, maar ook koorzang, theatervoorstellingen, kunst en handwerk, houtsnijwerk, poppentheater, teken- en fictiefilms en. ..
6285. Controleverklaringen 103,51 KB
Lusoperatoren Lusoperatoren worden gebruikt om herhaalde berekeningen te organiseren. Om een ​​lus te organiseren, hebt u een variabele nodig die een lusparameter of een lusbesturingsvariabele wordt genoemd. Elke cyclus bestaat uit: initiële instellingen of lusparameterinitialisatieblok; luslichamen, dat wil zeggen instructies die meerdere keren worden uitgevoerd; cyclusparameterwijzigingsblok; het controleren van de voorwaarde voor het verlaten van de lus, die vóór het lichaam van de lus kan worden geplaatst, dan spreken we van een lus met een voorwaarde of na het lichaam...
2784. Voorwaardelijke en selectieverklaringen 16 KB
Conditie-operator If. Daarom kunt u de volgende toewijzingsoperatoren al schrijven: Koren:=Sqrtxy; Module:=bsxy. Om dergelijke voorwaardelijke sprongen in Pascal te implementeren, worden de operatoren If en Else gebruikt, evenals de onvoorwaardelijke sprongoperator Goto. Laten we eens kijken naar de If-instructie.

Vraag nr. 1. SQL en zijn geschiedenis. 1

Vraag nr. 2. Beschrijving van eenvoudige SQL-instructies.. 1

Rekenkundige functies. 4

Tekenreeksverwerkingsfuncties. 5

Speciale kenmerken. 6

Functies voor datumverwerking... 7

Het gebruik van aggregatiefuncties in query's. 7

Vraag nr. 1. SQL en zijn geschiedenis

Het enige communicatiemiddel tussen databasebeheerders, ontwerpers, ontwikkelaars en gebruikers met een relationele database is gestructureerde taal SQL-query (Structured Query Language). SQL is een taal met volledige functionaliteit voor het manipuleren van gegevens in relationele databases. Momenteel is het een algemeen aanvaarde standaardinterface voor relationele databases zoals Oracle, Informix, Sybase, DB/2, MS SQL Server en verschillende andere (ANSI- en ISO-standaarden). SQL is een niet-procedurele taal die is ontworpen om sets te verwerken die bestaan ​​uit rijen en kolommen van relationele databasetabellen. Hoewel er uitbreidingen zijn die procedurele verwerking mogelijk maken. Databaseontwerpers gebruiken SQL om alle fysieke objecten van een relationele database te creëren.

Theoretisch SQL-basisprincipes zijn vastgelegd in het beroemde artikel van Codd, dat de basis legde voor de ontwikkeling van de theorie van relationele databases. De eerste praktische implementatie vond plaats in de onderzoekslaboratoria van IBM Chamberlin D.D. en Royce R.F. Het industriële gebruik van SQL werd voor het eerst geïmplementeerd in het Ingres DBMS. Een van de eerste industriële relationele DBMS'en is Oracle. In wezen is een relationeel DBMS software die de werking van een relationele database beheert.

Eerst internationale standaard De SQL-taal werd in 1989 aangenomen (SQL-89). Eind 1992 werd een nieuwe internationale standaard, SQL-92, aangenomen. Momenteel gebruiken de meeste relationele DBMS-fabrikanten het als basis. Het werk aan het standaardiseren van de SQL-taal is echter verre van voltooid en er is al een ontwerp-SQL-99-standaard ontwikkeld, die het concept van een object in de taal introduceert en het mogelijk maakt ernaar te verwijzen in SQL-instructies: In de originele versie van SQL er waren geen commando's voor het besturen van de gegevensstroom; deze verschenen in de onlangs aangenomen ISO/IEC 9075-5: 1996 Supplementary Part SQL.

Elk specifiek DBMS heeft zijn eigen eigen implementatie SQL, dat over het algemeen een bepaalde standaard ondersteunt, maar zijn eigen kenmerken heeft. Deze implementaties worden dialecten genoemd. De 1SO/IEC 9075-5-standaard biedt dus objecten die persistent opgeslagen modules of PSM-modules (Persistent Stored Modules) worden genoemd. IN Oracle DBMS De PL/SQL-extensie is analoog aan de bovenstaande standaardextensie."

Vraag nr. 2. Beschrijving van eenvoudige SQL-instructies

SQL bestaat uit een reeks opdrachten voor het manipuleren van gegevens in een relationele database, waarmee u relationele databaseobjecten kunt maken, gegevens in tabellen kunt wijzigen (invoegen, verwijderen, corrigeren), databaserelatieschema's kunt wijzigen, berekeningen op gegevens kunt uitvoeren, selecties kunt maken uit de database, het handhaven van de veiligheid en gegevensintegriteit.

De volledige set SQL-opdrachten kan in de volgende groepen worden verdeeld:

· gegevensdefinitieopdrachten (DDL - Data Defininion Language);

· opdrachten voor gegevensmanipulatie (DML - Data Manipulation Language);

· opdrachten voor gegevensbemonstering (DQL - Data Query Language);

· opdrachten voor transactiebeheer;

· opdrachten voor gegevensbeheer.

Wanneer het wordt uitgevoerd, doorloopt elk SQL-commando vier verwerkingsfasen:

· fase ontleden, inclusief het controleren van de opdrachtsyntaxis, het controleren van tabel- en kolomnamen in de database en het voorbereiden van invoergegevens voor de optimalisatie;

· optimalisatiefase, die het vervangen van geldige databasetabel- en kolomnamen in de weergave omvat, identificatie mogelijke opties uitvoering van de opdracht, bepalen van de kosten voor het uitvoeren van elke optie, kiezen de beste optie gebaseerd op interne statistieken;

generatie fase uitvoerbare code, waarbij de uitvoerbare code van de opdracht wordt geconstrueerd;

· de opdrachtuitvoeringsfase, waarbij de opdrachtcode wordt uitgevoerd.

Momenteel optimalisatie is een integraal onderdeel van elke industriële SQL-implementatie. De optimizer werkt door statistieken te verzamelen over de opdrachten die het uitvoert en door gelijkwaardige algebraïsche transformaties uit te voeren op databaserelaties. Deze statistieken worden opgeslagen in de systeemdatabasedirectory. Systeemcatalogus is een datadictionary voor elke database en bevat informatie over tabellen, views, indexen, kolommen, gebruikers en hun toegangsrechten. Elke database heeft zijn eigen systeemcatalogus, die een verzameling vooraf gedefinieerde databasetabellen vertegenwoordigt.

Tabel 8.1 bevat een lijst met SQL-commando's volgens de geaccepteerde standaard, met uitzondering van enkele commando's die praktisch niet in dialecten worden gebruikt.

Tabel 8.1. Typische lijst met SQL-opdrachten

Team Beschrijving
Commando's voor het definiëren van objectgegevens
WIJZIG TABEL Wijzigt de tabelbeschrijving (relatieschema)
MAAK EVENEMENT Creëert een timergebeurtenis in de database
INDEX MAKEN Creëert een index op de tafel
CREËER VOLGORDE Creëert een reeks
MAAK TABEL Definieert een tabel
MAAK TAFELRUIMTE Er wordt een tabelruimte gemaakt
MAAK TRIGGER Creëert een trigger in de database
CREËER UITZICHT Definieert een weergave van tabellen
DALINGSINDEX Verwijdert fysiek een index uit de database
DROP-SEQUENTIE Verwijdert een reeks
DRUPTAFEL Verwijdert fysiek een tabel uit de database
DRAAG TAFELRUIMTE Verwijdert een tabelruimte
DROP-VIEW Verwijdert een weergave
Commando's voor gegevensmanipulatie
VERWIJDEREN Verwijdert een of meer rijen uit een databasetabel
INVOEGEN Voegt een of meer rijen in een databasetabel in
UPDATE Werkt kolomwaarden in een databasetabel bij
Commando's voor het ophalen van gegevens
SELECTEER Voert een query uit om gegevens uit tabellen en weergaven op te halen
UNIE Combineert de resultaten van twee of meer SELECT-opdrachten in één selectie
Transactiecontroleopdrachten
VERBINDEN Voltooit de transactie en wordt fysiek bijgewerkt huidige staat databases
ROLLBACK Beëindigt een transactie en retourneert de huidige status van de database op het moment van de laatste voltooide transactie en controlepunt
BESPAARPUNT Benoemt controlepunt binnen een transactie
Commando's voor gegevensbeheer
WIJZIG DATABANK Wijzigt opslaggroepen of transactielogboeken
WIJZIG DBAREA Wijzigt de grootte van databaseopslaggebieden
WIJZIG WACHTWOORD Wijzigt het wachtwoord voor toegang tot de database
ALTER STOGROEP Wijzigt de samenstelling van opslaggebieden in een opslaggroep
CONTROLEER DATABANK Controleert de database-integriteit
CONTROLEER INDEX Controleert de integriteit van de index
CONTROLEER TABEL Controleert de tabel- en indexintegriteit
DATABANK MAKEN Creëert fysiek de database
MAAK DBAREA Creëert een databaseopslaggebied
MAAK STOGROEP AAN Creëert een opslaggroep
CREËER SYNONIEM Creëert een synoniem voor een tabel of weergave
DATABASE DEINSTALLEREN Maakt de database niet toegankelijk voor gebruikers computernetwerk
DATABANK DROP Fysiek databases verwijderen
DROP DBAREA Verwijdert fysiek een databaseopslaggebied
DROP STOGROEP Verwijdert een opslaggroep
STUDIEBEURS Definieert gebruikersrechten en toegangscontrole tot de database
INSTALLEER DATABANK Maakt de database beschikbaar voor netwerkgebruikers
DATABANK VERGRENDELEN Vergrendelt de momenteel actieve database
HERROEPEN Trekt gebruikersrechten en databasetoegangsbeperkingen in
STEL DE STANDAARD STOGROEP IN Definieert de standaardopslaggroep
ONTGRENDELEN DATABANK Geeft de momenteel actieve database vrij
UPDATE STATISTIEKEN Updatet statistieken voor een database
Andere commando's
COMMENTAAR OP Plaatst commentaar op de beschrijving van databaseobjecten in de systeemcatalogus
CREËER SYNONIEM Definieert alternatieve namen voor databasetabellen en -weergaven in de systeemcatalogus
DROP-SYNONIEM Verwijdert van systeemmap alternatieve namen voor databasetabellen en -weergaven
LABEL Wijzigt systeembeschrijvingslabels
RIJCOUNT Berekent het aantal rijen in een databasetabel

De set SQL-opdrachten in de tabel is niet compleet. Deze lijst is bedoeld om u een idee te geven van wat SQL in het algemeen kan doen. Om te ontvangen volledige lijst opdrachten, raadpleeg dan de betreffende handleiding voor uw specifieke DBMS. Houd er rekening mee dat SQL het enige communicatiemiddel is voor alle categorieën gebruikers met relationele databases.

Rekenkundige functies

SQL-ondersteuning volledige set rekenkundige bewerkingen en wiskundige functies voor het construeren van rekenkundige uitdrukkingen over databasekolommen (+, -, *, /, ABS, LN, SQRT, enz.).

Een lijst met de belangrijkste ingebouwde wiskundige functies vindt u hieronder in Tabel 8.2.

Wiskundige functie Beschrijving
ABS(X) Retourneert de absolute waarde van een getal X
ACOS(X) Geeft de boogcosinus van een getal X terug
ASIN(X) Geeft de boogsinus van een getal X terug
ATAN(X) Geeft de boogtangens van een getal X terug
COS(X) Geeft de cosinus van een getal X terug
EXP(X) Retourneert de exponent van een getal X
TEKEN(X) Geeft -] terug als X< 0, 0, если X = 0, + 1, если X > 0
LN(X) Retouren natuurlijke logaritme nummers X
MOD(X,Y) Retourneert de rest wanneer X wordt gedeeld door Y
CEIL(X) Retourneert het kleinste gehele getal groter dan of gelijk aan X
RONDE(X,n) Rondt het getal X af op een getal met n cijfers erachter decimaal punt
ZONDE(X) Geeft de sinus van X terug
SQRT(X) Retourneert de vierkantswortel van een getal X
TAN(X) Geeft de tangens van X terug
VLOER(X) Retourneert het grootste gehele getal kleiner dan of gelijk aan X
LOGBOEK(a,X) Retourneert de logaritme van een getal X met grondtal A
SINH(X) Geeft de hyperbolische sinus van X terug
COSH(X) Retourneert de hyperbolische cosinus van een getal X
TANH(X) Geeft de hyperbolische tangens van X terug
TRANC(X.n) Kapt het getal X af tot een getal met n decimalen
VERMOGEN(A,X) Retourneert de waarde van A verheven tot de macht X

De set ingebouwde functies kan variëren afhankelijk van de versie van het DBMS van één fabrikant en ook in DBMS'en van verschillende fabrikanten . In het SQLBase DBMS heeft Century Inc. Er is een functie @ATAN2(X,Y), die de boogtangens van Y/X retourneert, maar er is geen functie SIGN(X).

Rekenkundige expressies zijn nodig om gegevens te verkrijgen die niet rechtstreeks in de kolommen van databasetabellen zijn opgeslagen, maar waarvan de waarden door de gebruiker worden vereist. Stel dat u een lijst met werknemers nodig heeft waarop het loon staat dat elke werknemer heeft ontvangen, inclusief bonussen en boetes.

KIES ENAME, SAL, COMM. FIJN, SAL + COMM - FIJN

Rekenkundige uitdrukking SAL + COMM - FINE wordt uitgevoerd als nieuwe kolom in de resulterende tabel, die wordt berekend als resultaat van de query. Dergelijke kolommen worden ook wel genoemd afgeleide (berekende) attributen of velden.

Tekenreeksverwerkingsfuncties

SQL biedt u een breed scala aan functies voor het manipuleren van stringgegevens (stringconcatenatie, CHR, LENGTH, INSTR en andere). Tabel 8.3 bevat een lijst met de belangrijkste functies voor het verwerken van stringgegevens.

Tabel 8.3. SQL-functies voor stringverwerking

Functie Beschrijving
CHR(N) Retouren ASCII-teken coderen voor decimale code N
ASCII(S) Retourneert de decimale ASCII-code van het eerste teken van een tekenreeks
INSTR(S2,SI,pos|,N|) Retourneert de positie van de SI-tekenreeks in de S2-tekenreeks groter dan of gelijk aan pos. N - aantal keren dat dit voorkomt
LENGTE(S) Retourneert de lengte van een tekenreeks
ONDER(EN) Vervangt alle tekens in een string door hoofdletters
INITCAP(S) Stelt het eerste teken van elk woord in een tekenreeks in op hoofdletters en de overige tekens van elk woord op hoofdletters
SUBSTR(S,pos,[,len|) Selecteert een substring met lengte tien in de string S, beginnend op positie pos
BOVENSTE(S) Converteert hoofdletters in hoofdletters op een regel
LPAD(S,N |,A|) Geeft de string S terug, opgevuld met A's, met een maximum van N tekens. Het standaard opvulteken is een spatie
RPAD(S,N |,A]) Geeft de tekenreeks S terug, rechts opgevuld met A's tot maximaal N tekens. Het standaard opvulteken is een spatie.
LTRIM(S,|,Sll) Geeft de links afgekapte tekenreeks S terug. Tekens worden verwijderd zolang het te verwijderen teken zich in de tekenreeks bevindt - patroon SI (standaard is een spatie)
RTRIM(S,|,SI |) Geeft de naar rechts afgekapte tekenreeks S terug. Tekens worden verwijderd zolang het te verwijderen teken in de tekenreeks staat - patroon S1 (standaard is een spatie)
VERTAALT,(SI,S2) Retourneert de tekenreeks S, waarbij alle exemplaren van de tekenreeks SI zijn vervangen door de tekenreeks S2. Als S.I.<>S2, worden tekens die niet overeenkomen uitgesloten van de resulterende tekenreeks
VERVANGEN(SI,|,S2|) Retourneert de tekenreeks S waarvoor alle exemplaren van de subtekenreeks SI worden vervangen door de subtekenreeks S2. Als S2 niet is opgegeven, worden alle exemplaren van de subtekenreeks SI verwijderd uit de resulterende tekenreeks S
NVL(X,Y) Als X NULL is, retourneert Y een tekenreeks, een getal of een datum, afhankelijk van het oorspronkelijke type Y

De namen van dezelfde functies kunnen in verschillende DBMS'en verschillen. De Oracle DBMS-functie SUBSTR(S, pos, |, len|) in de SQLBase DBMS heet bijvoorbeeld @SUBSTRING(S, pos, Ien). Het SQLBase DBMS heeft functies die niet beschikbaar zijn in het Oracle DBMS (zie de onderstaande tabel voor een lijst met dergelijke functies).

Tabel 8.4. SQLBase DBMS-tekenreeksfuncties anders dan string-functies Oracle DBMS

Functie Beschrijving
@EXACT(SI,S2) Retourneert het resultaat van het vergelijken van twee tekenreeksen
@LINKS(S,lcn) Retourneert de linker subtekenreeks van lengte len
@LENGTE(S) Retourneert de lengte van een tekenreeks
@MID(S, pos, len) Retourneert een subtekenreeks met de opgegeven lengte, beginnend op positie pos
@HERHAAL(S,n) Herhaalt de tekenreeks S n keer
@REPLACE(SI,pos,len,S2) Vervang posities pos len-tekens in string S2 door tekens in string SI
@RIGHT(S,len) Retourneert de rechter subtekenreeks van S met lengte len
@SCAN(S,pat) Geeft de positie van de subtekenreeks pat in de tekenreeks S terug
@STRING(X, schaal) Retourneert een symbolische weergave van een getal met de opgegeven schaal
@TRIM(S) Verwijdert spaties aan de rechter- en linkerkant van een tekenreeks
@WAARDEN) Converteert de symbolische weergave van een getal naar een numerieke waarde

U kunt de INITCAP-functie gebruiken, zodat wanneer u een lijst met werknemersnamen krijgt, de achternaam altijd begint met hoofdletter, en de rest werd met een hoofdletter geschreven.

SELECTEER INITCAP(ENAME)

Speciale kenmerken

SQL biedt een reeks speciale functies voor het transformeren van kolomwaarden. Een lijst van dergelijke functies wordt gegeven in Tabel 8.5.

Tabel 8.5. Speciale kenmerken

In de tabel WERKNEMER kunt u voor elke werknemer een geslachtskenmerk invoeren. Voeg een kolom SEX toe van het type CHAR(l) (0 - man, 1 - vrouw). Laten we zeggen dat u een lijst met werknemers nodig heeft, waarvoor ze moeten worden gedeeld op geslacht en aangegeven in een numeriek formaat; dan kun je het volgende commando geven:

SELECTEER ENAME, LNAME, LEEFTIJD, " Vloer:",TO_NUMBER(GESLACHT)

Als voorbeeld van het gebruik van de functie DECODE presenteren we een query die een lijst berekent met werknemers die hun manager aangeven. Indien de beheerder onbekend is, wordt standaard “heeft niet” weergegeven.

SELECTEER ENAME, DEC0DE(DEPN0, 10, " Dryagin", 20,"Zhilyaeva". 30,"

Korotkov", "heeft niet")

Laten we aannemen dat het hoofd van de organisatie een ongedefinieerde waarde heeft voor de DEPNO-kolom en daarom zal de standaardinstelling in DECODE voor hem werken .


©2015-2019 website
Alle rechten behoren toe aan hun auteurs. Deze site claimt geen auteurschap, maar biedt gratis gebruik.
Aanmaakdatum van de pagina: 07-08-2016