StructuredQueryLanguage(SQL)

Ähnliche Dokumente
Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

IV. Datenbankmanagement

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Referenzielle Integrität SQL

SQL structured query language

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Bibliografische Informationen digitalisiert durch

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

SQL: statische Integrität

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Bedingungen über Werte Statische Integrität. CHECK-Klausel

Views in SQL. 2 Anlegen und Verwenden von Views 2

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Üben von DDL und DML. Ergebnis:

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Oracle 10g Einführung

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

Oracle: Abstrakte Datentypen:

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

MySQL: Einfaches Rechnen.

Abfragen (Queries, Subqueries)

Beispiel 1: Filmdatenbank

Übersicht der wichtigsten MySQL-Befehle

Referentielle Integrität

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Sructred Query Language

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

105.3 SQL-Datenverwaltung

PostgreSQL in großen Installationen

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

SQL. Fortgeschrittene Konzepte Auszug

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Referentielle Integrität

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Datenbanken: Datenintegrität.

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Übungsblatt 8- Lösungsvorschlag

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenbanken (Bachelor) (SPO2007) WS 2011/12

Datumsangaben, enthält mindestens Jahr, Monat, Tag

SQL und MySQL. Kristian Köhntopp

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

5.3 Datenänderung/-zugriff mit SQL (DML)

2) Nennen Sie die Namen der 3 Ebenen des 3-Ebenen-Modells, und geben Sie an, was in jeder Ebene dargestellt wird.

Aufgaben zu XPath und XQuery

SQL Data Manipulation Language (DML) und Query Language (QL)

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

PostgreSQL unter Debian Linux

Grundlagen Datenbanken Sommersemester 2008

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Kapitel 8: Datenintegrität

Informatik 12 Datenbanken SQL-Einführung

(Von der Nähe zur Distanz zum User geordnet)

Michaela Weiss 01. April Lerneinheit 4: Relationale Datenbanken am Beispiel von MySQL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Wiederholung VU Datenmodellierung

Der SAS DataStep und die Prozedur SQL Cellent Finance Solutions GmbH Seite: 1

Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints

3.17 Zugriffskontrolle

Wiederholung VU Datenmodellierung

Datenintegrität. Bisherige Integritätsbedingungen

DB1 Abgabe Umsetzung der Callcenter Datenbank nach SQL von Daniel Häfliger, Dominik Süsstrunk und Reto Brühwiler

MIN oder MAX Bildung per B*Tree Index Hint

Praktische SQL-Befehle

Kapitel DB:VI (Fortsetzung)

Datenbanksysteme 2013

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Benutzerverwaltung, Sichten und Datenintegrität

Unterabfragen (Subqueries)

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Labor 3 - Datenbank mit MySQL

Erstellen einer Datenbank. Datenbankabfragen

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

8 Access-Abfragen migrieren

Transkript:

StructuredQueryLanguage(SQL) Themen: ErstelenundÄndernvonTabelen AbfragenvonDaten Einfügen,ÄndernundLöschenvonDaten Erstelennutzerde niertersichten(views) 2012Claßen,Kempa,Morcinek 1/23

SQL Historie System R mitsequel UniBerkeley INGRES (RelationalSoftwareInc) OracleV2mitSQL HistoriederDB-SpracheSQL SQL De-Facto- Standard (referentiele Integrität) SQL-86 SQL-92 (EntryLevelSQL) SQL-89 SQL:1999 (Prozeduren, OO-Konzepte) SQL:2003 (XM L-Verarbeitung, OLAP-Funktionen) SQL:2008 SQL:2006 (XQuery) 1970 1975 1980 1985 1990 1995 2000 2005 2010 SQL:86:SQL wird Industriestandard,ANSI1986,ISO 1987 SQL:89(ANSI-SQL / ISO9075):kleinereAnpasungen,Erweiterungum die MöglichkeitzurDenitionreferentielerIntegritätsbedingungen SQL:92/SQL2:Festlegung von dreisprachschichten:entrylevel:grundlegendste Anweisungen(AnlegenvonTabelen,Datenmanipulation),einziggültigerDatentypist Zeichenkete,MUSSvonalenRDBMSunterstütztwerden;Interm ediate Level:weitere AnweisungenzurDatende nition,funktionen,verbund-undmengenoperatoren;ful Level:enthältale SQL-Anweisungen und weitere Funktionen zbfürdie Verbindungsverwaltung SQL:1999/SQL3(ISO/IEC 9075:1999):Unterstützung prozeduralerstrukturen und Trigger,reguläreAusdrücke,rekursiveAbfragen,Integrationvonobjektorientierten Konzepten,AufteilungdesStandardsinmehrereTeile,dieeinzelnweiterentwickelt werdensolen SQL:2003(ISO/IEC 9075:2003):uaFunktionen zurverarbeitung von XM L-Daten, erweiterteolap-funktionen (W indow-funktionen) SQL:2006(ISO/IEC 9075-14:2006)und SQL:2008(ISO/IEC 9075-14:2008):be sere Integration von XM L (Im port/exportvon XM L,Verwendung von XQuery) 2012Claßen,Kempa,Morcinek 2/23

