Video Hướng dẫn
- [MySQL] Create Database, table
- [MySQL] Add PRIMARY KEY, FOREIGN KEY Constraint
- [MySQL] Create Database ER diagram
Video Hướng dẫn
https://www.w3schools.com/sql/sql_primarykey.asp
Chúng ta có thể khai báo luôn khóa chính lúc tạo bảng luôn, như thế này
CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);Chúng ta nên tạo khi
create tableluôn
Nếu đã tạo rồi thì giờ ta update lại thôi
ALTER TABLE Persons
ADD PRIMARY KEY (ID);ALTER TABLE admin
ADD PRIMARY KEY (admin_id);
ALTER TABLE street
ADD PRIMARY KEY (street_id);
ALTER TABLE poi
ADD PRIMARY KEY (poi_id);
ALTER TABLE street_type
ADD PRIMARY KEY (street_type_id);
ALTER TABLE categories
ADD PRIMARY KEY (category_id);
ALTER TABLE address
ADD PRIMARY KEY (addr_id);https://www.w3schools.com/sql/sql_foreignkey.asp
Chúng ta có thể khai báo luôn khóa chính lúc tạo bảng luôn, như thế này
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);Đối với khóa ngoại thì ta nên tạo xong hết bảng rồi mới tạo khóa ngoại, vì nếu chưa tạo bảng mà tạo khóa ngoại liên kết tới nó thì chương trình sẽ báo lỗi không tồn tại
Nếu đã tạo rồi thì giờ ta update lại thôi
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);-- admin: Không có khóa ngoại
-- street
-- Cú pháp là ADD FOREIGN KEY ({Tên cột khóa ngoại}) REFERENCES {Tên bảng liên kết}({Khóa chính của bảng liên kết});
-- Bảng này có 2 khóa ngoại
ALTER TABLE street
ADD FOREIGN KEY (street_type_id) REFERENCES street_type(street_type_id);
ALTER TABLE street
ADD FOREIGN KEY (admin_id) REFERENCES admin(admin_id);
-- poi
-- Có 3 khóa ngoại
ALTER TABLE poi
ADD FOREIGN KEY (category_id) REFERENCES categories(category_id);
ALTER TABLE poi
ADD FOREIGN KEY (address_id) REFERENCES address(addr_id);
ALTER TABLE poi
ADD FOREIGN KEY (admin_id) REFERENCES admin(admin_id);
-- street_type
-- Không có khóa ngoại, nó là bảng danh mục :')
-- categories
-- Không có khóa ngoại, nó là bảng danh mục :')
-- address
-- Có 2 khóa ngoại
ALTER TABLE address
ADD FOREIGN KEY (street_id) REFERENCES street_type(street_type_id);
ALTER TABLE address
ADD FOREIGN KEY (admin_id) REFERENCES admin(admin_id);Cột khóa chính thường không được phép null
NOT NULLvà được cho tự động tăngAUTO_INCREMENT
ALTER TABLE
clients
ALTER COLUMN
phoneCú pháp chuẩn lúc tạo bảng
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);https://chartio.com/resources/tutorials/how-to-alter-a-column-from-null-to-not-null-in-sql-server/
https://www.w3schools.com/sql/sql_autoincrement.asp
Create Table
https://www.w3schools.com/sql/sql_create_table.asp
https://youtu.be/fkXIAzu6gec
Cú pháp
Chúng ta có thể khai báo luôn khóa chính lúc tạo bảng luôn, như thế này
Lỗi
Lỗi này do cửa sổ
querykhông biết nên truy vấn từ Database nào, trong mysql workbend thì tanhấp đúpchuột vào Database muốn truy vấn đểactivenó lênSelect the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebarThực hành
Mình nên để mấy cái cột liên kết (khoái ngoại, khóa chính) lên đầu bảng cho dễ quản lý