11 Advance MySQL-database "Intervjuspørsmål og svar" for Linux-brukere
Vi har allerede publisert to MySQL-artikler, godt verdsatt av Tecmint Community. Dette er den tredje artikkelen om MySQL-intervjuserien og seksten i Intervjusjangerkolonnen.
- 15 Grunnleggende MySQL-intervjuspørsmål
- 10 MySQL-databaseintervjuspørsmål for mellomledd
Vi har nådd hit alle på grunn av din støtte, og vi søker det samme i fremtiden fra din ende. Her i denne artikkelen vil vi konsentrere oss om det praktiske aspektet ved MySQL, spørsmålet som er relevant for intervjuaspektet.
1. Bruk SELECT-setningen til å finne versjonen av serveren du kjører og skrive ut navnet på gjeldende database?
Svar: MySQL-kommandoen nedenfor vil vise serverversjonen og den valgte databasen.
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 NULL-verdien fordi vi ikke har valgt noen database. Så velg 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)
2. BRUK IKKE-operatør (!) for å velge alle brukerne unntatt 'SAM' fra en tabell, si 'Tecmint'
Svar: Utsagnet nedenfor vil vise alle kolonnene til alle brukerne fra tabellen Tecmint, bortsett fra brukeren 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. Er det mulig å implementere ‘AND’ med IKKE (!) Operatør.
Svar: AND-operatoren brukes når vi bruker (=) og operatoren OR brukes når vi bruker (!=). Et eksempel på (=) med AND Operator.
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil
Et eksempel på (!=) med OR-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 |
+---------------------+---------+---------+---------+---------+-------+
- = : betyr lik
- != : Ikke lik
- ! : representerer IKKE operatør
OG & ELLER behandles som joining-operatører i MySQL.
4. Hvilken IFNULL()-setning brukes til i MySQL?
Svar: Spørringen i MySQL kan skrives nøyaktig ved å bruke IFNULL()-setningen. IFNULL()-setningen tester det første argumentet og returnerer hvis det ikke er NULL, eller returnerer det andre argumentet.
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;
+---------+---------+
| name | id |
+---------+---------+
| bernina | 198-48 |
| bertha | Unknown |
| ben | Unknown |
| bill | 475-83 |
+---------+---------+
5. Du vil bare se visse rader fra et resultatsett fra begynnelsen eller slutten av et resultatsett. Hvordan vil du gjøre det?
Svar: Vi må bruke LIMIT-klausulen sammen med ORDER BY for å oppnå scenariet ovenfor.
Vis 1 post
mysql> SELECT * FROM name LIMIT 1;
+----+------+------------+-------+----------------------+------+
| id | name | birth | color | foods | cats |
+----+------+------------+-------+----------------------+------+
| 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
+----+------+------------+-------+----------------------+------+
Vis 5 Record
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. Hvilken og hvorfor?
Svar: Vel, begge har sine fordeler og ulemper. Som et spørsmål om tid foretrekker jeg MySQL.
Årsak til valg MySQL Over oracle
- Mysql er FOSS.
- MySQL er bærbart.
- MYSQL støtter både GUI og kommandoprompt.
- MySQL-administrasjon støttes over Query Browser.
7. Hvordan får du nåværende dato i MySQL?
Svar: Å få gjeldende dato i MySQL er like enkelt som å utføre SELECT-setningen nedenfor.
mysql> SELECT CURRENT_DATE();
+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17 |
+----------------+
8. Hvordan vil du eksportere tabeller som en XML-fil i MySQL?
Svar: Vi bruker "-e" (eksport)-alternativet for å eksportere MySQL-tabellen eller hele databasen til en XML-fil. Med store tabeller må vi kanskje implementere det manuelt, men for små tabeller kan applikasjoner som phpMyAdmin gjøre jobben.
En innfødt kommando av MySQL kan gjøre det.
mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml
Der USER_NAME er brukernavnet til databasen, er tabellnavn tabellen vi eksporterer til XML og tabellnavn.xml er xml-filen der data lagres.
9. Hva er MySQL_pconnect? Og hvordan skiller det seg fra MySQL_connect?
Svar: MySQL_pconnect() åpner en tilkobling som er vedvarende til MySQL-databasen, noe som ganske enkelt betyr at databasen ikke åpnes hver gang siden lastes inn, og vi kan derfor ikke bruk MySQL_close() for å lukke en vedvarende tilkobling.
En kort forskjell mellom MySQL_pconnect og MySQL_connect er.
I motsetning til MySQL_pconnect, MySQL_connect – Åpner databasen hver gang siden lastes, som kan lukkes når som helst ved å bruke setningen MySQL_close().
10. Du må vise alle indeksene som er definert i en tabell, si "bruker" av databasen si "mysql". Hvordan vil du oppnå dette?
Svar: Følgende kommando vil vise alle indeksene til en tabell 'bruker'.
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. Hva er CSV-tabeller?
Svar: CSV står for Comma-Separated Values aka Character-Separated Values. CSV-tabellen lagrer data i ren tekst og tabellformat. Den inneholder vanligvis én post per linje.
Hver post er atskilt med spesifikke skilletegn (komma, semikolon, ...) der hver post har samme sekvens av felt. CSV-tabeller er mest brukt til å lagre telefonkontakter for å importere og eksportere og kan brukes til å lagre alle slags ren tekstdata.
Det er alt for nå. Jeg vil være her igjen med en annen interessant artikkel, dere vil elske å lese. Inntil da, følg med og koble til Tecmint, og ikke glem å gi oss din verdifulle tilbakemelding i kommentarfeltet nedenfor.