DVD-Verleih WeitereInformationenzurMySQL-BeispieldatenbankSAKILA: http://devmysqlcom/doc/sakila/en/sakilahtml http://forgemysqlcom/wiki/sakilasampledb PortierungenfürandereDatenbanksysteme: http://codegooglecom/p/sakila-sample-database-ports/ 2012Claßen,Kempa,Morcinek 3/23

Datendenition CREATETABLE EineTabeleerstelen CREATETABLE films (film_id integer NOT NULL, title varchar(255) NOT NULL, description varchar(4000) UNIQUE, release_year date default NULL, language_id integer NOT NULL REFERENCES language (language_id), rental_duration integer NOT NULL default '3', rental_rate number(4,2) NOT NULL default '499', length integer default NULL, rating varchar(5) NOT NULL CHECK (rating IN('G','PG','PG-13','R','NC-17')) default 'G', CONSTRAINTpk_films PRIMARYKEY (film_id) ); Legende: Domänenintegrität(Spaltenebene) Entitätsintegrität(Zeilenebene) ReferentieleIntegrität(Tabelenebene) AleInformationenwerdenexplizitalsWerteinTabelendargestelt Domänenintegrität(Spaltenebene) -(Standard-)Datentypen -nutzerde niertedatentypen (UDT) -NULL-W erte -Vorgabewerte(DEFAULT) DerDEFAULT-Wertmusdem DatentypderSpalteentsprechen -CHECK-Constraints(Prüfbedingungen) Entitätsintegrität(Zeilenebene) -Constraints(UNIQUE,PRIMARY KEY) ReferentieleIntegrität(Tabelenebene) -Constraints(FOREIGN KEY) -Trigger Sieheauch:[Faeskorn-W oyke2007],abschnit531f 2012Claßen,Kempa,Morcinek 4/23

Datendenition ALTER TABLE BeziehungenzwischenTabelenfestlegen City Country Primärschlüsel (primarykey) Fremdschlü sel (foreign key) ALTER TABLE City ADD CONSTRAINT fk_city FOREIGN KEY (country_id) REFERENCES Country (country_id); MitFOREIGN KEYwird einereferentieleintegritätsbedingung zwischen Tabelen de niertderfremdschlü selverweist(meist)aufdenprimärschlü seleineranderen Tabele Diereferenzierte(Primärschlüsel-)Tabelemusexistieren,bevorderFrem dschlü sel de niertwirddiefremdschlü selspaltemu sebenfalsexistieren,bevordiereferentiele Integritätsbedingung festgelegtwird Sieheauch:[Faeskorn-W oyke2007],abschnit5310 2012Claßen,Kempa,Morcinek 5/23

SELECT DieSyntaxderSELECT-Anweisung SQL-Anweisung Kommentar Klauseln - Ermittelt Kunden aus Deutschland SELECT name, address, city FROM Customers WHERE country = 'Germany' ORDER BY name; Schlüselwörter Bezeichner Separator SQL isteineformatfreiesprache -Groß-und Kleinschreibung beliebig -1 bisn Leerzeichen alstrennzeichen -Zeilentrennung beliebig,abernichtinnerhalb von Schlü selwörtern SQL-Anweisungenmüssensepariertwerden -Vorderzweiten und jederweiteren SQL-Anweisung einerfolgevon Anweisungen stehtein Separator -TypischerSeparatorist; SQL benutztsprachelemente -Schlü selwörter -Bezeichner(fürTabelen,Spalten, ) -Konstanten 2012Claßen,Kempa,Morcinek 6/23

