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, | ||