MySQL Befehle / Fehler


_____________________________________________________________
MySQL ist eines der weltweit verbreitetsten relationalen Datenbankverwaltungssysteme. Es ist als Open-Source-Software sowie als kommerzielle Enterpriseversion für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für viele dynamische Webauftritte. MySQL ist ein populäres relationales Datenbank Management System und Freie Software. Es wird oft in Verbindung mit Web-Applikationen (sowie viele PHP Seiten) verwendet.
_____________________________________________________________

Um die Verbindung zu einer MySQL Datenbank herzustellen sind folgende Daten erforderlich:

  • Adresse des SQL Servers
  • Benutzername des Users
  • Passwort des Users


    Diese Daten stellt der Internet-Provider bereit oder werden im System selbst festgelegt.

Wenn Jemand lokal mit SQL arbeiten will muss natürlich der Server gestartet werden. Unter Linux :
#/etc/init.d/mysql start

Häufig wird für die einfache Verwaltung vom Provider PHPMyAdmin bereit gestellt.

Nach erfolgreichem Login kann mit Tabellen (table), Spalten (column) und Reihen (row) gearbeitet werden.

Anzeige aller User die in MySQL aktiv sind:

Dafür muss erst MySQL gestartet werden. Dann ein

SELECT USER from mysql.user

User anlegen

Das Erstellen eines neuen Benutzers ist vergleichsweise einfach. Ersetze in dem nachfolgendem Befehl einfach die Werte “benutzer” und “passwort”:

CREATE USER 'benutzer'@'localhost' IDENTIFIED BY 'passwort';

Damit hast du einen Benutzer erstellt. Dieser hat allerdings noch keine Berechtigungen auf irgendeine Datenbank oder Tabelle.

MySQL hält die Rechte normalerweise im Speicher vor, damit nicht jedes Mal, wenn sich ein Benutzer an der Datenbank anmeldet (was im Zweifel sehr oft sein kann), langsame I/O Operationen durchgeführt werden müssen. Um diese Kopie der Privilegien im Arbeitsspeicher zu updaten, solltest du nach jeder Änderung einmal das Kommando:

FLUSH PRIVILEGES;

ausführen. Vergisst du das Kommando, kann es sein das du dich mit den neuen (oder geänderten) Zugangsdaten noch nicht an dem Datenbankserver anmelden kannst.

Informationen zum System und MySQL Infos gibt es über den Befehl STATUS
Bitte beachten: SQL Befehle müssen mit einem Semikolon beendet werden.

DATENBANK erstellen

Der Befehl heisst create database;

sysvorOrt /home/michi # mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.32 Gentoo Linux mysql-8.0.32-r2

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1234             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0,00 sec)