SELECT SpaltenauswählenmitSELECT Customers SELECT name, address, city FROM Customers; Sieheauch:[Faeskorn-W oyke2007],abschnit552 2012Claßen,Kempa,Morcinek 7/23

SELECT WHERE ZeilenauswählenmitWHERE Customers SELECT * FROM Customers WHERE country = 'United States'; Sieheauch:[Faeskorn-W oyke2007],abschnit555 2012Claßen,Kempa,Morcinek 8/23

NULL NULListkein W ert Rental SELECT rental_id, rental_date, return_date FROM rental WHERE return_date IS NULL; NULL-W ertewerden durchgängig gleich alsunbekannteoderfehlendedaten behandelt unddatentypunabhängigvonstandardwertenunterschieden Sieheauch:[Faeskorn-W oyke2007],abschnit5321und5552,s250f 2012Claßen,Kempa,Morcinek 9/23

Verbund TabelenverbundherstelenmitJOIN Films Actors SELECT * Umbenennung FROM Films AS f INNER JOIN Actors AS a ON ffilm_id = afilm_id; DerVerbundzwischenTabelenerfolgtindenmeistenFälenüberdieBeziehung Primärschlüsel-Fremdschlüsel(referentieleIntegrität) In obigerergebnistabele werden nurdie Zeilen verbunden,beidenen derw ertdes A tributesfilm_idübereinstim m t! AlternativeVariantezum Beipielverbund(Theta-Join): SELECT * FROM Films AS f, Actors AS a WHERE ffilm_id = afilm_id; HinweisefürdasAufstelenvonVerbünden: -beliebig vieletabelen sind (theoretisch)m iteinanderverknüpfbar -SELECT-Klauselkann Spalten m ehrerertabelen enthalten -gleichnam igespalten sind eindeutig zu kennzeichnen (TabellennameSpaltenname) -im VerbundistjederVergleichsoperatormöglich -N Tabelen erfordern mindestensn-1 Verbundoperationen zurverm eidung eines kartesischen Produktes Sieheauch:[Faeskorn-W oyke2007],abschnit553und554 2012Claßen,Kempa,Morcinek 10/23

Gruppierung Wertegruppierenundaggregieren Rentals SELECT title, count(*) AS quantity FROM Rentals GROUP BY title; EineGruppekanneineodermehrereSpalteneinerTabeleumfasenundwirddurchdie GleichheitdergespeichertenDatenindiesenA tributende niert AggregatfunktionenberechnenWerteüberaleZeilen -einertabele,wenn kein Gruppierungsm erkm alexistiert ODER -einergruppevon Zeilen,wenn ein Gruppierungsm erkm alexistiert Aggregatfunktionen: COUNT AnzahlZeilen SUM Summierung AVG Durchschnit MIN Minimum MAX Maximum Sieheauch:[Faeskorn-W oyke2007],abschnit556 2012Claßen,Kempa,Morcinek 11/23

Datenmanipulation INSERT EineneueZeileeinfügen -- Daten zum Kunden CECIL WINES werden erfasst INSERT INTO Customers (ID, name, address,"zip code", city) VALUES (512, 'CECIL WINES', '548 Uruapan Street','35653','London'); Customers DieeinzufügendenDatenmüsendem DatentypderjeweiligenSpalteentsprechen WurdeeineSpaltemitNOT NULLde niert,so istaufjeden Falein W ertanzugeben oderdasdatenbanksytem lieferteinefehlermeldungwegenverstoßesgegendie Integritätsbedingung WurdefürdieSpalteeinStandardwert(DEFAULT)festgelegt,so wird dieserautomatisch in die neue Zeile eingetragen,falskein expliziterw ertangegeben wird Sieheauch:[Faeskorn-W oyke2007],abschnit541 2012Claßen,Kempa,Morcinek 12/23

