Mögliche Verwirrung: MySQL hat einen root-user. Dieser hat nichts mit dem Unixoiden "root" zu tun, sondern dient als Super-Admin nur für das DBMS.
mysqladmin verwenden und als root eine Beispieldatenbank anlegen:
mysqladmin -u root -h localhost create beispieldatenbank
Mit Passwortangabe (Passwort wird danach abgefragt):
mysqladmin -u root -p -h localhost create beispieldatenbank
mysql -u root -h localhost
mysql -u root -p -h localhost
Dem Beispielbenutzer alle Rechte auf die Beispieldatenbank geben (Benutzer wird damit erstellt)
GRANT ALL ON beispieldatenbank.* TO beispieluser@localhost IDENTIFIED BY "beispielpasswort";
Datenbanken anzeigen
show databases;
Verlassen
exit
mysql -u beispieluser -h localhost -p
Datenbanken anzeigen
show databases;
Tabellen anzeigen
SHOW TABLES FROM beispieldatenbank;
Datenbank auswählen (als aktive/zu benutzende)
use beispieldatenbank;
Tabellen anzeigen
show tables;
Verlassen
exit
Erstelle eine leere Tabelle mit den gleichen Spalten wie eine vorhandene:
CREATE TABLE neuetabelle LIKE originaltabelle;
Erstelle eine Tabelle aus einem SELECT-Statement einer vorhandenen:
CREATE TABLE neuetabelle AS SELECT * FROM originaltabelle;
Erstelle eine Tabelle wenn noch nicht vorhanden:
CREATE TABLE IF NOT EXISTS personen ( person_id INT(10) AUTO_INCREMENT PRIMARY KEY, vorname VARCHAR(50), nachname VARCHAR(50), geburtsdatum DATE, email VARCHAR(50), fk_adresse_id INT(10) updated TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, );
CREATE TABLE IF NOT EXISTS adressen ( adresse_id INT(10) AUTO_INCREMENT PRIMARY KEY, strasse VARCHAR(100), plz VARCHAR(10), ort VARCHAR(100), land VARCHAR(100), updated TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, );
INSERT INTO adressen (strasse,plz,ort,land) VALUES ('Musterstraße 13', '01234', 'Musterstadt', 'Musterland');
UPDATE adressen SET strasse = 'Neuestrasse', plz = 'Neueplz', ort = 'Neuerort', land = 'Neuesland';
SELECT * FROM personen;
SELECT person_id, vorname, nachname FROM personen;
SELECT id AS Personalnummer, vorname, nachname FROM personen;
SELECT DISTINCT vorname AS Vornamen FROM personen;
SELECT DISTINCT vorname AS Vornamen FROM personen ORDER BY vornamen;
SELECT vorname, nachname FROM personen WHERE id=5;
SELECT t1.nachname, t2.* FROM personen AS t1, adressen AS t2 WHERE t1.fk_adresse_id = t2.adresse_id;
SELECT personen LEFT JOIN adressen ON personen.fk_adresse_id = adressen.adresse_id;
SELECT * FROM personen WHERE fk_adresse_id IN (SELECT adresse_id FROM adressen);
RENAME TABLE personen TO person;
DROP TABLE person;
CREATE TABLE `kunde` ( region int NOT NULL, nr int NOT NULL, name char(30), ed date NOT NULL, ) PARTITION BY range(region) ( PARTITION p0 VALUES LESS THAN (10), PARTITION p1 VALUES LESS THAN (20), PARTITION p2 VALUES LESS THAN (30) );
CREATE TABLE `kunde` ( region int NOT NULL, nr int NOT NULL, name char(30), ed date NOT NULL ) PARTITION BY range(year(ed)) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN maxvalue );
CREATE TABLE `kunde` ( region int NOT NULL, nr int NOT NULL, name char(30), ed date NOT NULL ) PARTITION BY list(region) ( PARTITION p0 VALUES IN (1, 3, 5 ), PARTITION p1 VALUES IN (2, 4, 6 ), PARTITION p2 VALUES IN (10, 11, 12 ) );
CREATE TABLE `kunde` ( region int NOT NULL, nr int NOT NULL, name char(30), ed date NOT NULL ) PARTITION BY hash(region) PARTITIONS 4;
CREATE TABLE `kunde` ( nr int NOT NULL primary key, name char(30), ed date NOT NULL ) PARTITION BY key() PARTITIONS 4;
Copyright © 2024