mysql> create database test;
Query OK, 1 row affected (0,01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1234             |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
6 rows in set (0,00 sec)

Das Erstellen einer neuen Datenbank unter MySQL oder MariaDB ist genauso einfach, wie das auflisten der bestehenden Datenbanken. Nutze einfach das SQL Kommando

‚CREATE DATABASE <name>;‘

um eine neue Datenbank mit dem Namen ‚<name>‘ zu erstellen. Um mit der Datenbank zu arbeiten wird ein USE <datenbankname>; verwendet

mysql> USE db1234;
Database changed

Vorhandene Datenbanken anzeigen lassen: SHOW DATABASES;


Anlegen einer Tabelle:
CREATE TABLE name_der_tabelle (Bezeichnung Datentyp, 2.Bezeichnung, Datentyp) ;

CREATE TABLE table_name (
    column_name data_type
);

mysql> CREATE TABLE einkommen (Name text, Wert int);
Query OK, 0 rows affected (0,03 sec)

Tabellen anzeigen:

mysql> SHOW TABLES;
+——————+|
Tables_in_db1234 |
+——————+
| einkommen |
+——————+
1 row in set (0,00 sec)

Bei mehreren vorhandenen Datenbanken soll noch FROM datenbankname eingefügt werden

mysql> SHOW TABLES FROM db1234;
+------------------+
| Tables_in_db1234 |
+------------------+
| einkommen |
+------------------+
1 row in set (0,00 sec)

Die Übersicht zur Tabellenstruktur einer MySQL Tabelle erreicht man mit der nächsten Zeile.

SHOW FIELDS FROM tabellen_name FROM db;
— oder
SHOW COLUMNS FROM db.tabellen_name;

Felder anzeigen lassen:

mysql> SHOW FIELDS FROM einkommen FROM db1234;
+——-+——+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+——+——+—–+———+——-+
| Name | text | YES | | NULL | |
| Wert | int | YES | | NULL | |
+——-+——+——+—–+———+——-+
2 rows in set (0,01 sec)

CREATE TABLE englisch (
    englisch VARCHAR(255)
);

Eine Spalte hinzufügen:
Die Tabelle uebersetzung wird ausgewählt und die Spalte englisch angelegt:

ALTER TABLE uebersetzung
ADD englisch VARCHAR(255);

Tabelle umbenennen:

RENAME TABLE alte_tabellenname TO neue_tabellenname;

Tabelle löschen
Um eine Tabelle zu löschen, benötigen Sie den Befehl DROP TABLE.

DROP TABLE  tbl_namen;

Wie bei dem Befehl DROP DATABASE gibt es auch hier die Option IF EXISTS. DROP TABLE IF EXISTS tbl_namen;

Datentyp einer Spalte ändern
Um nachträglich den Datentyp einer Spalte zu ändern, verwendet man ebenfalls den Befehl
ALTER TABLE, allerdings jetzt mit der Option MODIFY.
ALTER TABLE tbl_namen MODIFY (spalte2 varchar(50));

Wenn der Spaltenname geändert werden soll, muss die Option CHANGE verwendet
werden.
ALTER TABLE tbl_namen CHANGE spalte2 neuername varchar(50);

Anzeige nach Änderung:

Die Data Manipulation Language (kurz DML) umfasst Operationen wie INSERT, UPDATE und DELETE:

Du kannst in MySQL mehrere Werte in eine Tabelle auf verschiedene Arten eintragen, je nachdem, ob du einzelne Zeilen oder mehrere Zeilen gleichzeitig hinzufügen möchtest. Hier sind zwei gängige Methoden:

1. Einzelne Zeilen einfügen:
Du kannst einzelne Datensätze nacheinander mit dem INSERT INTO-Befehl einfügen. Zum Beispiel:

INSERT INTO deine_tabelle (spalte1, spalte2, spalte3)
VALUES ('Wert1', 'Wert2', 'Wert3');
INSERT INTO uebersetzungen (englisch, deutsch) VALUES ("19sc", "19 fM");

Du musst die Namen der Spalten und die entsprechenden Werte angeben.

2. Mehrere Zeilen einfügen:
Du kannst auch mehrere Zeilen gleichzeitig mit dem INSERT INTO-Befehl einfügen, indem du mehrere Wertetupel in der VALUES-Klausel angibst. Zum Beispiel:

INSERT INTO deine_tabelle (spalte1, spalte2, spalte3)
VALUES ('Wert1', 'Wert2', 'Wert3'),
       ('Wert4', 'Wert5', 'Wert6'),
       ('Wert7', 'Wert8', 'Wert9');

Stelle sicher, dass du die Spaltennamen und die Werte in der richtigen Reihenfolge angibst und jedes Tupel in Klammern setzt.

Denke daran, dass du in den Beispielen „deine_tabelle“ durch den tatsächlichen Namen deiner Tabelle und „spalte1“, „spalte2“, usw. durch die tatsächlichen Spaltennamen ersetzen musst.

Zusätzlich dazu kannst du auch die „INSERT INTO … SELECT“-Syntax verwenden, um Daten aus einer anderen Tabelle auszuwählen und in die gewünschte Tabelle einzufügen.

weiter zu https://www.prog-lernen.de/mysql-mit-php/