คีย์ คือ ฟิลด์ข้อมูลที่ถูกกำหนดขึ้นมาในแต่ละตาราง เพื่อการค้นหา อ้างอิง แก้ไขการเปลี่ยนแปลงข้อมูลในเร็คคอร์ด หรือกำหนดการสร้างความสัมพันธ์กับฟิลด์อื่นในตารางอื่น การกำหนดคีย์มีหลากหลายรูปแบบ ดังนี้
คือ คีย์หลักของตารางที่จะกำหนดให้เป็นฟิลด์ที่สำคัญที่สุดในตาราง ฟิลด์นี้จะต้องไม่มีข้อมูลว่างและจะต้องไม่ซ้ำกัน เช่น ฟิลด์รหัสนักเรียนในตารางนักเรียน ฟิลด์รหัสรายวิชาในตารางรายวิชา เป็นต้น โดยทั่วไปจะนำฟิลด์ที่เป็นคีย์หลักไปสร้างความสัมพันธ์กับตารางอื่น
เป็นคีย์ที่กำหนดไว้ให้กับฟิลด์ที่มีความสำคัญรองลงมาจากคีย์หลักนั่นเอง แต่คีย์รองนั้นสามารถมีข้อมูลซ้ำกันได้ คีย์รองหรือดัชนีจะช่วยในการค้นหาข้อมูลภายในตารางได้ง่ายขึ้น ซึ่งถ้าหากไม่ได้กำหนดคีย์รองหรือดัชนี ไว้ โปรแกรมก็จะค้นหาข้อมูลทีละเร็คคอร์ด ซึ่งนั่นจะทำให้เสียเวลาในการค้นหาข้อมูลเป็นอย่างมาก เช่น ในตารางนักเรียนมีฟิลด์รหัสนักเรียนเป็นคีย์หลัก คีย์รองหรือดัชนี อาจจะเป็นฟิลด์อายุ เป็นต้น
ใน 1 ตารางอาจจะมีฟิลด์ที่มีคุณสมบัติใช้เป็นคีย์หลักได้ มากกว่า 1 ฟิลด์ก็เป็นได้ เช่น ตารางนักเรียน มีฟิลด์รหัสนักเรียน และฟิลด์เลขที่นักเรียน ที่สามารถใช้เป็นคีย์หลักได้ เพราะฟิลด์รหัสนักเรียนและฟิลด์เลขที่นักเรียนนั้นข้อมูลจะไม่ซ้ำกัน เป็นต้น ซึ่งเราจะเรียกทั้งสองคีย์ว่าเป็น คีย์คู่แข่ง และถ้าเราเลือกฟิลด์ใดฟิลด์หนึ่งเป็นคีย์หลักแล้ว จะเรียกอีกฟิลด์ว่าเป็นคีย์สำรอง
เกิดจากการนำฟิลด์หลายๆ ฟิลด์มารวมกันเพื่อให้เป็นคีย์หลัก คือไม่มีข้อมูลซ้ำและไม่มีค่าว่าง ซึ่งบางครั้งการสร้างคีย์หลักเพียงฟิลด์เดียวนั้นอาจจะเกิดข้อมูลซ้ำซ้อนกันได้ หรือในตารางนั้นไม่มีฟิลด์ที่มีคุณสมบัติเป็นคีย์หลักได้ เช่น ตารางนักเรียนไม่มีรหัสนักเรียน เลยต้องใช้ฟิลด์ชื่อและฟิลด์สกุลรวมกันเป็นคีย์หลัก
เป็นคีย์ที่เชื่อมตารางที่เกี่ยวข้องกันเข้าด้วยกัน เช่น รหัสนักเรียนของตารางนักเรียน และรหัสนักเรียนของตารางลงทะเบียน ที่มีฟิลด์รหัสนักเรียนเป็นฟิลด์ร่วม โดยที่รหัสนักเรียนเป็นคีย์หลักในตารางนักเรียน ส่วนรหัสนักเรียนของตารางลงทะเบียนเป็นคีย์นอก