Zoeken op website

MySQL Basis Database Beheer Commando's - Deel I


Database is een gestructureerde set gegevens die elektronisch wordt opgeslagen. Het concept van een database was al bij onze voorouders bekend toen er nog geen computers waren, maar het maken en onderhouden van een dergelijke database was een erg vervelende klus. Als u in een handmatige database van bijvoorbeeld 100 pagina's moet zoeken naar alle werknemers met een salaris van minder dan 10.000, bedenk dan eens hoeveel moeilijk het zou zijn geweest. .

In de wereld van vandaag kun je niet meer ontsnappen aan Database. Op dit moment werken miljoenen databases over de hele wereld om allerlei soorten gegevens op te slaan en op te halen, of het nu gaat om strategische gegevens, personeelsgegevens of webtechnologieën.

Database wordt vaak back-endproces genoemd, omdat het noch zichtbaar is voor de eindgebruiker, noch omdat Eindgebruiker rechtstreeks interactie heeft met de database. Ze werken aan het front-end-proces, namelijk PHP, VB, ASP.NET, etc. en vragen de front-end om met de database om te gaan in de back-end.

Er zijn verschillende databaseservers en -clients beschikbaar, zoals Oracle, MySQL, MySQLi, MariaDB, MongoDB etc. De syntaxis van al deze is min of meer minder hetzelfde. Als je er één onder de knie krijgt, betekent dit dat je controle krijgt over de meeste ervan en dat het leren van de query's van een database heel gemakkelijk en leuk is.

Laten we beginnen met eenvoudige zoekopdrachten in de database. We zullen MySQL gebruiken, dat standaard bij de meeste Linux-distributies wordt geleverd. U kunt het handmatig vanuit de repository installeren, als het in uw geval niet standaard is geïnstalleerd.

Een databasequery is een eenvoudig stukje code dat naar de database wordt gestuurd om, indien nodig, een aangepast en verfijnd resultaat te krijgen.

Installeer MySQL-database

Gebruik “yum” of “apt” pakketbeheerder om MySQL Database te installeren.

yum install mysql mysql-client mysql-server  (on Yum based Systems)

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Start MySQL

Start de MySQL databaseservice als:

service mysqld start
or
service mysql start

Als u een MySQL-database installeert, gaat u naar de configuratie waar u wordt gevraagd het admin-wachtwoord in te stellen, enzovoort. Als u klaar bent met het installeren en starten van de server, gaat u naar uw MySQL prompt.

mysql -u root -p

Vervang root door uw geconfigureerde gebruikersnaam en voer wachtwoord in wanneer daarom wordt gevraagd. Als de inloggegevens correct zijn, bevindt u zich op uw MySQL< prompt in een oogwenk.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

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>

Het is nu heel leerzaam en leuk om via deze prompt zoekopdrachten uit te voeren.

Maak een database tecmint
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Opmerking: Er wordt gemeld dat de zoekopdracht correct was, wat betekent dat er een database is aangemaakt. U kunt uw nieuw aangemaakte database verifiëren als.

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

Opmerking: let op uw database in de bovenstaande uitvoer.

Selecteer Database

Nu moet u de database selecteren om eraan te werken.

mysql> use tecmint;
Database changed
mysql>
Tabellen maken in MySQL

Hier gaan we een tabel maken met de tekst “minttec” met drie velden als:

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

Opmerking: de bovenstaande zoekopdracht zegt OK, wat betekent dat de tabel zonder fouten is gemaakt. Voer de onderstaande query uit om de tabel te verifiëren.

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

Tot nu toe gaat het prima. JEP! U kunt de kolommen die u in de tabel “minttec” heeft gemaakt als volgt bekijken:

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

Het was niets minder dan magie. Hoe dan ook, ik zal u vertellen over de soorten aangiften en hun betekenis.

  1. Int is een geheel getal
  2. Varchar is een char met een variabele lengte zoals gedefinieerd. De waarde achter Type is de lengte van het veld waartoe gegevens kunnen worden opgeslagen.

Oké, nu moeten we een kolom toevoegen met de tekst ‘achternaam‘ na de kolom ‘voornaam‘.

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

Controleer het nu in uw tabel.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>
Kolom toevoegen in MySQL

Nu zullen we een kolom aan de rechterkant toevoegen, bijvoorbeeld een kolom ‘land‘ rechts van e-mail.

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

Controleer de bovenstaande kolominvoegquery.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>
Waarden in veld invoegen

Hoe zit het met het invoegen van waarden in het veld?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

Wat dacht u ervan om meer dan 1 waarde tegelijk in de bovenstaande tabel in te voegen?

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

Controleer de bovenstaande invoeging.

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
Waarden in veld verwijderen

Laten we zeggen dat het derde item in de bovenstaande uitvoer ongeldig is en dat we het derde item moeten verwijderen.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Controleer de bovenstaande werking.

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
Waarden in veld bijwerken

De id (=4) moet worden bewerkt.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Controleer de bovenstaande vraag.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Opmerking: de bovenstaande zoekopdracht, zoals uitgevoerd, is geen goed idee. Het zal de id veranderen in ‘4‘ waarbij de voornaam ‘tecmint’ is. Het is altijd een goed idee om meer dan één kolom met de Where-clausule te gebruiken om minimale fouten te krijgen, zoals:

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>
Kolom verwijderen in MySQL

Laten we een kolom verwijderen (verwijderen) waarvan wij denken dat het niet van belang is om hier ‘land‘ te zeggen.

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

Controleer de tabel.

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
Hernoem tabel in MySQL

Denkt u niet dat onze tabelnaam “minttec” niet erg relevant is? Wat dacht je ervan om dit te veranderen in tecmint_table.

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
Maak een lijst van alle tabellen

Bekijk alle tabellen onder de huidige database.

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

De tabel is hernoemd. Maak nu een back-up van de bovenstaande MySQL database, in één enkele opdrachtregel, zonder enig geavanceerd hulpmiddel. Voer de onderstaande code uit op uw terminal en niet op de MySQL-prompt.

mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

Het is altijd een goed idee om een back-up van MySQL-databases te maken. Het herstellen van de geback-upte MySQL-gegevens is opnieuw een eenvoudige regel code die u moet uitvoeren vanaf uw terminalprompt en niet vanaf uw MySQL-prompt.

Maar wacht eerst, we zullen de database verwijderen om te verifiëren of ons herstel perfect is.

Verwijder een database
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Controleer op database ‘tecmint’ op uw databaseserver.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

Geweldig! De database is verloren, maar we hoeven ons geen zorgen te maken, we hebben de back-up.

Een database herstellen

Voer de volgende opdracht uit om de verloren database te herstellen.

mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

OOPS! Een fout, we hebben de database tecmint niet aangemaakt. Ga dus naar uw mysql-prompt en maak een database ‘tecmint‘.

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

Nu is het tijd om de herstelopdracht uit te voeren op uw shell-prompt (strikt).

mysql -u root -p tecmint < tecmint.sql 
Enter password:

Controleer uw database.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

Controleer de inhoud van de database.

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

Controleer de inhoud van uw herstelde tabel.

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

Dit is zeker niet het einde. We zullen het concept van primaire sleutel, externe sleutel, meerdere tabellen en lopende zoekopdrachten behandelen. met behulp van een eenvoudig PHP-script in het volgende deel van het artikel.

Vergeet niet ons te vertellen hoe u zich voelde toen u het artikel doornam. Uw opmerkingen worden zeer op prijs gesteld. Blijf gezond en afgestemd, blijf verbonden met Tecmint.