Mengubah nama kolom

Kita juga perlu berurusan dengan nama kolom. Jika tidak, kami mengulangi nama nama dan id, tetapi berisi data yang berbeda. Di sisi lain, ada kolom id pertama dan kolom employee_id yang berisi data yang sama.

Mari tulis kueri, di mana hanya akan ada kolom yang diperlukan, dan juga ganti nama kolom dengan nama yang sama:

SELECT  
    task.id AS task_id,  
    task.name AS task_desc, 
    task.deadline AS deadline, 
    emploee.id AS emploee_id,  
    emploee.name AS emp_name,  
emploee.occupation AS	
    emp_occupation 
FROM employee, task
WHERE emploee.id = task.emploee_id

Dan hasil dari kueri ini:

task_id tugas_desc tenggat waktu employee_id emp_name emp_occupation
1 Perbaiki bug di frontend 01-06-2022 1 Ivanov Ivan Programmer
2 Perbaiki bug di backend 15-06-2022 2 Petrov Petr Programmer
7 Menikmati hidup (BATAL) 4 Rabinovich Moisha Direktur
3 Beli kopi 01-07-2022 5 Kirienko Anastasia Manajer kantor
4 Beli kopi 01-08-2022 5 Kirienko Anastasia Manajer kantor
5 Beli kopi 01-09-2022 5 Kirienko Anastasia Manajer kantor
8 Menikmati hidup (BATAL) 6 Vaska kucing

Hebat, masalah dengan nama kolom yang tidak dapat dipahami telah berhasil diselesaikan. Kueri menjadi agak panjang, tetapi semuanya jelas di tabel yang dihasilkan. Dan tidak ada kolom tambahan.

alias tabel

Terkadang nama tabel terlalu panjang dan menghabiskan banyak ruang dalam kueri. Oleh karena itu, pembuat SQL, untuk meningkatkan keterbacaan, seperti dalam kasus kolom, menawarkan kemampuan untuk menentukan alias tabel.

Bentuk umum alias (tabel alias) adalah sebagai berikut:

FROM table1 alias1, table2 alias2

Mari tulis ulang kueri kita sebelumnya dengan alias singkat:

SELECT  
    t.id AS task_id,  
    t.name AS task_desc, 
    t.deadline AS deadline, 
    e.id AS emploee_id,  
    e.name AS emp_name,  
    e.occupation AS emp_occupation 
    FROM employee e, task t 
WHERE e.id = t.emploee_id

Keterbacaan sedikit menurun, tetapi ini karena nama tabel awalnya sederhana dan jelas. Mungkin juga seperti ini:

SELECT  
  	task.id AS task_id,  
  	task.name AS task_desc, 
  	task.deadline AS deadline, 
  	emploee.id AS emploee_id,  
  	emploee.name AS emp_name,  
emploee.occupation AS	
  	emp_occupation 
FROM  
  	Microsoft_it_department_employee employee, 
  	Year2022_priority_task task 
WHERE emploee.id = task.emploee_id 

Dan dalam hal ini, alias sudah berguna, bukan? ;)

kunci utama

Dan satu lagi informasi penting tentang tabel. Ingat bahwa kita memiliki kolom employee_id di tabel tugas? Dengan itu, kami mereferensikan ID karyawan dari tabel karyawan.

Jika kita ingin merujuk dari satu tabel ke baris tabel lain, maka tabel yang direferensikan harus memiliki kolom dengan ID, yang juga disebut primary key - PRIMARY KEY .

Paling sering, ini adalah kolom yang ditambahkan secara khusus yang tipe nilainya int . Saat menambahkan catatan ke tabel, SQL secara otomatis menetapkan nilai kolom ini.

Kemudian banyak hal yang terkait dengan kunci-kunci ini:

  • menghubungkan tabel yang berbeda satu sama lain;
  • pencarian cepat dan pemfilteran berdasarkan id;
  • integritas data dalam database (tidak ada referensi ke id yang tidak ada);
  • menghapus data yang tidak dirujuk oleh siapa pun;
  • dan banyak banyak lainnya.

Omong-omong, ada situasi ketika tabel memiliki apa yang disebut kunci alami . Ini adalah ketika ada kolom yang isinya menyiratkan keunikan. Misalnya, kami memutuskan untuk menambahkan ke tabel karyawan:

  • Urutan kedatangan mereka di perusahaan;
  • Nomor pajak;
  • Nomor dan seri paspor.

Terkadang perancang basis data menggunakan kunci alami sebagai kunci utama, tetapi paling sering digunakan secara terpisah. Bagaimanapun, catatan dapat dihapus, diubah, dan sejenisnya.

Saya kira Anda membaca cerita di Internet ketika juru sita menggantungkan hutang dengan nama lengkapnya pada seseorang? Ini hanya terkait dengan konsep kunci unik. Sangat mudah bagi bank dan juru sita untuk mencari seseorang dengan nama lengkap dan tahun lahir. Dan dalam 99% kasus ini cukup untuk mengidentifikasi seseorang.

Tapi sisanya <1% adalah senama lengkap, dengan tahun lahir yang sama. Dalam kehidupan kita masing-masing, kemungkinan besar tidak ada orang seperti itu, tetapi dalam skala nasional, ada. Secara umum, jika Anda sedang menulis perangkat lunak atau mendesain database, maka perlu diketahui bahwa ini juga bisa terjadi.