Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp15/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp15/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2015 - D - DDS

Data Definition Statements

Create

Das Create Statement sorgt für die Erstellung eines spezifizierten Objekts. Je nach Objekttyp, ändert sich die vorrausgesetzte Struktur des zu analysierenden Queries. Handelt es sich beim Typen um eine 'Database', so findet man als Attribut nur einen String vor. Bei einer View erweitert sich die Attributliste um ein Select Statement, in der Query selbst getrennt durch dem Delimiter 'AS'. Bei einer Tabelle liegt statt dem Select Statement ein Vektor einer Spalteninformation vor. Diese legt die Eigenschaft einer Spalte durch Vergabe von optionalen Schlüsselwörtern fest ('primary key', 'auto_increment', 'not null' und 'comment').

pub struct CreateTableStatement {
    pub tablename: String,
    pub columns: Vec<ColumnInfo>,
}
pub struct ColumnInfo {
    pub columnname: String,
    pub datatype: SqlType,
    pub primary: bool,
    pub auto_increment: bool,
    pub not_null: bool,
    pub comment: Option<String>,
}

Alter

Das Alter Statement führt ausgewählte Operationen an einer existierenden Tabelle aus. Auch hier ist ein String für den Namen als Attribut vorgesehen, gefolgt von einer Enumeration von Anweisungen. Hierbei wird zwischen 'ADD', 'DROP' und 'MODIFY' unterschieden. Erkennt der Parser einen 'ADD' oder 'MODIFY' als Operator, so müssen Spalteninformationen folgen, während bei 'DROP' ein String für die zu löschende Spalte erforderlich ist.

pub struct AlterTableStmt {
    pub tablename: String,
    pub operation: AlterOp
}
pub enum AlterOp {
    Add(ColumnInfo),
    Drop(String),
    Modify(ColumnInfo)
}

Drop

Das Drop Statement löscht ein Objekt vom angegebenen Typ. Als einziges Attribut wird hier ein String erwartet.

pub enum DropStmt {
    Table(String),
    View(String),
    Database(String)
}

Autor: Quoc Tri Tran
Gruppe: Quoc Tri Tran, Hendrik Langebrake


Page last modified on September 24, 2015, at 02:37 PM