sql >> Database >  >> RDS >> Mysql

MySQL Basic Database Administration Commando's - Deel I

Database is een gestructureerde verzameling gegevens die elektronisch wordt opgeslagen. Het concept van een database was al bekend bij onze voorouders toen er nog geen computers waren, maar het maken en onderhouden van een dergelijke database was een zeer vervelende klus. Zeg in een handmatige database van 100 pagina's, als u moet zoeken naar alle werknemers met een salaris van minder dan 10k , denk eens aan hoe moeilijk het dan zou zijn geweest.

In de wereld van vandaag ontkom je gewoon niet 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, personeelsdossiers of webtechnologieën.

Database wordt vaak een back-end proces genoemd, omdat het niet zichtbaar is voor de eindgebruiker, noch voor Eindgebruiker werkt rechtstreeks samen met de database. Ze werken aan het front-end proces, namelijk PHP , VB , ASP.NET , enz. en vraag de front-end om de database in de back-end af te handelen.

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

Laten we beginnen met eenvoudige query's op de database. We gebruiken MySQL die wordt geleverd met de meeste Linux distributies standaard, kunt u het handmatig installeren vanuit de repository, als het in uw geval niet standaard is geïnstalleerd.

Welnu, een databasequery is een eenvoudig stukje code dat naar de database wordt verzonden om, indien nodig, aangepaste en verfijnde resultaten te krijgen.

Installeer MySQL-database

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

# 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 MySQL databaseservice als:

# service mysqld start
or
# service mysql start

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

# mysql -u root -p

Vervang root met uw geconfigureerde gebruikersnaam en voer wachtwoord in wanneer daarom wordt gevraagd, als de inloggegevens correct zijn, bevindt u zich in 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>

Nu is het uitvoeren van vragen op deze prompt erg leerzaam en leuk.

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

mysql>

Opmerking :Het meldt dat de zoekopdracht correct was, wat betekent dat de database is gemaakt. 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 je de database selecteren om eraan te werken.

mysql> use tecmint;
Database changed
mysql>
Maak tabellen in MySQL

Hier zullen 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 vraag 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>

De zaken gaan tot nu toe goed. JEP! U kunt de kolommen bekijken die u heeft gemaakt in de tabel "minttec ” als:

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 je vertellen over de soorten aangiften en hun betekenis.

  1. Int is geheel getal
  2. Varchar is char met variabele lengte zoals gedefinieerd. De waarde na Type is de lengte van het veld tot waar het gegevens kan opslaan.

OK nu moeten we een kolom toevoegen, zeg 'achternaam ' na 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

Verifieer 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 protected]' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

Hoe zit het met het invoegen van meer dan 1 waarde per keer in de bovenstaande tabel.

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email protected]' , 'India' ), ('3' , 'user' , 'singh' , '[email protected]' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email protected]' , '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 protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    3 | user       | singh     | [email protected]      | Aus     | 
|    4 | tecmint    | [dot]com  | [email protected] | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
Waarden in veld verwijderen

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

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Controleer de bovenstaande bewerking.

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    4 | tecmint    | [dot]com  | [email protected] | 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 query, zoals uitgevoerd, is geen goed idee. Het zal de id veranderen in '4 ' waar ooit de voornaam is 'tecmint' . Het is altijd een goed idee om meer dan één kolom met de where-clausule te gebruiken om een ​​minimale fout 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 laten vallen (verwijderen) waarvan we denken dat het niet belangrijk is, zeg 'land ' hier.

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 protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
Naam tabel in MySQL wijzigen

Denk je niet dat onze tabelnaam "minttec ’ is niet zo relevant. Wat dacht je van het veranderen in tecmint_table .

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

mysql>
Laat alle tabellen zien

Bekijk alle tabellen onder de huidige database.

mysql> show tables; 

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

mysql>

De tafel is hernoemd. Maak nu een back-up van de bovenstaande MySQL database, in een enkele opdrachtregel zonder enige geavanceerde tool. 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 onderhouden. Terugzetten van de back-up MySQL Gegevens zijn opnieuw een eenvoudige regel code die u moet uitvoeren op uw terminalprompt en niet op uw mysql-prompt.

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

Een database verwijderen
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>

Super goed! De database is verloren, maar we hoeven ons geen zorgen te maken, we hebben een 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 ! Er is een fout opgetreden, we hebben de database tecmint niet gemaakt . Ga dus naar je mysql-prompt en maak een database 'tecmint . aan '.

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

mysql>

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

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

Verifieer 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 protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

Dit is zeker niet het einde, we zullen het concept van primaire sleutel behandelen , vreemde sleutel , meerdere tafels en zoekopdrachten uitvoeren met behulp van eenvoudige PHP script in het volgende deel van het artikel.

Vergeet niet om ons te vertellen , hoe je je voelde tijdens het doornemen van het artikel. Uw opmerkingen worden zeer op prijs gesteld. Blijf Gezond en Afgestemd , blijf verbonden met Tecmint .


  1. Hoe voeg ik een PostgreSQL-gegevensbron toe aan WildFly 9.0?

  2. Vind waarden die geen getallen bevatten in MySQL

  3. Loop over array-dimensie in plpgsql

  4. Wat doet een transactie rond een enkel overzicht?