Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär?
|
|
- Silvia Holst
- vor 7 Jahren
- Abrufe
Transkript
1 Donnerstag, 11. November h00, Mozartsaal Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär? Dr. Martin Wunderli Trivadis AG, Zürich-Glattbrugg Schlüsselworte Reguläre Ausdrücke, Pattern Matching, SQL Queries Zusammenfassung Pattern-Matching in SQL die Suche nach Zeichenketten, die einem bestimmten Muster genügen wird mit Oracle 10g durch Verwendung von regulären Ausdrücken auf eine neue Stufe gehoben. Zum einen sind diese mächtiger als die eher rudimentären Wildcards der LIKE Funktion, zum anderen sind sie performanter als das OWA_PATTERN Package aus Oracle8i. UNIX Administratoren und Shell Programmieren werden sich damit sehr schnell zurechtfinden, für reine Oracle DBAs und Entwickler ohne RegExp Praxis erfodert deren Gebrauch erfahrungsgemäss etwas Eingewöhnungszeit. Theoretischer Hintergrund Den theoretischen Hintergrund zu regulären Ausdrücken liefert die Berechenbarkeitstheorie, ein Teilgebiet der theoretischen Informatik. Reguläre Ausdrücke bilden eine Familie von kompakten (manche mögen sagen: kryptischen) aber leistungsfähigen formalen Sprachen, mit denen sich Mengen von Zeichenketten beschreiben lassen. Die regulären Ausdrücke werden von vielen Programmen und Programmiersprachen verwendet, um Muster zu definieren, nach denen Zeichenketten in Texten zu suchen und eventuell durch etwas anderes zu ersetzen sind. Formale Sprachen werden durch eine Menge von zulässigen Zeichenketten oder Treffern beschrieben und sind über einem Alphabet definiert. Eine formale Sprache über dem Alphabet {a,b,c} könnte z.b. die Menge aller Worte sein, die mit einer Folge von a beginnen, mit einer Folge von b weitergehen und mit einer Folge von c enden. 'aaaabc' wäre dann ein Wort dieser Sprache, 'aaaac' ebenfalls, 'ca' aber nicht. Diese formale Sprache lässt sich durch den regulären Ausdruck 'a*b*c*' (* steht hier für die 0-n malige Wiederholung des vorherigen Zeichens) beschreiben.
2 KONFERENZ Historie von Pattern Matching bis Oracle 10g Bis Oracle 8.0 einschliesslich standen nur die Funktion LIKE mit den Wildcards '%' (null bis n beliebige Zeichen) und '_' (genau ein beliebiges Zeichen) für Pattern-Matching in SQL-Statements zur Verfúgung. In Oracle8i kam das Package OWA_PATTERN hinzu, welches das Suchen mit regulären Ausdrücken implementiert. Dieses hat aber noch einige Nachteile: Es ist relativ langsam Von seiner Struktur ist es mehr für PL/SQL geeignet, da die meisten Prozeduren mit in/out Parametern arbeiten Es implementiert reguläre Ausdrücke nicht vollständig Oracle 10g implementiert nun das Pattern-Matching mit regulären Ausdrücke nach Posix Standard (Extended Regular Expressions ERE) direkt als SQL Funktionen. Es handelt sich hier um die Funktionen REGEXP_LIKE: Liefert TRUE, falls ein Attribut einer RegExp genügt REGEXP_REPLACE: Ersetzt Teilzeichenketten, falls sie der RegExp genügen REGEXP_INSTR: Liefert die Position einer Teilzeichenkette, die der RegExp genügt REGEXP_SUBSTR: Liefert die Teilzeichenkette, die der RegExp genügt Grundbegriffe von regulären Ausdrücken Der vorliegende Beitrag soll keine Schulung der vielfältigen Möglichkeiten der Darstellung von regulären Ausdrücken sein, sind sie zu umfangreich. Wir verweisen dazu vielmehr auf die Literaturliste. Wir wollen aber die zentralen Mittel auflisten, die zur Darstellung eines regulären Ausdrucks, zur Definition des Musters, nach dem wir suchen, verwendet werden können, um die Grundlage für die nachfolgenden Beispiele zu erhalten. Ein regulärer Ausdruck besteht aus Buchstaben des verwendeten Zeichensatzes sowie eventuell Symbole mit besonderer Bedeutung. Die Zeichenkette 'abc' ist damit schon ein regulärer Ausdruck, auf den das Wort 'abc' passt. Allerdings auch nur dieses eine Wort. Damit ein regulärer Ausdruck auf mehr als eine Zeichenkette passt, sind unter anderem folgende Symbole verwendbar:
3 Symbol Bedeutung * 0 bis n malige Wiederholung des vorangehenden Ausdrucks? 0 oder 1-malige Wiederholung des vorangehenden Ausdrucks + 1 bis n malige Wiederholung des vorangehenden Ausdrucks {4} Genau 4-malige Wiederholung des vorangehenden Ausdrucks {3,6} 3 bis 6-malige Wiederholung des vorangehenden Ausdrucks. Ein belibiges Zeichen [0-9A-F] Genau ein Zeichen aus der Menge 0-9 und A-F [:alnum:] Zeichenklasse, hier alle alphanummerischen Zeichen (Buchstaben und Ziffern) () Gruppierung \2 Referenzierung einer Gruppierung, hier der zweiten (xx yy) Entweder die Zeichenkette xx oder yy ^ Der Beginn einer Zeile $ Das Ende einer Zeile Will man die Symbole als 'normale' Zeichen verwenden, müssen sich durch ein ESCAPE Zeichen (typischerweise '\') geschützt werden. Die RegExp 'Bericht[0-9][0-9].txt' passt z.b. auf Bericht04.txt, aber nicht auf Bericht4.txt und auch nicht auf Bericht1994.txt. Beispielanwendungen Verifikation von Adressen: Wir wollen testen, ob eine Adresse auf.com oder.de endet und ob ein '@' enthalten ist: SQL> SELECT address 2 FROM 3 WHERE regexp_like (address, '.*@.*\.(com de)'); ADDRESS Sven.Vetter@trivadis.com Martin.Wunderli@trivadis.com MaxMueller@firma.de Erklärung:.* ist eine beliebige Zeichenkette Dann folgt Zeichen.* ist wieder eine beliebige Zeichenkette \. Den Punkt müssen wir escapen, sonst steht er für ein beliebiges Zeichen (com de) Enden darf die Zeichenkette entweder mit com oder de
4 KONFERENZ Man könnte der Funktion noch einen dritten parameter i für die Case insensitive Suche mitgeben. Check Condition Da die regexp Funktionen in Check Contraints verwendet werden dürfen, kann man sie sehr gut für die Validierung von Daten einsetzen. Beispiel: Validierung einer Artikel-Nummer mit dem Format x wobei x ein Grossbuchstabe zwischen A und F 9 eine Ziffer sein soll. Die entsprechende SQL Syntax sieht so aus: CREATE TABLE parts (partno VARCHAR2(11) NOT NULL CONSTRAINT check_part_no CHECK (regexp_like(partno, '[A-F][[:digit:]]{2}\.[[:digit:]]{3}\.[[:digit:]]{3}')) ) Erklärung: [A-F] Zuerst genau ein Zeichen aus der Menge A-F, [[:digit:]]{2} dann genau 2 Ziffern, \. gefolgt von einem Punkt (Escape nicht vergessen!), [[:digit:]]{3} genau 3 Ziffern \. ein Punkt [[:digit:]]{3} und zum Schluss wieder drei Ziffern. Ich mag als UNIX-ler etwas voreingenommen sein, aber obiges in SQL? Suchen und Ersetzen Auch Suchen/Ersetzen ist mit regulären Ausdrücken möglich. Im Zielausdruck wird dabei mit \n auf Gruppieren aus dem Suchausdruck verweisen. Ein Beispiel: Wir wollen Mailadressen der Form vorname.nachnahme@trivadis.com nach nachnahme.vorname@trivadis.com umformatieren.
5 In SQL ist das relativ unübersichtlich und kompliziert: SELECT substr(address, instr (address, '.') + 1, instr (address, '@') - instr (address, '.') - 1 ) '.' substr (address, 1, instr (address, '.') - 1) substr (address, instr (address, '@')) FROM Mittels regulären Ausdrücken wesentlich kompakter und einfacher: SELECT address, regexp_replace (address, '(.*)\.(.*)@(.*)', '\2.\1@\3') FROM Erklärung: Wichtig ist hier, dass Teilzeichenketten mittels () gruppiert und damit referenziert werden können Die erste und die zweite gefundene Zeichenkette (vor und nach dem Punkt) werden in umgekehrter Reihenfolge ausgegeben Globalization Support Oracle hat die regulären Ausdrücke von Anfang an NLS-ready implementiert. Um nur einige Beispiele zu nennen: Die regulären Ausdrücke matchen auf Zeichen, nicht auf Bytes. Dadurch entstehen keine Probleme mit Multi-Byte Zeichensätzen. Ebenso sind die Zeichenklassen sensitiv bezüglich der zugrunde liegenden Unicode Zeichensätze. So enthält [:digit:] eventuell Arabisch-Indische oder Bengalische Spezialzeichen Sind der reguläre Ausdruck und die untersuchte Zeichenkette in verschiednen Zeichensätzen abgelegt, so wird der Ausdruck konvertiert Performance Jeder kennt vermutlich den Spruch 'Wer misst, misst Mist!'. Nichtsdestotrotz hier ein kleines Beispiel, welches aber durchaus typisch ist und die Performance der regulären Ausdrücke grob einordnen kann. Getestet wurde auf einer Tabelle MY_ALL_OBJECTS, welche durch mehrfache Duplikation auf sich selbst aus der Spalte OBJECT_NAME der Tabelle.SYS.ALL_OBJECTS entstand. Total enthält sie 1.3 Mio Rows.
6 KONFERENZ Zuerst das OWA_PATTERN Package. Da MATCH mit IN/OUT Parametern arbeitet, verwenden wir AMATCH, welche das erste Auftreten findet: SQL> select count(*) from my_all_objects where owa_pattern.amatch(object_name,1,'a') > 0; COUNT(*) Elapsed: 00:02:29.14 Mit regulären Ausdrücken: select count(*) from my_all_objects where regexp_like(object_name,'^a'); COUNT(*) Elapsed: 00:00:02.70 Mit LIKE: SQL> select count(*) from my_all_objects where object_name like 'A%'; COUNT(*) Elapsed: 00:00:00.43 Fazit Oracle hat reguläre Ausdrücke deutlich performanter und besser in SQL nutzbar als mit dem bisher verfügbaren PL/SQL Package implementiert. Dabei wurden auch Feinheiten wie der Globalisation Support nicht vergessen. Nichtsdestotrotz sind (Kombinationen von) LIKE Abfragen immer noch sinnvoll, sie sind in der Regel schneller als ein regulärer Ausdruck. Letzteren wird man also vor allem dort anwenden, wo bis jetzt PL/SQL oder OWA_PATTERN zum Einsatz kam. Man sollte bei allem Enthusiuasmus aber nicht vergessen, dass die Kompaktheit der regulären Ausdrücke leicht zu Unlesbarkeit führen kann. Es ist daher wichtig, die einzelnen Komponenten jeweils zu dokumentieren.
7 Literatur [1] Oracle Regular Expressions Pocket Reference, J. Gennick & P. Linsley, ISBN [2] Regular Expression Pocket Reference. T. Stubblebine, ISBN X [3] Erklärung der Begriffe Berechenbarkeitstheorie & formale Sprachen [4] Mastering Regular Expressions, Jeffrey Friedl, ISBN [5] Tutorial über reguläre Ausdrücke Kontaktadressen: Dr. Martin Wunderli Trivadis AG Europastrasse 5 CH-8152 Glattbrugg Telefon: +41(0) Fax: +41(0) martin.wunderli@trivadis.com Internet:
Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär? Dr. Martin Wunderli Trivadis AG
Reguläre Ausdrücke in Oracle 10g Waren Queries bis jetzt irregulär? Dr. Martin Wunderli Trivadis AG www.trivadis.com Reguläre Ausdrücke in Oracle 10g > Grundlagen > Vor Oracle 10g > Ab Oracle 10g > Check/Suchen/Ersetzen
MehrEinleitung. liefert Ihnen alle Dateien, die mit.txt enden. Oder dir bericht??.txt
Betrifft Regular Expressions Autor Martin Bracher (martin.bracher@trivadis.com) Art der Info Technische Background Info (November 2003) Quelle Aus unserer Schulungs- und Beratungstätigkeit Einleitung Sie
MehrOracle 10g Einführung
Kurs Oracle 10g Einführung Teil 7 Einige interessante SQL und PL/SQL Erweiterungen für Administratoren Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 19 Seite
MehrFormale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 3: Regular Expressions Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 3 Regular
MehrEinige SQL- und PL/SQL-Erweiterungen. Dr. Gudrun Pabst
Einige SQL- und PL/SQL-Erweiterungen Dr. Gudrun Pabst Einige SQL- und PL/SQL-Erweiterungen UTL_COMPRESS UTL_MAIL Case- und Akzent-unabhängige Suche und Sortierung > Agenda Für besseren Durchblick. Reguläre
MehrMySQL Informationsgewinnung Teil 3. Stefan Maihack Dipl. Ing. (FH) Datum:
MySQL Informationsgewinnung Teil 3 Stefan Maihack Dipl. Ing. (FH) Datum: 18.6.2013 Mustervergleich Problem: Der gesuchte Datensatz ist nur teilweise bekannt Beispiel: alle Bücher zum Thema MySQL exakter
MehrKleine Helferlein. Jens Behring its-people. Copyright its-people
Jens Behring its-people Werbung Agenda Werbung Vorstellung Jens Behring its-people Vorstellung des Vortragsthemas Analytische Funktionen Reguläre Ausdrücke Count Listagg Rank Lead / Lag Werbung Agenda
Mehr/ Vortrag Unix-AG
16.6.2010 / Vortrag Unix-AG xkcd Fortsetzung... Grundlegendes 1 Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann. Diese
MehrLinux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting
Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting Reguläre Ausdrücke Reguläre Ausdrücke beschreiben eine Menge von Zeichenfolgen und werden benutzt um m festzustellen, ob eine Zeichenkette Teil
MehrReguläre Ausdrücke. Reguläre Ausdrücke = Regular Expressions = reg.exp./regexp/regexp = RE
Blockseminar Einführung in die Korpuslinguistik Seminarleitung: Yvonne Krämer, M.A. REGULAR EXPRESSIONS RegExp Was ist ein regulärer Ausdruck? = Regular Expressions = reg.exp./regexp/regexp = RE Ein regulärer
MehrReguläre Ausdrücke IDE AUTUMN SCHOOL
Reguläre Ausdrücke 1 Reguläre Ausdrücke Übersicht Einführung Grundlagen Währenddessen: Übungen 2 Was sind Reguläre Ausdrücke? Reguläre Ausdrücke sind Zeichenketten, die Mengen von Zeichenketten beschreiben.
MehrLinux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs
Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting POSIX POSIX POSIX ist ein UNIX-Standard, der bestimmte grundlegende Funktionen und Eigenschaften von UNIX-Systemen definiert. Dazu gehören auch
MehrEinleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002)
Betrifft Autör: GROUPING_ID Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem Oracle9i Data Warehousing Guide und den Kursen New Features Oracle9i
MehrLinguistische Sorts und Vergleiche oder 'a'='ä' ist TRUE. DOAG 2015 Datenbank Dierk Lenz
Linguistische Sorts und Vergleiche oder 'a'='ä' ist TRUE DOAG 2015 Datenbank Dierk Lenz Herrmann & Lenz Services GmbH Herrmann & Lenz Solutions GmbH Erfolgreich seit 1996 am Markt Firmensitz: Burscheid
Mehr3 Regular expressions
3 Regular expressions Es gibt eine ganze Reihe von Unix-Werkzeugen, für deren Benutzung es sinnvoll oder gar wesentlich ist, dass man mit etwas umgehen kann, was als regular expression oder kurz Regex
MehrSebastian Harl. 03. Oktober 2008
Reguläre Ausdrücke Sebastian Harl LUSC Workshop Weekend 2008 03. Oktober 2008 (?:[a-z0-9!#$%& *+/=?^_ { }~-]+(?:\.[a-z0-9!#$%& *+/=?^_ { }~-]+ )* "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]
Mehr4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
MehrRegular Expressions. Daniel Lutz Was ist eine Regular Expression?
Regular Expressions Daniel Lutz 12.11.2003 1 Was ist eine Regular Expression? Ausdruck, der ein Textfragment beschreibt Eine Regular Expression passt zu einem Textfragment, wenn das Textfragment
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Reguläre Ausdrücke und PROSITE-Patterns Thomas Mauermeier 04.12.2018 Ludwig-Maximilians-Universität München Warum Reguläre Ausdrücke? Regulärer Ausdruck
MehrPerl Regular Expressions in Base SAS
Webinar@Lunchtime Perl Regular Expressions in Base SAS Perl Reguläre Ausdrücke (Perl Regular Expressions) Einleitung Perl Regulare Ausdrücke beschreiben einen Text, der als Muster dient. In einem solchen
MehrUnterschiede in Dateien mit diff
Unterschiede in Dateien mit diff diff datei1 datei2 vergleicht die Inhalte der beiden Dateien zeilenweise (bei Verzeichnissen die enthaltenen Dateien) und gibt die sich unterscheidenen Zeilen auf stdout
MehrRelationales Datenbanksystem Oracle
Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrZellenbasierende Berechnungen und Spreadsheets in Oracle 10g
Zellenbasierende Berechnungen und Spreadsheets in Oracle 10g Marc Bastien ORACLE Deutschland GmbH Geschäftstelle Hamburg Schlüsselworte OLAP, Spreadsheet, Model, Cell-Based-Access, Inter-Row Calculations
MehrSQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.
SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit
MehrStructured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken
Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data
MehrCSV mit reinem SQL & der Magie von JSON_TABLE einlesen
CSV mit reinem SQL & der Magie von JSON_TABLE einlesen 17. November 2016 Robert Marz Robert Marz Kunde Technical Architect mit datenbankzentrischem Weltbild its-people Portfoliomanager Datenbanken Blogredakteur
MehrIm Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird:
ALTER TABLE BEFEHLE Im Folgenden möchten wir Ihnen einige Beispiele aufzeigen, wie ALTER TABLE gemäß SQL92 verwendet wird: Fügt die Spalte Adresse zur Tabelle Kunden hinzu: ALTER TABLE Kunden ADD COLUMN
MehrInhaltsverzeichnis. Einleitung
vn Inhaltsverzeichnis Einleitung Kapitel 1: Eine Einführung in relationale Datenbanken 7 Was ist eine relationale Datenbank? 9 Verknüpfen der einzelnen Tabellen 10 Die Reihenfolge der Zeilen ist beliebig
MehrProseminar UNIX Tools. Ferdinand Beyer
Reguläre Ausdrücke Proseminar UNIX Tools Ferdinand Beyer Technische Universität München 08.11.2005 Ferdinand Beyer (TUM) Reguläre Ausdrücke 08.11.2005 1 / 39 Gliederung Allgemeines 1 Allgemeines 2 Notation
MehrUNIX Power Tools. Helferlein für den Alltag. Maximilian Haupt
UNIX Power Tools Helferlein für den Alltag Maximilian Haupt mhaupt@cs.uni-magdeburg.de Fakultät für Informatik, Otto-von-Guericke-Universität Magdeburg Magdeburg, 28. Oktober 2008 1 Reguläre Ausdrücke
MehrReguläre Ausdrücke. Michael Jäger. 4. April 2017
Reguläre Ausdrücke Michael Jäger 4. April 2017 Zeichenketten und Sprachen Ein Alphabet ist eine endliche Menge von Symbolen. Beispiele: 1. Σ 1 = {0, 1} 2. Σ 2 = {a, b, c, d, e, f, g, h, i, j, k, l, m,
MehrSQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrDieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. LIKE (Transact-SQL) SQL Server 2012 Dieser Artikel wurde noch nicht bewertet
MehrGrundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich
Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)
Mehr5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp
5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries
Mehr18.09.2010 / Software Freedom Day
18.09.2010 / Software Freedom Day xkcd Fortsetzung... Grundlegendes Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann.
MehrLexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
MehrOracle native json Support. Erste Schritte
Oracle native json Support Erste Schritte 1 Ausgangslage Als erster Schritt erstellen wir eine Tabelle, die wir für den weiteren Verlauf brauchen werden. Die Felder Id, Created und Username sind normale
MehrAbschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable<T>
Abschnitt 17: Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17. Beispiel: Die Klasse String (Teil 2), das Interface Comparable 17.1 Vergleich von Zeichenketten 17.2 Das Interface
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Reguläre Ausdrücke Wozu
MehrSIMD-Accelerated Regular Expression Matching
SIMD-Accelerated Regular Expression Matching Seminar - Implementierungstechniken für MMDBS Stefan Lachnit 29. Oktober 2018 Einleitung Reguläre Ausdrücke ermöglichen komplexe Abfragen bei Strings RE muss
MehrMySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.
MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt
MehrDie bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.
Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing
MehrSeminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie
Seminar 1 SQL Abfragen DML Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro 21 331 1235 Meisel Amelie meisel@cs.ro 22 331 1236 Krause Julia krause@cs.ro 21 332 1237 Rasch
MehrObjekt-relationales Datenbanksystem Oracle
Objekt-relationales Datenbanksystem Oracle 1 Benutzerdefinierte Datentypen 1.1 Unvollständige Typen create-incomplete-type OR 1.2 Kollektionstypen REPLACE TYPE type-name create-varray-type OR TYPE type-name
MehrPowerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes
Powerful PL/SQL: Collections indizieren mit VARCHAR2-Indizes Autor: Klaus Friemelt, MT AG DOAGNews Q1_2005 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der
MehrDas diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen
Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 3: Daten und Algorithmen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Datendarstellung durch Zeichenreihen 2. Syntaxdefinitionen
MehrErzeugung und Veränderung von Tabellen
Datenbanken - Objekte Erzeugung und Veränderung von Tabellen Objekt Tabelle View Sequence Index Synonym Basiseinheit zum Speichern; besteht aus Zeilen und Spalten; Logische Repräsentation; kann Teilmengen
MehrTheoretische Informatik. Reguläre Sprachen und Automaten
Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante
MehrSprachen sind durch folgenden Aufbau gekennzeichnet:
BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder
MehrSQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT
SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch
MehrShell-Scripting Teil 2 - Reguläre Ausdrücke
Shell-Scripting Teil 2 - Reguläre Ausdrücke Alexander Gordon Freie Universität Berlin 5. Vorlesung WS17/18 Outline Reguläre Ausdrücke Was sind reguläre Ausdrücke? Syntax Suchen mit grep/egrep Ersetzen
MehrÜbungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen
Dr. Theo Lettmann Paderborn, den 9. Januar 24 Abgabe 9. Januar 24 Übungen zur Vorlesung Modellierung WS 23/24 Blatt Musterlösungen AUFGABE 7 : Es sei der folgende partielle deterministische endliche Automat
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrAggregatfunktionen in SQL
Aggregatfunktionen in SQL Michael Dienert 14. April 2008 1 Definition von Aggregatfunktionen Ihren Namen haben die Aggregatfunktionen vom englischen Verb to aggregate, was auf deutsch anhäufen, vereinigen,
MehrSELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.
SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte
Mehr3.0 VU Formale Modellierung
3.0 VU Formale Modellierung Gernot Salzer Arbeitsbereich Theoretische Informatik und Logik Institut für Computersprachen SS 206 Inhalt 0. Überblick. Organisation 2. Was bedeutet Modellierung? 3. Aussagenlogik
Mehrids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage nach CHAR oder VARCHAR
ids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage Zusammenfassung Dieses Dokument beschreibt die Unterschiede zwischen CHAR und VARCHAR Datentyp sowie die Behandlung im SQL Michael Tiefenbacher
MehrDesigner Development Kit (DDK)
Designer Development Kit (DDK) Eigene Code-Generatoren im Designer Dr. Gudrun Pabst Trivadis GmbH Dr. Jürgen Menge Oracle GmbH Inhalt > Agenda Für besseren Durchblick. Zum Hintergrund... Installation,
Mehr1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)
1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Hafen(HNR, Ort, Grundsteinlegung) Matrose(MNR, Nachname, Geburtsdatum, Ausbildungsort Hafen.HNR) Schi(SNR, Name, Bruttoregistertonnen,
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 21 (29.7.2014) String Matching (Textsuche) II Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrWebengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13
Webengineering Reguläre Ausdrücke Marcel Vilas 1 DHBW - Stuttgart 1 RegExp - Allgemein Muster, die eine Menge von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln beschreiben Werden oft als Suchmuster
MehrÜbungspaket 12 Der Datentyp char
Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,
MehrWHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs
Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,
MehrReferenzielle Integrität SQL
Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet
Mehrdbis Praktikum DBS I SQL Teil 2
SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner
Mehr3.1 Reservierte Wörter
3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der
MehrRegeln ohne Ausnahme Rules Manager in Oracle Database 10g Release 2
Donnerstag, 10. November 2005 14h00, Bruno-Schmitz-Saal 18. Deutsche ORACLE-Anwenderkonferenz Regeln ohne Ausnahme Rules Manager in Oracle 10g Release 2 Heinz-Wilhelm Fabry ORACLE Deutschland GmbH, München
MehrStream EDitor SED und Reguläre Ausdrücke
Stream EDitor SED und Reguläre Ausdrücke ExactCODE New Thinking Store 11. Mai 2006 Was ist SED? sed steht für Stream EDitor eine Variante des Unix Editors ed und arbeitet auf Streams keine interaktiven
MehrWarum wird mein Index nicht benutzt?
Warum wird mein Index nicht benutzt? Index Nutzung-1 Tätigkeitsbereiche: Oracle Support Hotline: Mo-Fr 8.00 18.00 Uhr Erweiterung um eine Rufbereitschaft auch am Wochenende möglich Oracle IT-Consulting
MehrSQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro
MehrEinführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten
Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem
Mehrinsert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle
Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist
MehrEinführung SQL Data Definition Language (DDL)
Innsbruck Information System University of Innsbruck School of Management Universitätsstraße 15 6020 Innsbruck Einführung SQL Data Definition Language (DDL) Universität Innsbruck Institut für Wirtschaftsinformatik,
MehrPrakt. Datenbankprogrammierung. Sommersemester I,5: Aggregieren von Daten mit Gruppen-Funktionen
Prakt. Datenbankprogrammierung Sommersemester 2005 I,5: Aggregieren von Daten mit Gruppen-Funktionen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg Was sind Gruppen-Funktionen?
MehrBerechnung von Kennzahlen mit der SQL Model Clause
Berechnung von Kennzahlen mit der Thomas Mauch 12.07.2018 DOAG BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 AGENDA 1. Einführung 2. Syntax 3. Performance
MehrInfoBrief Nr. 67 August 2014
InfoBrief Nr. 67 Überblick Um Messstellen (Datenreihen) in Ort-Diagrammen mit GKS Pro darstellen zu können, müssen die beteiligten Messstellen (Datenreihen) über Koordinatenwerte in den Knoteneigenschaften
MehrIntroduction to Data and Knowledge Engineering. 6. Übung SQL
Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB
MehrFormale Sprachen. Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen. Rudolf Freund, Marian Kogler
Formale Sprachen Anwendungen formaler Sprachen Adressen, Kaffeeautomaten, Programmiersprachen Rudolf Freund, Marian Kogler (http://xkcd.com/208) Gültige Adressen: Favoritenstraße 9, 1040 Wien Reumannplatz
Mehr7. Datentypen in SQL 7-1. Datentypen und. einfache Funktionen in SQL
7. Datentypen in SQL 7-1 Datentypen und einfache Funktionen in SQL 7. Datentypen in SQL 7-2 Inhalt 1. Klassische SQL-Datentypen 2. Weitere SQL-Datentypen 7. Datentypen in SQL 7-3 Datentypen (1) Jede Spalte
MehrGROUP BY, HAVING und Sichten
GROUP BY, HAVING und Sichten Tutorübungen 09/33 zu Grundlagen: Datenbanken (WS 14/15) Michael Schwarz Technische Universität München 11.11 / 12.11.2014 1/12 GROUP BY HAVING Sichten Eine Tabelle studenten
MehrPrüfung Computation, Programming
Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,
MehrAbfragen mit Platzhaltern
Abfragen mit Platzhaltern Um für Abfragen Kriterien zu definieren, die Werte nach einem speziellen Muster auswählen, werden Platzhalter verwendet. Diese werden auch als Jokerzeichen bezeichnet und in sogenannten
MehrVordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 2001/ April 2002
Vordiplom Wirtschaftswissenschaften Allgemeine Informatik I WS 200/2002 2. April 2002 Name: Vorname: Matrikelnummer: Bearbeitungszeit: 20 Minuten Aufgabe Punkte Bewertung 2 a) 2 b) 2 c) 2 d) 2 e) 4 2 0
MehrOracle 10g Einführung
Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes
MehrZuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte
Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung
MehrDieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.
Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,
MehrSQL Developer Unit Tests
Perry Pakull Principal Consultant Trivadis AG BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 @PerryPakull Principal Consultant Trivadis AG in
MehrDB2 Codepage Umstellung
DB2 Codepage Umstellung Was bei einer Umstellung auf Unicode zu beachten ist Torsten Röber, SW Support Specialist DB2 April 2015 Agenda Warum Unicode? Unicode Implementierung in DB2/LUW Umstellung einer
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 20 (9.7.2018) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrÜbungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrSeminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.
Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu
MehrSQL-Vertiefung. VL Datenbanksysteme. Ingo Feinerer
SQL-Vertiefung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Gliederung Einführung SQL-Programmteile
Mehr