Files
ObsidianVault/SS2026/Datenbanken und Informationssysteme/SQL/SQL.md
T

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