Ngganti jeneng kolom

Kita uga kudu menehi hasil karo jeneng kolom. Yen ora, kita mbaleni jeneng jeneng lan id, nanging padha ngemot data beda. Ing sisih liya, ana kolom id pisanan lan kolom id_karyawan, sing ngemot data sing padha.

Ayo nulis pitakon, sing mung ana kolom sing dibutuhake, lan uga ganti jeneng kolom kanthi jeneng sing padha:

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

Lan asil saka pitakonan iki:

tugas_id tugas_desc deadline id_karyawan emp_name emp_occupation
1 Ndandani bug ing frontend 2022-06-01 1 Iwan Iwan Programmer
2 Ndandani bug ing backend 2022-06-15 2 Petrov Petruk Programmer
7 Seneng urip (NULL) 4 Rabinovich Moisha direktur
3 Tuku kopi 2022-07-01 5 Kirienko Anastasia Kantor manager
4 Tuku kopi 2022-08-01 5 Kirienko Anastasia Kantor manager
5 Tuku kopi 2022-09-01 5 Kirienko Anastasia Kantor manager
8 Seneng urip (NULL) 6 Vaska kucing

Apik banget, masalah karo jeneng kolom sing ora bisa dingerteni wis kasil ditanggulangi. Pitakonan wis rada suwe, nanging kabeh wis jelas ing tabel asil. Lan ora ana kolom ekstra.

Tabel alias

Kadhangkala jeneng tabel dawa banget lan njupuk akeh spasi ing query. Mulane, pangripta SQL, kanggo nambah readability, kaya ing kasus kolom, nawakake kemampuan kanggo nemtokake alias tabel.

Bentuk umum alias (alias tabel) kaya ing ngisor iki:

FROM table1 alias1, table2 alias2

Ayo nulis maneh pitakon sadurunge nganggo 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

Readability wis rada suda, nanging iki amarga jeneng tabel wiwitane prasaja lan cetha. Bisa uga kaya iki:

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 

Lan ing kasus iki, alias wis migunani, ta? ;)

kunci utama

Lan siji informasi penting liyane babagan tabel. Elinga yen kita duwe kolom employee_id ing tabel tugas? Kanthi kasebut, kita ngrujuk ID karyawan saka tabel karyawan.

Yen kita pengin ngrujuk saka siji tabel menyang larik tabel liyane, banjur tabel sing dirujuk kudu duwe kolom kanthi ID, sing uga disebut kunci utama - KUNCI PRIMARY .

Paling asring, iki minangka kolom sing ditambahake khusus sing jinis nilai int . Nalika nambahake rekaman menyang tabel, SQL kanthi otomatis nyetel nilai kolom iki.

Banjur akeh perkara sing ana gandhengane karo kunci kasebut:

  • ngubungake tabel beda kanggo saben liyane;
  • telusuran cepet lan nyaring kanthi id;
  • integritas data ing basis data (ora ana referensi kanggo id sing ora ana);
  • mbusak data sing ora ana sing ngrujuk;
  • lan akeh liyane.

Ngomong-ngomong, ana kahanan nalika meja duwe kunci alami sing disebut . Iki nalika ana kolom sing isine nggambarake keunikan. Contone, kita mutusake kanggo nambah menyang meja karyawan:

  • Urutan rawuh ing perusahaan;
  • Nomer pajak;
  • Nomer lan seri paspor.

Kadhangkala desainer basis data nggunakake kunci alami minangka kunci utama, nanging paling asring digunakake kanthi kapisah. Sawise kabeh, cathetan bisa dibusak, diganti, lan liya-liyane.

Aku Upaminipun sampeyan maca crita ing Internet nalika bailiffs nyumerepi utang saka namesake lengkap ing wong? Iki mung ana hubungane karo konsep kunci unik. Iku trep banget kanggo bank-bank lan bailiffs kanggo nggoleki wong kanthi jeneng lengkap lan taun lair. Lan ing 99% kasus iki cukup kanggo ngenali wong.

Nanging sisa <1% minangka jeneng lengkap, kanthi taun lair sing padha. Ing urip saben kita, paling ora ana wong kaya ngono, nanging ing skala nasional, ana. Umumé, yen sampeyan nulis piranti lunak utawa ngrancang database, mula migunani kanggo ngerti manawa iki uga bisa kedadeyan.