Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m290:learningunits:lu05:theorie:03 [2024/09/27 11:44] – [Overview] vdemir | modul:m290:learningunits:lu05:theorie:03 [2024/10/17 12:42] (aktuell) – vdemir | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
**Source**: | **Source**: | ||
- | | + | |
- | | + | |
- | | + | |
- | | + | - [[https:// |
- | | + | |
+ | | ||
===== Learning Objectives ===== | ===== Learning Objectives ===== | ||
- | - Discuss what database | + | - Discuss what database |
- Explain the four most important CONSTRAINTS in database systems | - Explain the four most important CONSTRAINTS in database systems | ||
- | - Apply constraints | + | - Apply CONSTRAINTS |
===== Overview ===== | ===== Overview ===== | ||
- | [[https:// | + | ** Sources: ** |
+ | * [[https:// | ||
+ | * [[https:// | ||
- | MySQL constraints ensure data integrity, enforcing rules at the database level. | + | MySQL constraints ensure data integrity, enforcing rules at the database level. |
- | * Primary Key, | + | |
- | * Foreign Key, | + | |
- | * NOT NULL, | + | |
- | * AUTO_INCREMENT, | + | |
- | * UNIQUE. | + | |
- | Let’s explore these constraints with their syntax and practical examples. | + | - PRIMARY KEY |
+ | - AUTO_INCREMENT | ||
+ | - NOT NULL | ||
+ | - UNIQUE | ||
+ | - FOREIGN KEY | ||
- | ===== PRIMARY KEY ===== | + | Let’s explore these CONSTRAINTS with their syntax and practical examples. |
+ | |||
+ | ==== 1. PRIMARY KEY ==== | ||
The Primary Key constraint uniquely identifies each record in a table. A primary key column (or a set of columns) must contain unique, non-null values. Each table can have only one primary key. | The Primary Key constraint uniquely identifies each record in a table. A primary key column (or a set of columns) must contain unique, non-null values. Each table can have only one primary key. | ||
Zeile 45: | Zeile 49: | ||
); | ); | ||
+ | ==== 2. AUTO INCREMENT ==== | ||
+ | The AUTO_INCREMENT attribute automatically generates a unique number for new rows. It is typically used with the primary key to create unique identifiers without manual input. | ||
+ | |||
+ | ** General Syntax ** | ||
+ | |||
+ | CREATE TABLE table_name ( | ||
+ | column_name datatype AUTO_INCREMENT, | ||
+ | PRIMARY KEY (column_name) | ||
+ | ); | ||
+ | |||
+ | ** Example ** | ||
+ | CREATE TABLE products ( | ||
+ | product_id INT AUTO_INCREMENT PRIMARY KEY, | ||
+ | product_name VARCHAR(50) | ||
+ | ); | ||
+ | |||
+ | Here, product_id automatically increments each time a new row is inserted, ensuring a unique ID for every product. | ||
+ | | ||
+ | ==== 3. NOT NULL ==== | ||
+ | The NOT NULL constraint ensures that a column cannot contain a NULL value. It is used when the column must always have a value. | ||
+ | |||
+ | ** General Syntax ** | ||
+ | |||
+ | CREATE TABLE table_name ( | ||
+ | column_name datatype NOT NULL | ||
+ | ); | ||
+ | |||
+ | ** Example ** | ||
+ | |||
+ | CREATE TABLE employees ( | ||
+ | employee_id INT PRIMARY KEY, | ||
+ | employee_name VARCHAR(50) NOT NULL | ||
+ | ); | ||
+ | |||
+ | In this example, the employee_name column is constrained to never contain a NULL value, ensuring every employee has a name. | ||
+ | |||
+ | ==== 4. UNIQUE ==== | ||
+ | The UNIQUE constraint ensures that all values in a column (or a set of columns) are unique across the table. Unlike the primary key, a table can have multiple unique constraints. | ||
+ | |||
+ | ** General Syntax ** | ||
+ | CREATE TABLE table_name ( | ||
+ | column_name datatype UNIQUE | ||
+ | ); | ||
+ | | ||
+ | ** Example ** | ||
+ | |||
+ | CREATE TABLE users ( | ||
+ | user_id INT PRIMARY KEY, | ||
+ | email VARCHAR(100) UNIQUE | ||
+ | ); | ||
+ | |||
+ | In this case, the email column must contain unique values. No two users can have the same email address. | ||
+ | |||
+ | ==== 5. FOREIGN KEY ==== | ||
+ | The Foreign Key constraint ensures referential integrity by linking a column in one table to the primary key of another. It establishes a relationship between two tables and enforces the rule that data in the foreign key column must match an existing primary key in the referenced table. | ||
+ | |||
+ | ** General Syntax ** | ||
+ | |||
+ | CREATE TABLE table_name ( | ||
+ | column_name1 datatype, | ||
+ | column_name2 datatype, | ||
+ | FOREIGN KEY (column_name1) REFERENCES another_table(primary_key_column) | ||
+ | ); | ||
+ | | ||
+ | ** Example ** | ||
+ | CREATE TABLE orders ( | ||
+ | order_id INT PRIMARY KEY, | ||
+ | customer_id INT, | ||
+ | FOREIGN KEY (customer_id) REFERENCES customers(customer_id) | ||
+ | ); | ||
+ | |||
+ | In this example, customer_id in the orders table references the customer_id in the customers table. This relationship ensures that any customer_id in the orders table corresponds to an existing customer in the customers table. | ||
+ | |||
+ | ===== Practical Example with Multiple Constraints ===== | ||
+ | Let’s create a students table to demonstrate multiple constraints in action. | ||
+ | |||
+ | CREATE TABLE students ( | ||
+ | student_id INT AUTO_INCREMENT PRIMARY KEY, | ||
+ | student_name VARCHAR(50) NOT NULL, | ||
+ | email VARCHAR(100) UNIQUE, | ||
+ | class_id INT, | ||
+ | FOREIGN KEY (class_id) REFERENCES classes(class_id) | ||
+ | ); | ||
+ | ===== Summary ===== | ||
+ | In summary, MySQL constraints like Primary Key, Foreign Key, NOT NULL, AUTO_INCREMENT, | ||
+ | |||
+ | * **PRIMARY KEY** is applied to student_id to uniquely identify each data record in the table. | ||
+ | * **AUTO_INCREMENT** is applied to student_id to automatically generate a unique ID for each student. | ||
+ | * **NOT NULL** is applied to student_name, | ||
+ | * **UNIQUE** ensures that no two students can register with the same email. | ||
+ | * **FOREIGN KEY** links class_id to another table classes, maintaining the relationship between students and their class. | ||
+ | |||
+ | **Why Use Constraints? | ||
+ | * **Data Integrity: | ||
+ | * **Preventing Errors:** Constraints like NOT NULL prevent the insertion of incomplete or invalid data. | ||
+ | * **Automation: | ||
- | ==== Vocabulary ==== | + | ===== Vocabulary |
^English ^ Deutsch ^ | ^English ^ Deutsch ^ | ||
- | | constraint | Bedingung, Beschränkung | | + | | constraint | Bedingung, Beschränkung | |
| to enforce | durchsetzen | | | to enforce | durchsetzen | | ||
| to restrict | einschränken, | | to restrict | einschränken, |