Die relationale Abfragesprache SQL Structured Query Language

Ähnliche Dokumente
Die Datenmanipulationssprache SQL

Prakt. Datenbankprogrammierung. Sommersemester 2005

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Erzeugen von Constraints

Views erzeugen. Datenbank - Objekte. Wozu braucht man Views? Was ist eine View?

Variable. Interaktive Skripte

Skripte schreiben. Überblick SQL*Plus. Einloggen in SQL*Plus. Tabellenstrukturen anzeigen

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

Username and password privileges. Rechteverwaltung. Controlling User Access. Arten von Rechten Vergabe und Entzug von Rechten DBS1 2004

Erzeugung und Veränderung von Tabellen

SQL-Einführung Teil 2

Querying Data with Transact-SQL MOC 20761

Datenbanken Labor, MI : Übung 1 SQL - Abfragen Patrick Lipinski

Art der Info: Technische Background Info Teil 3 (April 2002)

Abfragen (Queries, Subqueries)

Oracle 8i und 9i New Features. DOAG November Peter Jensch, Trivadis GmbH

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

SQL Intensivpraktikum SS 2008

Trigger schreiben. Überblick über Trigger. Datenbank Trigger: Beispiel. Aufbau eines Triggers

Die Datendefinitionssprache SQL

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

SQL Intensivpraktikum SS 2008

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Objektorientierte PL/SQL-Programmierung für RDBMS

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

Oracle Analytic Functions

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Übungsaufgaben mit Lösungen

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

SQL (Structured Query Language) Schemata Datentypen

Oracle 10g Flashback. Andrea Held

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

Art der Info: Technische Background Info Teil 1 (April 2002)

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

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

ACCESS SQL ACCESS SQL

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

SQL. Allgemeines CREATE TABLE DROP TABLE ALTER TABLE INSERT INTO UPADTE DELETE SELECT

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

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

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

Cassandra Query Language (CQL)

Arbeit mit zusammengesetzten Datentypen

DB1. DB SQL-DQL 1 Mario Neugebauer

Finite Difference Method (FDM)

THEMA: GUT VORBEREITET IST HALB ZERTIFIZIERT ANTWORTEN ZUR SAS VISUAL ANALYTICS-ZERTIFIZIERUNG" THOMAS WENDE

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

Multi-temporale Datenbank Features in Oracle 12c Philipp Salvisberg

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Oracle12c für Entwickler

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Exercise (Part I) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Relationales Datenbanksystem Oracle

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Fortgeschrittene SQL-Techniken für APEX-Formulare und Reports

Datenschutz: Zugriffsrechte in SQL

SÄTZE MIT VARIABLER LÄNGE

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL structured query language

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Transaktionen in der Praxis. Dr. Karsten Tolle

Tube Analyzer LogViewer 2.3

Inhalt. Behandlung von Views durch den CBO View Merging Predicate Pushing Complex View Merging Hints in Views Globale Hints. Dr.

5.8 Bibliotheken für PostgreSQL

ANFRAGEOPTIMIERUNG IN POSTGRESQL

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

SQL-Loader. Prof. Dr. Waldemar Rohde Dipl.-Ing. Jörg Höppner

Zusammengesetzte Datentypen

Microsoft Access 2010 SQL nutzen

3.17 Zugriffskontrolle

Garten - Daten Bank. - survival pack -

NoSQL mit Postgres 15. Juni 2015

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

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

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Übersicht der wichtigsten MySQL-Befehle

Aktuelle Entwicklungen

Bayesian Networks. Syntax Semantics Parametrized Distributions Inference in Bayesian Networks. Exact Inference. Approximate Inference

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Indexing und Performance Tuning

4. Datenbanksprache SQL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

General info on using shopping carts with Ogone

Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

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

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

SQL. Fortgeschrittene Konzepte Auszug

prorm Budget Planning promx GmbH Nordring Nuremberg

Organisatorisches. Unit1: Intro and Basics. Bewertung. About Me.. Datenorientierte Systemanalyse. Gerhard Wohlgenannt

Transkript:

Die relationale Abfragesprache SQL Structured Query Language Übersicht Einfache Abfragen SQL*Plus Auswahlbedingungen (where-klausel) Ein-Zeilen-Funktionen, Gruppenfunktionen Gruppierung von Daten Unter-Abfragen (Subqueries) Abfragen auf mehrere Tabellen Seite 1 Die relationale Sprache SQL SQL = Structured Query Language seit Mitte der 80er Jahre entwickelt deskriptive, mengenorientierte Sprache selbständige Sprache zur Datenmanipulation und zur Datendefinition sowie zur Definition externer Sichten auch eingebettet in Wirtssprache (COBOL, FORTRAN, PL/1, PASCAL, C, ADA, ) verfügbar Seite 2

Relational Database Definition A relational database is a collection of relations or two-dimensional tables Database Table Name: EMP EMPNO ENAME JOB DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 Table Name: DEPT DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Seite 3 Relational Database Terminology 2 3 4 1 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------------- ------------ --------------------- -------- ---------------- ----------- -------------- ----------- 6 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-81 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 5 Seite 4

Relating Multiple Tables Each row of data in a table is uniquely identified by a primary key (PK) You can logically relate data from multiple tables using foreign keys (FK) Table Name: EMP Table Name: DEPT EMPNO ENAME JOB DEPTNO 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON primary key foreign key primary key Seite 5 Relational Database Properties A relational database Can be accessed and modified by executing SQL statements Contains a collection oftables with no physical pointers Uses a setof operators Seite 6

