💻
M105 - Datenbanken mit SQL bearbeiten
  • Intro
  • 🗓️Organisatorisches
  • 🛠️Infrastruktur und Tools
  • ❓FAQ
  • Tag 1
    • 🏁Tagesziele
    • 📖💡 Datenbanklehre
    • 📖💡 DDL – Data Definition Language
    • 📖💡 DDL - Constraints
    • 💬Northwind Sample Database
    • 📖DML - Datenmanipulation
    • ❓Hilfsmittel
      • ❓Datentypen
  • Tag 2
    • 🏁Tagesziele
    • 💡DML - Aufgaben
      • ❓Hilfsmittel
    • 📖Transaktionssteuerung
      • 💡Transaktionen - Aufgaben (optional)
    • 📖DQL - Select-Anweisungen
    • 💡DQL - Aufgaben
    • 📖DQL - Join
  • Tag 3
    • 🏁Tagesziele
    • 📖DQL - Komplexere Abfragen
    • 💡DQL - Aufgaben
    • 📖 Views
    • 💡Views - Aufgaben
  • Tag 4
    • 🏁Tagesziele
    • 📖💡 DCL - Data Control Language
    • 📖💡 Funktionen
    • 📖Datenbanksicherung
    • 💡SQL Projektarbeit
      • ❓Hilfsmittel
  • Tag 5
    • 🏁Tagesziele
    • 📖💡 Datenbank-Programmierung
      • 💡Programmierung - Aufgaben (optional)
    • 📖💡 Befehlszeilenanwendung
Powered by GitBook
On this page
  • Datenbank anlegen
  • Tabelle anlegen
  • Restriktionen bei Oracle
  • 💡 Aufgabe 3
  • Tabelle ändern
  • Spalte hinzufügen
  • Spalte ändern (z.B. Datentyp oder NOT NULL)
  • Spalte löschen
  • Tabelle löschen
  • Im Vergleich dazu das Löschen von Tabelleninhalt
  • 💡 Aufgabe 4

Was this helpful?

Export as PDF
  1. Tag 1

📖💡 DDL – Data Definition Language

Die Data Definition Language (DDL) wird zum Anlegen, Warten und Löschen von Datenbankobjekten verwendet.

Previous📖💡 DatenbanklehreNext📖💡 DDL - Constraints

Last updated 3 years ago

Was this helpful?

DDL-Kommandos werden nicht protokolliert (kein Rollback!) und setzen entsprechende Berechtigungen voraus.

Datenbankobjekte sind Objekte, die ausschliesslich mit CREATE angelegt werden.

Datenbank anlegen

Eine neue Datenbank wird in der master-Datenbank angelegt:

USE master;

Bevor Datenbankobjekte angelegt werden können, muss das "Gefäss" dafür existieren: Die Datenbank.

CREATE DATABASE database_name;

Datenbanken lassen sich nur als Mitglied von bestimmten Gruppen bzw. als Inhaber von bestimmten Rollen anlegen. Nach dem Anlegen einer Datenbank ist diese betriebsbereit, aber noch ohne Strukturen und ohne Inhalt.

Mit USE database_name wird bestimmt, dass auf der DB-Instanz diese DB verwendet wird.

CREATE DATABASE database_name
GO
USE database_name;

GO: Batch-Trennzeichen, ist keine SQL-Anweisung, sondern Editor-Befehl, eine Steueranweisung: Stapel von SQL-Anweisungen werden einzeln zum Server geschickt.

RETURN: Bewirkt sofortige Beendigung eines Stapels und springt zur nächsten Anweisung nach dem GO.

Datenbank umbenennen

ALTER DATABASE database_name MODIFY Name = other_database_name;

Tabelle anlegen

Mit dem Befehl CREATE TABLE kann eine neue Tabelle erstellt werden. Der Befehl ist nach dem folgenden Schema aufgebaut:

CREATE TABLE table_name (
		spalte1 datentyp [ NULL | NOT NULL ] ,
		spalte2 datentyp [ NULL | NOT NULL ] ,
		spaltex datentyp [ NULL | NOT NULL ]
);

Beispiel:

CREATE TABLE kurse (
    kursid int NOT NULL, 
    kursname varchar(50) NOT NULL, 
    beginn smalldatetime, 
    ende smalldatetime
);

Alternative: Tabelle über SELECT anlegen

# SQL Server
SELECT * INTO neuetabelle FROM … ;

# Oracle
CREATE TABLE neuetabelle as SELECT … ;

Restriktionen bei Oracle

  • Tabellenname muss mit einem Buchstaben beginnen und darf nur A-Z, a-z, 0-9, _, $ und # enthalten

  • Tabellenname darf maximal 30 Zeichen lang sein

💡 Aufgabe 3

Öffne die Datei in Azure Data Studio und löse die Aufgaben.

Tabelle ändern

Spalte hinzufügen

ALTER TABLE table_name ADD spalte datentyp [NOT NULL];

Spalte ändern (z.B. Datentyp oder NOT NULL)

ALTER TABLE table_name ALTER COLUMN spalte datentyp [NOT NULL];
ALTER TABLE table_name MODIFY COLUMN spalte datentyp [NOT NULL];

Spalte löschen

ALTER TABLE table_name DROP COLUMN spalte;

Tabelle löschen

Dieser Befehl löscht die gesamte Tabellenstruktur aus der Datenbank:

DROP TABLE table_name;

Im Vergleich dazu das Löschen von Tabelleninhalt

TRUNCATE (DDL)

Löscht alle Datensätze einer Tabelle bedingungslos. Es ist eine sogenannte bulk-Operation (Massenoperation) und wird nicht protokolliert, weil es sich um ein einen DDL-Befehl handelt.

TRUNCATE TABLE table_name;

DELETE (DML)

DELETE FROM table_name 
[WHERE ...];

💡 Aufgabe 4

Öffne die Datei in Azure Data Studio und löse die Aufgaben.

Löscht alle Datensätze oder selektive (dazu mehr unter ). Diese Operation wird protokolliert, da es sich um eine DML-Anweisung handelt.

DML
4KB
M105_Aufgabe3_Datenbank_erstellen.ipynb
Aufgabe 3 - Datenbank erstellen
4KB
M105_Aufgabe4_Datenbank_veraendern.ipynb
Aufgabe 4 - Datenbank verändern