sql >> Databasteknik >  >> RDS >> Mysql

MySQL Basic Database Administration Commands – Del I

Databas är en strukturerad uppsättning data som lagras elektroniskt. Konceptet med databas var känt för våra förfäder även när det inte fanns några datorer, men att skapa och underhålla en sådan databas var ett mycket tråkigt jobb. I en manuell databas säg 100 sidor, om du måste söka efter alla anställda vars lön var mindre än 10k , tänk bara på hur svårt det skulle ha varit då.

I dagens värld kan du helt enkelt inte fly Databas . Just nu arbetar miljontals databaser runt om i världen för att lagra och hämta data av alla slag, vare sig det är strategiska data, personaluppgifter eller webbteknologier.

Databas kallas ofta som back-end-process, eftersom den varken är synlig för slutanvändare eller slutanvändare interagerar direkt med databasen. De arbetar med front-end-processer, nämligen PHP , VB , ASP.NET , etc. och be frontend att hantera databasen i back-end.

Det finns flera databasservrar och -klienter tillgängliga som Oracle , MySQL , MySQLi , MariaDB, MongoDB etc. Syntaxen för alla dessa är mer eller mindre densamma. Att bemästra en innebär att få kontroll över de flesta av dem och att lära sig frågorna i en databas är väldigt enkelt och roligt.

Låt oss börja med enkla frågor om databasen. Vi kommer att använda MySQL som levereras med det mesta av Linux distributioner som standard, kan du installera det manuellt från arkivet, om det inte är installerat som standard i ditt fall.

En databasfråga är en enkel kod som skickas till databasen för att få anpassade och förfinade resultat efter behov.

Installera MySQL Database

Använd "yum ” eller ”apt ” pakethanteraren för att installera MySQL Databas.

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

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

Starta MySQL databastjänst som:

# service mysqld start
or
# service mysql start

Installera en MySQL databasen tar dig till konfigurationen där du ombeds ställa in admin lösenord, etc. När du har installerat och startat servern går du till din MySQL uppmaning.

# mysql -u root -p

Ersätt root med ditt konfigurerade användarnamn och ange lösenord när du uppmanas, om inloggningsuppgifterna är korrekta, kommer du att vara på din MySQL uppmaning vid ett ögonblick.

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>

Att nu utföra frågor vid denna prompt är väldigt lärorikt och roligt.

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

mysql>

Obs :Den rapporterar att frågan var korrekt, betyder att databasen har skapats. Du kan verifiera din nyskapade databas som.

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

Obs :Lägg märke till din databas i ovanstående utdata.

Välj Databas

Nu måste du välja databasen för att arbeta med den.

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

Här kommer vi att skapa en tabell som säger "minttec ” med tre fält som:

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

Obs :Frågan ovan säger OK vilket betyder att tabellen skapades utan några fel. För att verifiera tabellen kör nedanstående fråga.

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

1 row in set (0.00 sec) 

mysql>

Det går bra tills nu. Japp! Du kan se kolumnerna du skapade 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 inget mindre än en magi. Hur som helst, jag kommer att berätta om typerna av deklarationer och deras innebörd.

  1. Int är heltal
  2. Varchar är röding med variabel längd enligt definition. Värdet efter Typ är längden på fältet till vilket det kan lagra data.

OK nu måste vi lägga till en kolumn där det står "efternamn ' efter kolumnen 'förnamn ’.

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

Verifiera det nu i din tabell.

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>
Lägg till kolumn i MySQL

Nu lägger vi till en kolumn till höger, säg en kolumn "land ' till höger om e-post .

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>

Verifiera ovanstående kolumninfogningsfråga.

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>
Infoga värden i fältet

Vad sägs om att infoga värden i fältet?

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

mysql>

Vad sägs om att infoga mer än 1 värde åt gången i tabellen ovan.

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

Verifiera infogningen ovan.

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>
Ta bort värden i fältet

Låt oss säga att den tredje posten i ovanstående utdata är ogiltig och att vi måste ta bort den tredje posten.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Verifiera ovanstående operation.

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)
Uppdatera värden i fältet

ID:t (=4) måste redigeras.

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>

Verifiera ovanstående fråga.

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>

Obs :Ovanstående fråga är inte en bra idé. Det kommer att ändra id till "4 ' där förnamnet är 'tecmint' . Det är alltid en bra idé att använda mer än en kolumn med where-satsen för att få minimalt fel, 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>
Ta bort kolumn i MySQL

Låt oss behöva släppa (ta bort) en kolumn som vi tror inte är av betydelse säg "land ’ här.

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

mysql>

Verifiera 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>
Byt namn på tabell i MySQL

Tror du inte vårt bordsnamn "minttec ” är inte särskilt relevant. Vad sägs om att ändra det till tecmint_table .

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

mysql>
Lista alla tabeller

Se alla tabeller under den aktuella databasen.

mysql> show tables; 

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

mysql>

Tabellen har bytt namn. Ta nu en säkerhetskopia av ovanstående MySQL databas, på en enda kommandorad utan något sofistikerat verktyg. Kör koden nedan på din terminal och inte 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 är alltid en bra idé att underhålla Backup av MySQL-databaser. Återställer säkerhetskopierad MySQL Data är återigen en enkel kodrad som du behöver köra vid din terminalprompt och inte vid din mysql-prompt.

Men vänta först, vi tar bort databasen för att verifiera om vår återställning är perfekt.

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

Sök efter databas "tecmint" på din databasserver.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Bra! Databasen är förlorad, men vi behöver inte oroa oss, vi har säkerhetskopieringen.

Återställ en databas

För att återställa förlorad databas, kör följande kommando.

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

OOPS ! Ett fel, vi har inte skapat databasen tecmint . Så gå till din mysql-prompt och skapa en databas "tecmint ’.

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

mysql>

Nu är det dags att köra återställningskommandot vid din skalprompt (strikt).

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

Verifiera din databas.

mysql> show databases; 

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

Verifiera innehållet i databasen.

mysql> show tables from tecmint;

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

mysql>

Verifiera innehållet i din återställda tabell.

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)

Detta är inte slutet definitivt, vi kommer att täcka begreppet primär nyckel , främmande nyckel , flera tabeller och körande frågor med enkla PHP manus i nästa del av artikeln.

Glöm inte att berätta för oss , hur du kände dig när du gick igenom artikeln. Dina kommentarer är mycket uppskattade. Håll dig frisk och Trimmade , förbli ansluten till Tecmint .


  1. mysql fulltextsökning misslyckades

  2. lagrade procedurer med sqlAlchemy

  3. Mapping array med Hibernate

  4. Hur kan jag upptäcka att en skapa-, uppdaterings-, raderingsfråga lyckades i Codeigniter