sql >> Database teknologi >  >> RDS >> Mysql

MySQL Basic Database Administration Commands – Del I

Database er et struktureret sæt af data lagret elektronisk. Konceptet med database var kendt af vores forfædre, selv når der ikke var nogen computere, men at oprette og vedligeholde en sådan database var et meget kedeligt arbejde. I en manuel database skal du sige 100 sider, hvis du skal søge efter alle de medarbejdere, hvis løn var mindre end 10k , tænk lige hvor svært det ville have været.

I dagens verden kan du bare ikke undslippe databasen . Lige nu arbejder millioner af databaser rundt om i verden for at gemme og hente data af enhver art, hvad enten det er strategiske data, medarbejderregistrering eller webteknologier.

Database betegnes ofte som back-end-proces, fordi den hverken er synlig for slutbruger eller slutbruger interagerer direkte med databasen. De arbejder på front-end-processen, nemlig PHP , VB , ASP.NET osv. og bede frontenden om at håndtere databasen i back-end.

Der er flere databaseservere og -klienter tilgængelige som Oracle , MySQL , MySQLi , MariaDB, MongoDB osv. Syntaksen for alle disse er mere eller mindre den samme. At mestre en betyder at få kontrol over de fleste af dem og at lære forespørgslerne i en database er meget nemt og sjovt.

Lad os starte med simple forespørgsler på databasen. Vi vil bruge MySQL som leveres sammen med det meste af Linux distributioner som standard, kan du installere det manuelt fra repository, hvis det ikke er installeret som standard i dit tilfælde.

En databaseforespørgsel er et simpelt stykke kode, der sendes til databasen for at få et tilpasset og raffineret resultat efter behov.

Installer MySQL-database

Brug "yum ” eller “apt ” pakkehåndtering for at installere MySQL 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 databasetjeneste som:

# service mysqld start
or
# service mysql start

Godt at installere en MySQL databasen fører dig til den konfiguration, hvor du bliver bedt om at konfigurere admin adgangskode osv. Når du er færdig med at installere og starte serveren, skal du gå til din MySQL prompt.

# mysql -u root -p

Erstat rod med dit konfigurerede brugernavn og indtast adgangskode Når du bliver bedt om det, vil du være på din MySQL, hvis loginoplysningerne er korrekte prompte ved et blink med dine øjne.

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 er det meget lærerigt og sjovt at udføre forespørgsler ved denne prompt.

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

mysql>

Bemærk :Den rapporterer, at forespørgslen var korrekt, betyder, at databasen er oprettet. Du kan bekræfte din nyoprettede database som.

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

Bemærk :Læg mærke til din database i ovenstående output.

Vælg Database

Nu skal du vælge databasen for at arbejde på den.

mysql> use tecmint;
Database changed
mysql>
Opret tabeller i MySQL

Her vil vi lave en tabel med "minttec ” med tre felter som:

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

Bemærk :Ovenstående forespørgsel siger OK hvilket betyder, at tabellen blev oprettet uden nogen fejl. For at bekræfte tabellen skal du køre nedenstående forespørgsel.

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

1 row in set (0.00 sec) 

mysql>

Tingene går fint indtil nu. Jep! Du kan se de kolonner, du har oprettet, i tabellen "minttec " som:

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>

Det var intet mindre end en magi. I hvert fald vil jeg fortælle dig om typerne af erklæringer og deres betydning.

  1. Int. er heltal
  2. Varchar er char med variabel længde som defineret. Værdien efter Type er længden af ​​det felt, som det kan gemme data til.

OK, nu skal vi tilføje en kolonne med "efternavn". ' efter kolonnen 'fornavn '.

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

Bekræft det nu i din 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>
Tilføj kolonne i MySQL

Nu vil vi tilføje en kolonne til højre og sige en kolonne "land ' til højre for 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>

Bekræft ovenstående kolonneindsættelsesforespørgsel.

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>
Indsæt værdier i feltet

Hvad med at indsætte værdier i feltet?

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

mysql>

Hvad med at indsætte mere end 1 værdi ad gangen i ovenstående 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

Bekræft ovenstående indsættelse.

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>
Slet værdier i felt

Lad os sige, at den tredje post i ovenstående output er ugyldig, og vi skal slette den tredje post.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Bekræft ovenstående handling.

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)
Opdater værdier i felt

Id'et (=4) skal redigeres.

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>

Bekræft ovenstående forespørgsel.

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>

Bemærk :Ovenstående forespørgsel, som udført, er ikke en god idé. Det vil ændre id'et til "4 ' hvor fornavnet nogensinde er 'tecmint' . Det er altid en god idé at bruge mere end én kolonne med where-sætning for at få minimal fejl, som:

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>
Slet kolonne i MySQL

Lad vi være nødt til at droppe (slette) en kolonne, vi mener, er uden betydning, sig "land ’ her.

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

mysql>

Bekræft tabellen.

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>
Omdøb tabel i MySQL

Tror du ikke vores bordnavn "minttec ” er ikke særlig relevant. Hvad med at ændre det til tecmint_table .

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

mysql>
Vis alle tabeller

Se alle tabellerne under den aktuelle database.

mysql> show tables; 

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

mysql>

Tabellen er blevet omdøbt. Tag nu en sikkerhedskopi af ovenstående MySQL database, i en enkelt kommandolinje uden noget sofistikeret værktøj. Kør nedenstående kode på din terminal og ikke på mysql-prompten.

# 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

Det er altid en god idé at vedligeholde Backup af MySQL-databaser. Gendannelse af den sikkerhedskopierede MySQL Data er igen en simpel kodelinje, du skal køre ved din terminalprompt og ikke ved din mysql-prompt.

Men vent først, vi sletter databasen for at bekræfte, om vores gendannelse er perfekt.

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

Tjek for database 'tecmint' på din databaseserver.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Store! Databasen er tabt, men vi behøver ikke at bekymre os, vi har sikkerhedskopien.

Gendan en database

For at gendanne tabt database skal du køre følgende kommando.

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

UPS ! En fejl. Hej, vi har ikke oprettet databasen tecmint . Så gå til din mysql-prompt og opret en database 'tecmint '.

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

mysql>

Nu er det tid til at køre gendannelseskommando ved din shell-prompt (strengt).

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

Bekræft din database.

mysql> show databases; 

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

Bekræft indholdet af databasen.

mysql> show tables from tecmint;

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

mysql>

Bekræft indholdet af din gendannede 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)

Dette er bestemt ikke slutningen, vi vil dække begrebet primær nøgle , fremmednøgle , flere tabeller og kørende forespørgsler ved hjælp af simpel PHP script i næste del af artiklen.

Glem ikke at fortælle os , hvordan du havde det, mens du gik gennem artiklen. Dine kommentarer er meget værdsat. Forbliv sund og Tunes , forbliv forbundet til Tecmint .


  1. SQL Server rekursiv forespørgsel

  2. Sådan kontrolleres replikeringsfailover for MySQL og MariaDB

  3. Returnerer string array og brug det på AutoCompleteTextview

  4. Sådan fungerer REGEXP_LIKE()-funktionen i MySQL