Wyszukiwanie w witrynie

11 Baza danych Advance MySQL „Pytania i odpowiedzi do wywiadu” dla użytkowników Linuksa


Opublikowaliśmy już dwa artykuły MySQL, które zostały dobrze przyjęte przez Społeczność Tecmint. To trzeci artykuł z serii wywiadów MySQL i szesnaście w kolumnie Rodzaj wywiadu.

  1. 15 podstawowych pytań do rozmowy kwalifikacyjnej MySQL
  2. 10 pytań do rozmowy kwalifikacyjnej do bazy danych MySQL dla średnio zaawansowanych

Dotarliśmy tutaj dzięki Waszemu wsparciu i pragniemy tego samego w przyszłości. W tym artykule skoncentrujemy się na praktycznym aspekcie MySQL, kwestii istotnej dla aspektu wywiadu.

1. Za pomocą instrukcji SELECT znajdź wersję serwera, na którym pracujesz i wypisz nazwę aktualnej bazy danych?

Odpowiedź: Poniższe polecenie MySQL wyświetli wersję serwera i aktualnie wybraną bazę danych.

mysql> SELECT VERSION(), DATABASE();

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

W kolumnie Baza danych wyświetlana jest wartość NULL, ponieważ nie wybraliśmy żadnej bazy danych. Zatem wybierz bazę danych, jak pokazano w poniższym poleceniu.

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. UŻYJ NOT Operatora (!), aby wybrać wszystkich użytkowników z wyjątkiem „SAM” z tabeli, powiedz „Tecmint”

Odpowiedź: Poniższa instrukcja wyświetli wszystkie kolumny wszystkich użytkowników z tabeli „Tecmint” z wyjątkiem użytkownika „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. Czy można zaimplementować „AND” z operatorem NOT (!).

Odpowiedź: Operator AND jest używany, gdy używamy (=), a operator OR jest używany, gdy używamy (!=). Przykład (=) z operatorem AND.

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

Przykład (!=) z operatorem OR.

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. =: oznacza równy
  2. != : Nie równe
  3. ! : reprezentuje operator NOT

AND i OR są traktowane jako operatory łączenia w MySQL.

4. Do czego służy instrukcja IFNULL() w MySQL?

Odpowiedź: Zapytanie w MySQL można zapisać precyzyjnie za pomocą instrukcji IFNULL(). Instrukcja IFNULL() sprawdza swój pierwszy argument i zwraca, jeśli nie ma wartości NULL, lub zwraca drugi argument, w przeciwnym razie.

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

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Chcesz zobaczyć tylko niektóre wiersze ze zbioru wyników od początku lub końca zbioru wyników. Jak to zrobisz?

Odpowiedź: Aby osiągnąć opisany powyżej scenariusz, musimy użyć klauzuli LIMIT razem z ORDER BY.

Pokaż 1 rekord
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
Pokaż 5 rekordów
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 kontra MySQL. Który i dlaczego?

Odp: Obydwa rozwiązania mają swoje zalety i wady. Z czasem wolę MySQL.

Powód wyboru MySQL zamiast Oracle
  1. Mysql to FOSS.
  2. MySQL jest przenośny.
  3. MYSQL obsługuje zarówno GUI, jak i wiersz poleceń.
  4. Administracja MySQL jest obsługiwana przez przeglądarkę zapytań.
7. Jak uzyskać aktualną datę w MySQL?

Odpowiedź: Uzyskanie aktualnej daty w MySQL jest tak proste, jak wykonanie poniższej instrukcji SELECT.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. Jak wyeksportujesz tabele jako plik XML w MySQL?

Odpowiedź: Używamy opcji „-e” (eksport), aby wyeksportować tabelę MySQL lub całą bazę danych do pliku XML. W przypadku dużych tabel może być konieczne ręczne wdrożenie, ale w przypadku małych tabel aplikacje takie jak phpMyAdmin mogą wykonać to zadanie.

Może to zrobić natywne polecenie MySQL.

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

Gdzie NAZWA_UŻYTKOWNIKA to nazwa użytkownika bazy danych, nazwa_tabeli to tabela, którą eksportujemy do formatu XML, a nazwa_tabeli.xml to plik xml, w którym przechowywane są dane.

9. Co to jest MySQL_pconnect? A czym różni się od MySQL_connect?

Odpowiedź: MySQL_pconnect() otwiera trwałe połączenie z bazą danych MySQL, co oznacza po prostu, że baza danych nie jest otwierana przy każdym ładowaniu strony i dlatego nie możemy użyj MySQL_close(), aby zamknąć trwałe połączenie.

Krótka różnica między MySQL_pconnect i MySQL_connect to.

W przeciwieństwie do MySQL_pconnect, MySQL_connect – otwiera bazę danych przy każdym załadowaniu strony, którą można zamknąć w dowolnym momencie za pomocą instrukcji MySQL_close().

10. Musisz pokazać wszystkie indeksy zdefiniowane w tabeli, powiedz „użytkownik” bazy danych, powiedz „mysql”. Jak to osiągniesz?

Odpowiedź: Poniższe polecenie wyświetli wszystkie indeksy tabeli „user”.

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. Czym są tabele CSV?

Odpowiedź: CSV oznacza wartości oddzielone przecinkami, czyli wartości oddzielone znakami. Tabela CSV przechowuje dane w formacie zwykłego tekstu i tabeli. Zwykle zawiera jeden rekord w każdym wierszu.

Każdy rekord jest oddzielony określonymi ogranicznikami (przecinek, średnik,…), przy czym każdy rekord ma tę samą sekwencję pól. Tabele CSV są najczęściej używane do przechowywania kontaktów telefonicznych w celu importu i eksportu i mogą być używane do przechowywania dowolnego rodzaju danych w postaci zwykłego tekstu.

To wszystko na teraz. Wrócę tu ponownie z kolejnym ciekawym artykułem, który z pewnością z chęcią przeczytacie. Do tego czasu bądź na bieżąco i połącz się z Tecmint. Nie zapomnij podzielić się z nami swoimi cennymi opiniami w sekcji komentarzy poniżej.