70 lines
1.4 KiB
Markdown
70 lines
1.4 KiB
Markdown
![[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 <name>
|
|
ON <Relationsname> (<Attributname> [<Ordnung>]{, <Attributname>
|
|
[<Ordnung>]})
|
|
```
|
|
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
|