Video Hướng dẫn
- [MySQL] Create Database, table
- [MySQL] Add PRIMARY KEY, FOREIGN KEY Constraint
- [MySQL] Create Database ER diagram
https://www.w3schools.com/sql/sql_create_db.asp
CREATE DATABASE databasename;
CREATE DATABASE mapping;
Khi đặt tên nên:
- Không dấu
- Không khoảng trắng
- Viết thường
- Không ký tự đặc biệt
https://www.w3schools.com/sql/sql_create_table.asp
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
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
);
15:09:03 CREATE TABLE admin( admin_id int, ward varchar(255), district varchar(255), city varchar(255) ) Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar. 0.000 sec
Lỗi này do cửa sổ query
không biết nên truy vấn từ Database nào, trong mysql workbend thì ta nhấp đúp
chuột vào Database muốn truy vấn để active
nó lên
Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar
admin
CREATE TABLE admin(
admin_id int,
ward varchar(255),
district varchar(255),
city varchar(255)
);
street
CREATE TABLE street(
street_id int,
street_type_id int,
admin_id int,
street_name varchar(255)
);
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ý
poi
CREATE TABLE poi(
poi_id int,
category_id int,
address_id int,
admin_id int,
name varchar(255)
);
street_type
CREATE TABLE street_type(
street_type_id int,
street_type varchar(255)
);
categories
CREATE TABLE categories(
category_id int,
category varchar(255)
);
address
CREATE TABLE address(
addr_id int,
street_id int,
admin_id int,
addr_no varchar(255)
);
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 table
luô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);
https://dataedo.com/kb/tools/mysql-workbench/create-database-diagram
Cột khóa chính thường không được phép null
NOT NULL
và được cho tự động tăngAUTO_INCREMENT
ALTER TABLE
clients
ALTER COLUMN
phone
Cú 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