Datenmanipulation INSERT MehrereZeileneinfügen -- Datenübernahme aus einer anderen Kundentabelle INSERT INTO Customers (name, address,"zip code", city) SELECT name, strasse, plz, ort FROM Kunden; Customers Kunden Sieheauch:[Faeskorn-W oyke2007],abschnit541 2012Claßen,Kempa,Morcinek 13/23

Datenmanipulation DELETE ZeilenausderTabelelöschen -- Kunde Nr 8 wird gelöscht DELETE FROM Customers WHERE ID = 8; Customers Achtung!OhneWHERE-Klauselwird dergesamtetabeleninhaltgelöscht! Sieheauch:[Faeskorn-W oyke2007],abschnit543 2012Claßen,Kempa,Morcinek 14/23

Datenmanipulation UPDATE Spaltenwerteändern -- Kunde Nr 3 ist umgezogen UPDATE Customers SET address ='Feldweg 11', "zip code" ='3001', city ='Bern' WHERE ID = 3; Customers EswirdjeweilsdiegesamteZeileausgetauscht Sieheauch:[Faeskorn-W oyke2007],abschnit542 2012Claßen,Kempa,Morcinek 15/23

Datenmanipulation Löschen Customers Löschen Löschen Spalte(n) löschen Spalte(n)- wert löschen *) UPDATE Zeile(n) löschen ALTER TABLE DELETE *) NOT NULLbeachten 2012Claßen,Kempa,Morcinek 16/23

Verbund FehlendeDatenmitOuter-Join nden -- Welche Filme befinden sich (nicht) im Bestand? SELECT ffilm_id, title, inventory_id, ifilm_id FROM Film f LEFT OUTER JOIN Inventory i ON ffilm_id = ifilm_id; Film Inventory DieAnwendungeinesäußerenVerbundes(OUTER JOIN)isterforderlich,wenn nach Wertengesuchtwird,zudenenkeinekorespondierendenWerteinanderenTabelen existieren DasBeispielzeigtauchFilme,diesich(ggw)nichtim BestandbendenNichtzujeder Zeileinfilmexistierteineko respondierendezeilein inventoryfehlende W erte werdenalsnulldargestelt EininnererVerbund(INNER JOIN)hä tediesew erteaufgrund fehlenderfremdschlü sel nichtangezeigt Sieheauch:[Faeskorn-W oyke2007],abschnit413,s137f 2012Claßen,Kempa,Morcinek 17/23

Verbund RekursionmitSelf-JoinauLösen Store_staK -- Zeige Mitarbeiter und ihre Vorgesetzten SELECT estaff_id, efirst_name ' ' elast_name AS employee, mstaff_id, mfirst_name ' ' mlast_name AS manager FROMStore_staffAS e JOINStore_staffAS monemanager_id=mstaff_id; EinSelf-Joinistein norm alerverbund,dereinetabelemitsichselbst,dhzeilen ein undderselbentabelemiteinanderverknüpft Im BeispielbendensichPrimärschlüsel(staff_id)undFremdschlüsel(manager_id) inderselbentabeleum einetabelemehrfachanzusprechen,isteinaliasname anzugebendieserzeugtmehrerevirtueletabelen,diewiegewohntverknüpftwerden können 2012Claßen,Kempa,Morcinek 18/23

Unterabfrage AbfragenalsBestandteilandererAbfragen SkalareUnterabfrage(scalarsubquery) WHERE amount > (SELECT max(amount) FROM Payment) -- UPDATE Film SET replacement_cost = (SELECT avg(cost) FROM Old_films); Tabelen-Unterabfrage(tablesubquery) FROM customer c INNER JOIN (SELECT aaddress_id, aaddress, ccity FROM Address a INNER JOIN City c ON acity_id = ccity_id )ca ON caddress_id = caaddress_id EineUnter-(auchSub-)SELECT-Anweisung wird alsverbund jedereinzelnen Ergebniszeileder(Haupt-)SELECT-Anweisung m itden in dersub-select-anweisung enthaltenen Tabelen realisiertsiekann daherauch alternativalsverbund formuliert werden: SELECT * FROM Tabelle1 WHERE SpalteA = (SELECT SpalteB FROM Tabelle2 WHERE ); istidentisch m it SELECT * FROM Tabelle1 t1 INNER JOIN Tabelle2 t2 ON t1spaltea = t2spalteb; Tabelen-Unterabfragenkönnenauchgebildetwerdenmit Quantoren:ALL,ANYbzwSOME Prädikaten:IN,EXISTS Sieheauch:[Faeskorn-W oyke2007],abschnit559 2012Claßen,Kempa,Morcinek 19/23

