|
|
SQL Befehle
Wir wollen:
Eine Datenbank ansprechen.
Tabellen anlegen
Werte einfügen
Werte auslesen
Dazu bedienen wir uns der Sprache SQL (Standard Query Language) deren Syntax an englisch sprachigen Begriffen angelehnt ist.
Die Anweisungen unterteilt man in zwei Gruppen:
- DDL Datat Definition Language [DB, Tabellen erstellen]
- DML Data Manipulation Language [Abfragen, ändern & einfügen von Werten]
Die Befehle werden mit ; abgeschlossen.
Hier nun die SQL Befehle um unsere Anforderungen umzusetzen:
SQL Befehl
|
Beschreibung
|
Syntax
|
USE |
Ansprechen der Datenbank (MySQL ist ein Datenbank
Server der mehrere DB's verwalten kann) |
|
CREATE |
Datenbanken, Index, Tabellen erzeugen |
- CREATE DATABASE datenbankname
- CREATE INDEX index_name ON tabellen_name
- CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabellen_name [(create_definition,...)]
[table_options] [select_statement]
- create_definition: spalten_name type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [PRIMARY KEY] [reference_definition] oder PRIMARY
KEY (index_spalten_name,...) oder KEY [index_name] (index_spalten_name,...) oder INDEX [index_name] (index_spalten_name,...) oder UNIQUE [INDEX] [index_name]
(index_spalten_name,...) oder FULLTEXT [INDEX] [index_name] (index_spalten_name,...) oder [CONSTRAINT symbol] FOREIGN KEY index_name (index_spalten_name,...)
[reference_definition] oder CHECK (expr)
|
INSERT |
Werte einfügen |
- INSERT INTO tabellen_name [(spalten_name,...)] VALUES (expression,...),(...),...
- INSERTINTO tabellen_name SET spalten_name=expression, spalten_name=expression,
...
|
SELECT |
Inhalte auslesen |
- SELECT select_expression,...FROM table_references WHERE where_definition
ORDER BY spalten_name [ASC | DESC]
|
Exemplarische SQL Statments
CREATE DATABASE cd_nummer;
USE cd_nummer;
CREATE TABLE cdsammlung
(
titel VARCHAR(64) NOT NULL,
interpret VARCHAR(32) NOT NULL,
spiellaenge VARCHAR(8) NULL,
erscheinungsjahr TINYINT(4) NULL,
kaufdatum DATE NULL,
preis DECIMAL(5,2) NULL
)
INSERT INTO cdsammlung
VALUES
( 'master of the rings','Helloween','45:12',1994,sysdate(),12.90),
('stone temple pilots','stone temple pilots','56:12',1994,sysdate(),23.99);
INSERT INTO cdsammlung (titel,interpret)
VALUES
('Hallelulija','Westernhagen'),
('Mit Pfefferminz bin ich dein Prinz','Westernhagen'),
('Matrix','Soundtrack'),
('Im Namen der Rose','Soundtrack'),
('Pulp Fiction','Soundtrack'),
('Vom Winde verweht','Soundtrack');
INSERT INTO cdsammlung VALUES
('indiana','Nationalgalerie','55:02',1993,'1995-05-22',22.50);
INSERT INTO cdsammlung (titel,preis,interpret)
VALUES
('Jar of Flies',33.32,'Alice in Chains'),
('Yes',12.99,'TALK'), ('Hallelulija',12.67,'Westernhagen'),
('Mit Pfefferminz bin ich dein Prinz',22.34,'Westernhagen'),
('Matrix',22.45,'Soundtrack'),
('Im Namen der Rose',18.99,'Soundtrack'),
('Pulp Fiction',34.45,'Soundtrack'),
('Vom Winde verweht',12.90,'Soundtrack');
INSERT INTO cdsammlung
SET
titel = 'Afro Cuban All Star',
interpret = 'All Star',
preis=15.99;
SELECT *
FROM cdsammlung;
SELECT titel,interpret
FROM cdsammlung;
SELECT titel,interpret
FROM cdsammlung
ORDER BY title
SELECT interpret AS Künstler
FROM cdsammlung;
SELECT interpret AS Künstler , preis AS kosten
FROM cdsammlung
WHERE preis = 15.99;
SELECT interpret AS Künstler , preis AS kostenüberfünfzehnmark
FROM cdsammlung
WHERE preis > 15
ORDER BY interpret;
SELECT count(*)
FROM cdsammlung;
|
|