11 Advance MySQL duomenų bazės "Interviu klausimai ir atsakymai" Linux vartotojams


Jau paskelbėme du MySQL straipsnius, kuriuos gerai įvertino Tecmint bendruomenė. Tai trečiasis straipsnis apie MySQL interviu seriją ir šešiolika interviu žanro stulpelio.

  1. 15 pagrindinių „MySQL“ interviu klausimų
  2. 10 MySQL duomenų bazės interviu klausimų tarpiniams

Visa tai pasiekėme dėl jūsų paramos ir to siekiame ateityje. Šiame straipsnyje mes sutelksime dėmesį į praktinį MySQL aspektą, klausimą, susijusį su interviu aspektu.

1. Naudodami SELECT teiginį suraskite naudojamo serverio versiją ir išspausdinkite dabartinės duomenų bazės pavadinimą?

Atsakymai: toliau pateikta MySQL komanda parodys serverio versiją ir šiuo metu pasirinktą duomenų bazę.

mysql> SELECT VERSION(), DATABASE();

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

Duomenų bazės stulpelyje rodoma NULL reikšmė, nes nepasirinkome jokios duomenų bazės. Taigi, pasirinkite duomenų bazę, kaip parodyta šioje komandoje.

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)
2. NAUDOKITE NE operatorių (!), kad pasirinktumėte visus vartotojus, išskyrus „SAM“, iš lentelės pasakykite „Tecmint“

Atsakymai: toliau pateiktame teiginyje bus rodomi visi lentelės „Tecmint“ naudotojų stulpeliai, išskyrus naudotoją „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   | 
+---------------------+---------+---------+---------+---------+-------+
3. Ar galima įgyvendinti ‘AND’ su NOT (!) Operator.

Atsakymai: Operatorius AND naudojamas, kai naudojame (=), o operatorius OR – kai naudojame (!=). (=) su AND operatoriumi pavyzdys.

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

(!=) su OR operatoriumi pavyzdys.

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. = : reiškia lygus
  2. != : Nelygu
  3. ! : reiškia NE operatorių

IR ir ARBA yra traktuojami kaip jungiantys operatoriai MySQL.

4. Koks IFNULL() sakinys naudojamas MySQL?

Atsakymai: MySQL užklausą galima tiksliai parašyti naudojant IFNULL() sakinį. Teiginys IFNULL() patikrina savo pirmąjį argumentą ir grąžina, jei jis nėra NULL, arba grąžina antrąjį argumentą, priešingu atveju.

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

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Norite matyti tik tam tikras rezultatų rinkinio eilutes nuo rezultatų rinkinio pradžios arba pabaigos. Kaip tai padarysi?

Atsakymai: turime naudoti sąlygą LIMIT kartu su ORDER BY, kad pasiektume aukščiau aprašytą scenarijų.

Rodyti 1 įrašą
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
Rodyti 5 įrašą
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    | 
+----+------+------------+-------+----------------+------+
6. Oracle vs MySQL. Kuris ir kodėl?

Atsakymai: abu turi savo privalumų ir trūkumų. Laiko klausimu man labiau patinka MySQL.

Pasirinkimo priežastis MySQL, o ne orakulas
  1. Mysql yra FOSS.
  2. MySQL yra nešiojamas.
  3. MYSQL palaiko ir GUI, ir komandų eilutę.
  4. MySQL administravimas palaikomas per užklausų naršyklę.
7. Kaip gausite dabartinę datą MySQL?

Atsakymai: Gauti dabartinę datą MySQL yra taip paprasta, kaip vykdyti toliau pateiktą SELECT pareiškimą.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. Kaip eksportuosite lenteles kaip XML failą į MySQL?

Atsakymai: Mes naudojame parinktį „-e“ (eksportuoti), norėdami eksportuoti MySQL lentelę arba visą duomenų bazę į XML failą. Naudojant dideles lenteles, gali tekti tai įdiegti rankiniu būdu, tačiau mažose lentelėse tai gali atlikti tokios programos kaip phpMyAdmin.

Tai gali padaryti gimtoji MySQL komanda.

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

Kur USER_NAME yra duomenų bazės naudotojo vardas, lentelės_pavadinimas yra lentelė, kurią eksportuojame į XML, o lentelės_pavadinimas.xml yra xml failas, kuriame saugomi duomenys.

9. Kas yra MySQL_pconnect? Ir kuo jis skiriasi nuo MySQL_connect?

Atsakymai: MySQL_pconnect() atidaro ryšį, kuris yra nuolatinis su MySQL duomenų baze, o tai tiesiog reiškia, kad duomenų bazė nėra atidaroma kiekvieną kartą įkeliant puslapį, todėl negalime naudokite MySQL_close(), kad uždarytumėte nuolatinį ryšį.

Trumpas skirtumas tarp MySQL_pconnect ir MySQL_connect yra.

Skirtingai nuo MySQL_pconnect, MySQL_connect – kiekvieną kartą įkeliant puslapį atidaroma duomenų bazė, kurią galima bet kada uždaryti naudojant sakinį MySQL_close().

10. Turite parodyti visus lentelėje apibrėžtus indeksus, sakykite "duomenų bazės vartotojas", sakykite "mysql". Kaip tai pasieksite?

Atsakymai: ši komanda parodys visus lentelės „vartotojas“ indeksus.

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)
11. Kas yra CSV lentelės?

Atsakymai: CSV reiškia kableliais atskirtos reikšmės arba simboliais atskirtos reikšmės. CSV lentelė saugo duomenis paprasto teksto ir lentelės formatu. Paprastai kiekvienoje eilutėje yra vienas įrašas.

Kiekvienas įrašas yra atskirtas specialiais skyrikliais (kableliais, kabliataškiais, ...), kur kiekvienas įrašas turi tą pačią laukų seką. CSV lentelės plačiausiai naudojamos telefono kontaktams saugoti importuoti ir eksportuoti ir gali būti naudojamos bet kokio tipo paprasto teksto duomenims saugoti.

Tai kol kas viskas. Aš vėl būsiu čia su kitu įdomiu straipsniu, jums, žmonėms, patiks skaityti. Iki tol sekite naujienas ir prisijunkite prie Tecmint ir nepamirškite pateikti mums vertingų atsiliepimų toliau pateiktame komentarų skyriuje.