Unterabfrage Abfragenkönnenvoneinanderabhängigsein VergleicheinesEinzelwerteseinerGruppemitdem (aggregierten)gruppenwert: -- Welche Kunden haben je Land überdurchschnittlich -- viel ausgegeben? SELECT customer_id, last_name, paid FROM Customers AS cu WHERE paid > (SELECT avg(pamount) FROM Payments AS pa WHERE cucountry_id = pacountry_id); DerzeilenweiseVergleichineinerkoreliertenUnterabfrageistein Performance-Kiler, dafürjedezeilederunterabfragederverbundmitderhauptabfrageneuberechnet werdenmuskorelierteunterabfragensoltendahersparsam eingesetztwerden Sieheauch:[Faeskorn-W oyke2007],abschnit559,s263 2012Claßen,Kempa,Morcinek 20/23

Unterabfrage (Nicht-)Existenzvon W erten prüfen -- Welche Filme befinden sich nicht im Bestand? SELECT film_id, title, length FROM Film AS f WHERE NOT EXISTS (SELECT * FROM Inventory AS i WHERE ffilm_id = ifilm_id); EXISTSistwahr,wenn dieunterabfragemindestenseine ZeilealsErgebniszurückliefert Sieheauch:[Faeskorn-W oyke2007],abschnit5593 AlternativenzuEXISTS EXISTS Alternative WHERE EXISTS (SELECT * FROM ) WHERE 0 < (SELECT COUNT(*) FROM ) WHERE NOT EXISTS (SELECT * FROM ) WHERE 0 = (SELECT COUNT(*) FROM ) 2012Claßen,Kempa,Morcinek 21/23

ExterneSicht(View) EineSichtaufausgewählteDatenerstelen CREATE VIEW Customers_DACH (ID, name, stadt, land) AS SELECT ID, name, city, country FROM Customers WHERE country IN ('Germany', 'Austria', 'Switzerland') WITH CHECK OPTION; Customers Customers_DACH VorteilederNutzungvonSichten: SichtenvereinfachendenDatenzugriDerNutzerkann einesichtaufrufen,ohnedie komplexenbeziehungenzwischendentabelenkennenzumü sen Sichtenliefern im m erden aktuelen Stand derdatenw ird eine Tabele aktualisiert, zeigen dievon ihrabgeleiteten Sichten dieänderungautomatisch an Sichtenerhöhen diesicherheitdurch explizite Spaltenauswahlkann eine eingeschränkte SichtaufdieDatenerzeugtwerdenNutzer,dienurZugriKsrechteaufdieSichten haben,sehenauchnurdiesedaten DatenmanipulationüberSichten ÜbereineSichtkönnenprinzipielDateneingefügt,geändertundgelöschtwerdenUnter bestimmtenbedingungenisteinesichtalerdingsnichtaktualisierbar,zbwenndie SELECT-Anweisung Funktionen inklaggregatfunktionen oderunterabfragen enthält DieKlauselWITH CHECK OPTIONkann füreineveränderbaresichtbenutztwerden,um das EinfügenoderÄndernanZeilenzuverhindern,diederWHERE-Klausel widersprechen Sieheauch:[Faeskorn-W oyke2007],abschnit535 2012Claßen,Kempa,Morcinek 22/23

Metadaten (M eta-)daten abfragen SELECT Column_Name, Data_Type, Is_Nullable FROM Information_SchemaColumns WHERE Table_Name = 'Customers'; Customers Metadaten SELECT Column_Name, Data_Type, Nullable FROM User_Tab_Columns -- Oracle-Version WHERE Table_Name = 'Customers'; DieStruktureinerDatenbankwirdineinem Systemkatalog(auchMetadatenoderData Dictionarygenannt)aufderselbenlogischenEbenewiedieDaten,dhinTabelen, beschriebenundkannmithilfederdatenbankspracheabgefragtwerden Sieheauch:[Faeskorn-W oyke2007],abschnit58 2012Claßen,Kempa,Morcinek 23/23