Communicating with a RDBMS Using SQL SQL statement is entered SQL> SELECT loc 2 FROM dept; Statement is sent to database Database Data is displayed LOC ------------- NEW YORK DALLAS CHICAGO BOSTON Seite 7 our focus SQL Statements SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE COMMIT ROLLBACK SAVEPOINT GRANT REVOKE Data retrieval Data manipulation language (DML) Data definition language (DDL) Transaction control Data control language (DCL) Seite 8

DEPT EMP Tables Used in SCOTT-DB EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 1500 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-81 950 30 DEPTNO 7521 DNAME WARD LOC SALESMAN 7698 22-FEB-81 1250 500 30 ---------7902 -------------- FORD ---------- ANALYST 7566 03-DEC-81 SALGRADE 3000 20 107369 ACCOUNTING SMITH NEW CLERK YORK 7902 17-DEC-80 GRADE 800 LOSAL HISAL 20 207788 RESEARCH SCOTT DALLAS ANALYST 7566 09-DEC-82 --------- 3000 --------- --------- 20 30 7876 SALES ADAMS CHICAGO CLERK 7788 12-JAN-83 11001 700 1200 407934 OPERATIONS MILLER BOSTON CLERK 7782 23-JAN-82 13002 1201 1400 10 3 1401 2000 4 2001 3000 5 3001 9999 Seite 9 Basic SELECT Statement SELECT FROM identifies what columns identifies which table SELECT [DISTINCT] {*, column [alias],} FROM table; Seite 10

Writing SQL Statements SQL statements are not case sensitive SQL statements can be on one or more lines Keywords cannot be abbreviated or split across lines Clauses are usually placed on separate lines Tabs and indents are used to enhance readability Seite 11 Selecting All Columns SQL> SELECT * 2 FROM dept; DEPTNO DNAME LOC --------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON Seite 12

Selecting Specific Columns SQL> SELECT deptno, loc 2 FROM dept; DEPTNO LOC --------- ------------- 10 NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON Seite 13 Column Label Defaults Default justification Left: Date and character data Right: Numeric data Default display: Uppercase Seite 14

Arithmetic Expressions Create expressions on NUMBER and DATE data types by using arithmetic operators Operator + - * / Description add subtract multiply divide Seite 15 Using Arithmetic Operators SQL> SELECT ename, sal, sal+300 ENAME SAL SAL+300 ---------- --------- --------- KING 5000 5300 BLAKE 2850 3150 CLARK 2450 2750 JONES 2975 3275 MARTIN 1250 1550 ALLEN 1600 1900 14 rows selected. Seite 16

Operator Precedence Multiplication and division take priority over addition and subtraction Operators of the same priority are evaluated from left to right Parentheses are used to force prioritized evaluation and to clarify statements * / + _ Seite 17 Operator Precedence SQL> SELECT ename, sal, 12*sal+100 ENAME SAL 12*SAL+100 ---------- --------- ---------- KING 5000 60100 BLAKE 2850 34300 CLARK 2450 29500 JONES 2975 35800 MARTIN 1250 15100 ALLEN 1600 19300 14 rows selected. Seite 18

Using Parentheses SQL> SELECT ename, sal, 12*(sal+100) ENAME SAL 12*(SAL+100) ---------- --------- ----------- KING 5000 61200 BLAKE 2850 35400 CLARK 2450 30600 JONES 2975 36900 MARTIN 1250 16200 14 rows selected. Seite 19 Defining a Null Value A null is a value that is unavailable, unassigned, unknown, or inapplicable A null is not the same as zero or a blank space SQL> SELECT ename, job, comm ENAME JOB COMM ---------- --------- --------- KING PRESIDENT BLAKE MANAGER TURNER SALESMAN 0 14 rows selected. Seite 20

Null Values in Arithmetic Expressions Arithmetic expressions containing a null value evaluate to null SQL> select ename NAME, 12*sal+comm 2 from emp 3 WHERE ename='king'; NAME 12*SAL+COMM ---------- ----------- KING Seite 21 Defining a Column Alias Renames a column heading Is useful with calculations Immediately follows column name; optional AS keyword between column name and alias Requires double quotation marks if it contains spaces or special characters or is case sensitive Seite 22

Using Column Aliases SQL> SELECT ename AS name, sal salary NAME SALARY ------------- --------- SQL> SELECT ename "Name", 2 sal*12 "Annual Salary" 3 FROM emp; Name Annual Salary ------------- ------------- Seite 23 Concatenation Operator Concatenates columns or character strings to other columns Is represented by two vertical bars ( ) Creates a resultant column that is a character expression Seite 24

Using the Concatenation Operator SQL> SELECT ename job AS "Employees" Employees ------------------- KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN 14 rows selected. Seite 25 Literal Character Strings A literal is a character, expression, or number included in the SELECT list Date and character literal values must be enclosed within single quotation marks Each character string is output once for each row returned Seite 26

Using Literal Character Strings SQL> SELECT ename ' ' 'is a' ' ' job 2 AS "Employee Details" 3 FROM emp; Employee Details ------------------------- KING is a PRESIDENT BLAKE is a MANAGER CLARK is a MANAGER JONES is a MANAGER MARTIN is a SALESMAN 14 rows selected. Seite 27 Duplicate Rows The default display of queries is all rows, including duplicate rows SQL> SELECT deptno DEPTNO --------- 10 30 10 20 14 rows selected. Seite 28

Eliminating Duplicate Rows Eliminate duplicate rows by using the DISTINCT keyword in the SELECT clause SQL> SELECT DISTINCT deptno DEPTNO --------- 10 20 30 Seite 29