![[sql_merged.pdf]] SQL Tabellen sind multimengen von tupeln Duplikate möglich!!! ## SQL Data Definition Language DDL 1. CREATE TABLE: zum Erstellen einer neuen Tabelle 2. ALTER TABLE: zum Ändern einer bestehenden Tabelle 3. DROP TABLE: zum Löschen einer Tabelle ### CREATE TABLE ``` CREATE TABLE table_name ( column_name1 data_type1 constraints1, ... ) ``` names = Namen type = Datentyp INTEGER, CHAR(n), DATE... constraints = NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY... FOREIGN KEY A REFERENCES B(A) ### ALTER TABLE ``` ALTER TABLE table_name #vor allen Befehlen --- ADD column_name data_type [constraint]; --- DROP COLUMN column_name; --- ALTER COLUMN column_name new_data_type; --- ADD CONSTRAINT constraint_name constraint_type (column_name); --- DROP CONSTRAINT constraint_name; ``` DROP TABLE (IF EXISTS) table_name : löscht Tabelle + Daten ### CREATE VIEW Erstellt Relation mit der gearbeitet werden kann Bsp.: ``` CREATE VIEW Langzeit_Studierende AS SELECT * FROM Student WHERE Semester >= 10; ``` DROP VIEW Name zum löschen ### Indexe Effizienteres Suchen in Tabellen ``` CREATE [UNIQUE] INDEX ON ( []{, []}) ``` UNIQUE für eindeutigen Index optional Relationsname = Tabelle Attributname = Spalte Ordnung = ASC / DESC Bsp.: ``` CREATE UNIQUE INDEX idx_student_semester ON Student (Semester ASC); ``` DROP INDEX Name zum löschen