MySQL 是一種流行的關系型數據庫,數據的正確性和一致性是 MySQL 值得我們關注的問題。在數據庫的設計中,MySQL 三大范式非常重要,它們確保數據庫的結構嚴謹,同時避免數據的重復和不一致。
下面我們將簡單介紹 MySQL 三大范式并演示如何進行查詢。
第一范式
第一范式(1NF)確保數據表中所有的列都是原子的,也就是不可再分解的。這個范式是關系型數據庫中最基礎的范式。為了遵循第一范式,我們需要確保每一列都只包含單一的屬性,且不能包含列表或者數組。
CREATE TABLE userinfo ( user_id INT PRIMARY KEY, user_info VARCHAR(255) ); SELECT * FROM userinfo WHERE user_info LIKE '%Jack%';
第二范式
第二范式(2NF)舍棄了數據表中的部分冗余數據。具體來說,如果數據表中某一列只屬于主鍵,那么我們就需要把它移到一個新的數據表里面。這樣做可以確保數據的一致性。
CREATE TABLE users ( user_id INT PRIMARY KEY, username VARCHAR(255), email VARCHAR(255) ); CREATE TABLE user_info ( user_id INT PRIMARY KEY, age INT, country VARCHAR(255), FOREIGN KEY (user_id) REFERENCES users(user_id) ); SELECT users.username, user_info.age, user_info.country FROM users JOIN user_info ON users.user_id = user_info.user_id WHERE users.username = 'Jack';
第三范式
第三范式(3NF)可以進一步確保數據表中的數據不能包含非關鍵性信息。如果一個字段的值可以被其他字段計算得出,那么就應該把它放到另一個數據表中。
CREATE TABLE products ( product_id INT PRIMARY KEY, description VARCHAR(255), price DECIMAL(8, 2) ); CREATE TABLE orders ( order_id INT PRIMARY KEY, product_id INT, quantity INT, FOREIGN KEY (product_id) REFERENCES products(product_id) ); SELECT orders.order_id, products.description, products.price*orders.quantity FROM orders JOIN products ON orders.product_id = products.product_id WHERE orders.order_id = 1;
以上就是 MySQL 三大范式的演示,謝謝閱讀!
上一篇css 四角內凹.txt
下一篇css三種定義