11 Advance MySQL-database "Interviewspørgsmål og svar" til Linux-brugere


Vi har allerede offentliggjort to MySQL-artikler, som Tecmint Community værdsætter. Dette er den tredje artikel om MySQL Interview-serien og seksten i kolonnen Interviewgenre.

  1. 15 grundlæggende MySQL-interviewspørgsmål
  2. 10 MySQL-databaseinterviewspørgsmål til mellemled

Vi har nået alt dette på grund af din støtte, og vi søger det samme i fremtiden fra din ende. Her i denne artikel vil vi koncentrere os om det praktiske aspekt af MySQL, det spørgsmål, der er relevant for Interview-aspektet.

Ans: Nedenstående MySQL-kommando viser serverversion og aktuelt valgt database.

mysql> SELECT VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | NULL       |
+-------------------------+------------+
1 row in set (0.06 sec)

I databasekolonnen viser den værdien NULL , fordi vi ikke har valgt nogen database. Så vælg database som vist i følgende kommando.

mysql> use Tecmint;

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select VERSION(), DATABASE();

+-------------------------+------------+
| VERSION()               | DATABASE() |
+-------------------------+------------+
| 5.5.34-0ubuntu0.13.10.1 | tecmint    |
+-------------------------+------------+
1 row in set (0.00 sec)

Ans: Nedenstående udsagn viser alle kolonnerne for alle brugerne fra tabellen ' Tecmint ' undtagen brugeren ' SAM '.

mysql> SELECT * FROM Tecmint WHERE user !=SAM;

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host 	 | root     | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus  | barb     | venus   | 98151 | 
| 2001-05-15 08:50:57 | TIM     | venus  | phil     | venus   | 978   | 
+---------------------+---------+---------+---------+---------+-------+

Ans: AND-operatoren bruges, når vi bruger (=), og operatoren OR bruges, når vi bruger (! =). Et eksempel på (=) med AND Operator.

mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

Et eksempel på (! =) Med ELLER operatør.

mysql> SELECT * FROM mail WHERE user != SAM OR root != phil

+---------------------+---------+---------+---------+---------+-------+ 
| date                | user    | host    | root    | local   | size  | 
+---------------------+---------+---------+---------+---------+-------+ 
| 2001-05-14 14:42:21 | Anthony | venus   | barb    | venus   | 98151 | 
+---------------------+---------+---------+---------+---------+-------+

  1. =: betyder lig med
  2. ! = : Ikke lig med
  3. ! : repræsenterer IKKE operatør

AND & OR behandles som tilslutningsoperatører i MySQL.

Ans: Forespørgslen i MySQL kan skrives nøjagtigt ved hjælp af IFNULL() udsagn. IFNULL() -erklæringen tester sit første argument og returnerer, hvis det ikke er NULL, eller returnerer sit andet argument, ellers.

mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+

Ans: Vi skal bruge LIMIT -sætningen sammen med ORDER BY for at opnå det ovenfor beskrevne scenario.

mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
mysql> SELECT * FROM profile LIMIT 5;

+----+------+------------+-------+-----------------------+------+ 
| id | name | birth      | color | foods                 | cats | 
+----+------+------------+-------+-----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza  | 0    | 
| 2  | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3    | 
| 3  | Brit | 1957-12-01 | red   | burrito,curry,pizza   | 1    |   
| 4  | Carl | 1973-11-02 | red   | eggroll,pizza         | 4    | 
| 5  | Sean | 1963-07-04 | blue  | burrito,curry         | 5    | 
+----+------+------------+-------+-----------------------+------+
mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;

+----+------+------------+-------+----------------+------+ 
| id | name | birth      | color | foods          | cats | 
+----+------+------------+-------+----------------+------+ 
| 9  | Dick | 1952-08-20 | green | lutefisk,fadge | 0    | 
+----+------+------------+-------+----------------+------+

Ans: Nå har begge sine fordele og ulemper. Som et spørgsmål om tid foretrækker jeg MySQL.

  1. Mysql er FOSS.
  2. MySQL er bærbar.
  3. MYSQL understøtter både GUI og kommandoprompt.
  4. MySQL Administration understøttes via Query Browser.

Ans: At få den aktuelle dato i MySQL er så simpelt som at udføre nedenstående SELECT-erklæring.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+

Ans: Vi bruger ‘-e‘ (eksport) mulighed for at eksportere MySQL-tabellen eller hele databasen til en XML-fil. Med store tabeller skal vi muligvis implementere det manuelt, men for små tabeller kan applikationer som phpMyAdmin gøre jobbet.

En indfødt kommando af MySQL kan gøre det.

mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml

Hvor USER_NAME er brugernavn på databasen, er tabelnavn den tabel, vi eksporterer til XML, og tabelnavn.xml er den xml-fil, hvor data lagres.

Ans: MySQL_pconnect() åbner en forbindelse, der er vedvarende til MySQL-databasen, hvilket simpelthen betyder, at databasen ikke åbnes hver gang siden indlæses, og derfor kan vi ikke brug MySQL_close() til at lukke en vedvarende forbindelse.

En kort forskel mellem MySQL_pconnect og MySQL_connect er.

I modsætning til MySQL_pconnect, MySQL_connect - Åbner databasen hver gang siden indlæses, som kan lukkes når som helst ved hjælp af udsagnet MySQL_close().

Ans: Følgende kommando viser alle indekser i en tabel 'bruger'.

mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
| user  |          0 | PRIMARY  |            1 | Host        | A         |        NULL |     NULL | NULL   |      | BTREE      |         |               | 
| user  |          0 | PRIMARY  |            2 | User        | A         |           4 |     NULL | NULL   |      | BTREE      |         |               | 
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 
2 rows in set (0.00 sec)

Ans: CSV står for kommaseparerede værdier aka tegn-adskilte værdier. CSV-tabel gemmer data i almindelig tekst og i tabelformat. Den indeholder typisk en post pr. Linje.

Hver post er adskilt af specifikke afgrænsere (komma, semikolon, ...), hvor hver post har den samme sekvens af felt. CSV-tabeller bruges mest til at gemme telefonkontakter til import og eksport og kan bruges til at gemme enhver form for almindelig tekstdata.

Det er alt for nu. Jeg kommer her igen med en anden interessant artikel, I vil elske at læse. Indtil da skal du holde øje med og have forbindelse til Tecmint og glem ikke at give os din værdifulde feedback i kommentarfeltet nedenfor.