MySQL Basic Database Administration Commands - Del I


Database er et strukturert sett med data som er lagret elektronisk. Konseptet med database var kjent for våre forfedre selv når det ikke var noen datamaskiner, men å lage og vedlikeholde en slik database var en veldig kjedelig jobb. I en manuell database, si på 100 sider, hvis du må søke etter alle de ansatte med lønn under 10k, tenk bare på hvor vanskelig det ville ha vært, da .

I dagens verden kan du bare ikke unnslippe Database. Akkurat nå jobber millioner av databaser over hele verden for å lagre og hente data av alle slag, enten det er strategiske data, ansattposter eller nettteknologier.

Database blir ofte betegnet som back-end prosess, fordi den verken er synlig for sluttbruker eller sluttbruker samhandler direkte med databasen. De jobber med frontend-prosesser, nemlig PHP, VB, ASP.NET osv. og ber grensesnittet om å håndtere databasen i bakenden.

Det er flere databaseservere og klienter tilgjengelige som Oracle, MySQL, MySQLi, MariaDB, MongoDB osv. Syntaksen til alle disse er mer eller mindre det samme. Å mestre en betyr å få kontroll over de fleste av dem og lære spørringene i en database er veldig enkelt og morsomt.

La oss starte med enkle spørringer på databasen. Vi vil bruke MySQL som følger med de fleste Linux-distribusjonene som standard, du kan installere det manuelt fra depotet, hvis det ikke er installert som standard i ditt tilfelle.

Vel, en databasespørring er et enkelt stykke kode som sendes til databasen for å få tilpasset og raffinert resultat etter behov.

Installer MySQL-databasen

Bruk «yum» eller «apt»-pakkebehandling for å installere MySQL-databasen.

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-databasetjenesten som:

service mysqld start
or
service mysql start

Ved å installere en MySQL-database vil du ta deg til konfigurasjonen der du blir bedt om å sette opp admin-passord osv. Når du er ferdig med å installere og starte serveren, gå til MySQL ledetekst.

mysql -u root -p

Erstatt root med ditt konfigurerte brukernavn og skriv inn passord når du blir bedt om det. Hvis påloggingsinformasjonen er riktig, vil du være på MySQL< ledetekst ved et blunk.

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>

Nå er det veldig lærerikt og morsomt å utføre spørsmål ved denne forespørselen.

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

mysql>

Merk: Den rapporterer at spørringen var riktig, betyr at databasen er opprettet. Du kan bekrefte din nyopprettede database som.

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

Merk: Legg merke til databasen din i utdataene ovenfor.

Velg Database

Nå må du velge databasen for å jobbe med den.

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

Her skal vi lage en tabell som sier «minttec» med tre felt som:

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

Merk: Spørringen ovenfor sier OK som betyr at tabellen ble opprettet uten noen feil. For å bekrefte tabellen, kjør spørringen nedenfor.

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

1 row in set (0.00 sec) 

mysql>

Ting går bra til nå. Jepp! Du kan se kolonnene du opprettet 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 enn en magi. Uansett vil jeg fortelle deg om typene erklæringer og deres betydning.

  1. Int er heltall
  2. Varchar er røye med variabel lengde som definert. Verdien etter Type er lengden på feltet som den kan lagre data til.

OK nå må vi legge til en kolonne hvor det står «etternavn» etter 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

Bekreft det i tabellen din.

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>
Legg til kolonne i MySQL

Nå legger vi til en kolonne til høyre, si en kolonne «land» til høyre for 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>

Bekreft kolonneinnsettingsspørsmålet ovenfor.

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>
Sett inn verdier i feltet

Hva med å sette inn verdier i feltet?

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

mysql>

Hva med å sette inn mer enn 1 verdi om gangen i tabellen ovenfor.

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

Bekreft innsettingen ovenfor.

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>
Slett verdier i feltet

La oss si at den tredje oppføringen i utgangen ovenfor er ugyldig og vi må slette den tredje oppføringen.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Bekreft operasjonen ovenfor.

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)
Oppdater verdier i felt

ID-en (=4) må 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>

Bekreft søket ovenfor.

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>

Merk: Spørringen ovenfor, slik den utføres, er ikke en god idé. Det vil endre ID-en til «4» der fornavnet er «tecmint». Det er alltid en god idé å bruke mer enn én kolonne med where-klausulen for å få minimal feil, 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>
Slett kolonne i MySQL

La oss slippe (slette) en kolonne vi mener er uten betydning si «land» her.

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

mysql>

Bekreft tabellen.

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>
Gi nytt navn til tabell i MySQL

Tror du ikke tabellnavnet vårt «minttec» er lite relevant. Hva med å endre den til tecmint_table.

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

mysql>
Liste alle tabeller

Se alle tabellene under gjeldende database.

mysql> show tables; 

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

mysql>

Tabellen har fått nytt navn. Ta nå en sikkerhetskopi av MySQL-databasen ovenfor, i en enkelt kommandolinje uten noe sofistikert verktøy. Kjør koden nedenfor på terminalen din og ikke på mysql-ledeteksten.

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 alltid en god idé å vedlikeholde sikkerhetskopiering av MySQL-databaser. Gjenoppretting av de sikkerhetskopierte MySQL-dataene er igjen en enkel kodelinje du trenger for å kjøre på terminalprompten og ikke ved mysql-ledeteksten.

Men vent først, vi sletter databasen for å bekrefte om gjenopprettingen vår er perfekt.

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

Se etter database "tecmint" på databaseserveren din.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Flott! Databasen er tapt, men vi trenger ikke å bekymre oss, vi har sikkerhetskopien.

Gjenopprett en database

For å gjenopprette tapt database, kjør følgende kommando.

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

OOPS! En feil, hei, vi har ikke opprettet databasen tecmint. Så gå til mysql-ledeteksten og lag en database «tecmint».

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

mysql>

Nå er det på tide å kjøre gjenopprettingskommando ved shell-ledeteksten (strengt).

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

Bekreft databasen din.

mysql> show databases; 

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

Bekreft innholdet i databasen.

mysql> show tables from tecmint;

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

mysql>

Bekreft innholdet i den gjenopprettede tabellen.

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)

Dette er ikke slutten definitivt, vi vil dekke konseptet primærnøkkel, fremmednøkkel, flere tabeller og løpende spørringer ved å bruke enkle PHP-skript i neste del av artikkelen.

Ikke glem å fortelle oss hvordan du følte deg mens du gikk gjennom artikkelen. Dine kommentarer settes stor pris på. Hold deg frisk og tilpasset, forbli koblet til Tecmint.