Linux Kullanıcıları için 11 Gelişmiş MySQL Veritabanı "Mülakat Soruları ve Cevapları"


Tecmint Topluluğu tarafından çok beğenilen iki MySQL makalesini zaten yayınladık. Bu, MySQL Röportaj serisinin üçüncü makalesi ve Röportaj Türü Sütunundaki on altı makaledir.

  1. 15 Temel MySQL Mülakat Sorusu
  2. Orta Seviyeler için 10 MySQL Veritabanı Mülakat Sorusu

Sizlerin desteği sayesinde buraya ulaştık ve gelecekte de aynısını sizin için istiyoruz. Bu yazıda Mülakat yönü ile ilgili soru olan MySQL'in pratik yönüne odaklanacağız.

1. SELECT ifadesini kullanarak çalıştırdığınız sunucunun sürümünü bulun ve mevcut veritabanının adını yazdırın.

Cevap: Aşağıdaki MySQL komutu, sunucu sürümünü ve o anda seçili olan Veritabanını gösterecektir.

mysql> SELECT VERSION(), DATABASE();

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

Herhangi bir veritabanı seçmediğimiz için Veritabanı Sütununda NULL değeri görünüyor. Bu nedenle aşağıdaki komutta gösterildiği gibi veritabanını seçin.

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. 'Tecmint' yazan bir tablodan 'SAM' dışındaki tüm kullanıcıları seçmek için Operatör (!) KULLANMAYIN

Cevap: Aşağıdaki ifade, 'SAM< kullanıcısı hariç 'Tecmint' tablosundaki tüm kullanıcıların tüm sütunlarını gösterecektir.'.

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. 'AND'ı NOT(!) Operatörü ile uygulamak mümkün mü?

Cevap: (=) kullandığımızda AND operatörü, (!=) kullandığımızda OR operatörü kullanılır. AND Operatörlü (=) örneği.

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

VEYA Operatörlü (!=) Örneği.

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. = : Eşittir anlamına gelir
  2. != : Eşit Değil
  3. ! : DEĞİL Operatörünü temsil eder

AND ve OR, MySQL'de birleştirme operatörleri olarak kabul edilir.

4. MySQL'de hangi IFNULL() ifadesi kullanılır?

Cevap: MySQL'deki Sorgu, IFNULL() ifadesi kullanılarak tam olarak yazılabilir. IFNULL() ifadesi ilk argümanını test eder ve NULL değilse geri döner, aksi halde ikinci argümanını döndürür.

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

+---------+---------+ 
| name 	  | id      | 
+---------+---------+ 
| bernina | 198-48  | 
| bertha  | Unknown | 
| ben     | Unknown | 
| bill    | 475-83  | 
+---------+---------+
5. Sonuç kümesinin başından veya sonundan itibaren sonuç kümesindeki yalnızca belirli satırları görmek istiyorsunuz. Nasıl yapacaksın?

Cevap: Yukarıda açıklanan senaryoyu elde etmek için ORDER BY ile birlikte LIMIT yan tümcesini kullanmamız gerekiyor.

1 Kayıt Göster
mysql> SELECT * FROM name LIMIT 1;

+----+------+------------+-------+----------------------+------+ 
| id | name | birth      | color | foods                | cats | 
+----+------+------------+-------+----------------------+------+ 
| 1  | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0    | 
+----+------+------------+-------+----------------------+------+
5 Kaydı Göster
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 ve MySQL. Hangisi ve Neden?

Cevap: Her ikisinin de avantajları ve dezavantajları var. Ben artık MySQL'i tercih ediyorum.

Oracle Üzerinden MySQL'in Seçilme Nedeni
  1. MySQL FOSS'tur.
  2. MySQL taşınabilirdir.
  3. MYSQL hem GUI'yi hem de Komut İstemi'ni destekler.
  4. MySQL Yönetimi Sorgu Tarayıcısı üzerinden desteklenir.
7. MySQL'de güncel tarihi nasıl alacaksınız?

Cevap: MySQL'de güncel tarihi almak, aşağıdaki SELECT İfadesini yürütmek kadar basittir.

mysql> SELECT CURRENT_DATE();

+----------------+
| CURRENT_DATE() |
+----------------+
| 2014-06-17     |
+----------------+
8. MySQL'de tabloları XML dosyası olarak nasıl dışa aktaracaksınız?

Cevap: MySQL tablosunu veya tüm veritabanını bir XML dosyasına aktarmak için '-e' (dışa aktarma) seçeneğini kullanıyoruz. Büyük tablolarda bunu manuel olarak uygulamamız gerekebilir ancak küçük tablolarda phpMyAdmin gibi uygulamalar işi yapabilir.

MySQL'in yerel bir komutu bunu yapabilir.

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

USER_NAME, Veritabanının kullanıcı adıdır, tablo_adı, XML'e aktardığımız tablodur ve tablo_adı.xml, verilerin saklandığı xml dosyasıdır.

9. MySQL_pconnect nedir? Peki MySQL_connect'ten farkı nedir?

Cevap: MySQL_pconnect(), MySQL Veritabanına kalıcı olan bir bağlantı açar; bu, sayfa her yüklendiğinde veritabanının açılmadığı ve dolayısıyla bunu yapamadığımız anlamına gelir. Kalıcı bir bağlantıyı kapatmak için MySQL_close() işlevini kullanın.

MySQL_pconnect ve MySQL_connect arasında kısa bir fark vardır.

MySQL_pconnect'in aksine, MySQL_connect – Sayfa her yüklendiğinde Veritabanını açar ve MySQL_close() ifadesi kullanılarak istenildiği zaman kapatılabilir.

10. Veritabanının 'kullanıcısı' olarak adlandırılan bir tabloda tanımlanan tüm dizinleri 'mysql' olarak göstermeniz gerekir. Bunu nasıl başaracaksınız?

Cevap: Aşağıdaki komut bir 'kullanıcı' tablosunun tüm dizinlerini gösterecektir.

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. CSV tabloları nedir?

Cevap: CSV, Virgülle Ayrılmış Değerler, diğer adıyla Karakterle Ayrılmış Değerler anlamına gelir. CSV tablosu, verileri düz metin ve tablo biçiminde saklar. Genellikle satır başına bir kayıt içerir.

Her kayıt, her kaydın aynı alan dizisine sahip olduğu belirli sınırlayıcılarla (Virgül, Noktalı Virgül,…) ayrılır. CSV tabloları en yaygın olarak telefon kişilerini İçe ve Dışa Aktarma işlemlerine depolamak için kullanılır ve her türlü düz metin verisini depolamak için kullanılabilir.

Şimdilik bu kadar. Yine ilginç bir yazıyla karşınızda olacağım, siz de okumayı seveceksiniz. O zamana kadar Tecmint'i takip etmeye ve bağlantıda kalmaya devam edin ve aşağıdaki yorum bölümünde bize değerli geri bildirimlerinizi iletmeyi unutmayın.