Bùi Tấn Lực - 817
- 22/09/2025
PRIMARY KEY (Khóa chính) trong MySQL dùng để thêm khóa chính, khóa chính có thể là 1 cột hoặc nhiều cột, mỗi bảng chỉ có 1 khóa chính, chi tiết như nào hãy cùng chúng tôi phân tích:
![]()
PRIMARY KEY (Khóa chính) trong MySQL
Chức năng của PRIMARY KEY (Khóa chính) trong MySQL
PRIMARY KEY (Khóa chính) trong MySQL dùng để thêm khóa chính, khóa chính có thể là 1 cột hoặc nhiều cột, mỗi bảng chỉ có 1 khóa chính, khóa chính sẽ giúp truy vấn nhanh hơn vì khóa chính sẽ được index trong bảng, giá trị của khóa chính không được trùng nhau trên tất cả các hàng.
Code PRIMARY KEY (Khóa chính) trong MySQL
PRIMARY KEY (Khóa chính) một cột trong MySQL
CREATE TABLE `tb_khachhang` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`ten` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`gioitinh` tinyint(1) DEFAULT 0,
`email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
<?php
$dbhost = 'localhost';
$dbuser = 'webmoi_userdata'; // Tên username
$dbpass = 'IhNRcn9n'; // Mật khẩu
// Kết nối đến tên username
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Không kết nối được: ' . mysql_error());
}
// Chọn tên database
mysql_select_db('webmoi_tendata');
// Xét kiểu tiếng việt
mysql_query('SET NAMES "utf8"');
// CREATE TABLE `tb_khachhang`
echo "<b>CREATE TABLE `tb_khachhang`</b><br>";
$sql ="CREATE TABLE `tb_khachhang` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`ten` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`gioitinh` tinyint(1) DEFAULT 0,
`email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
";
//Cột id: kiểu int giới hạn 11 ký tự, không cho phép null, PRIMARY KEY là tạo khóa chính, AUTO_INCREMENT là tự động tăng dần sau mỗi lần thêm một hàng
// Cột ten: kiểu chữ varchar giới hạn 255 ký tự, kiểu utf-8, cho phép null
// Cột gioitinh: để tinyint dạng số chỉ 1 ký tự, mặc định là 0, thường giới tính Nam sẽ lưu là 1, Nữ lưu là 0
// Cột email: kiểu chữ varchar giới hạn 255 ký tự, kiểu utf-8, cho phép null
$ketquamot = mysql_query($sql,$conn);
if(!$ketquamot){
die('Không thể tạo bảng: ' . mysql_error());
}else{
echo "Tạo tb_khachhang thành công!";
}
// Đóng kết nối database
mysql_close($conn);
?>
Kết quả:
CREATE TABLE `tb_khachhang`
Tạo tb_khachhang thành công!
PRIMARY KEY (Khóa chính) hai cột trong MySQL
CREATE TABLE `tb_donhang` (
`madonhang` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
`idsanpham` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
`soluong` int(11) DEFAULT 0,
`gia` int(11) DEFAULT 0,
PRIMARY KEY (madonhang, idsanpham)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
<?php
$dbhost = 'localhost';
$dbuser = 'webmoi_userdata'; // Tên username
$dbpass = 'IhNRcn9n'; // Mật khẩu
// Kết nối đến tên username
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Không kết nối được: ' . mysql_error());
}
// Chọn tên database
mysql_select_db('webmoi_tendata');
// Xét kiểu tiếng việt
mysql_query('SET NAMES "utf8"');
// CREATE TABLE `tb_donhang`
echo "<b>CREATE TABLE `tb_donhang`</b><br>";
$sql ="CREATE TABLE `tb_donhang` (
`madonhang` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
`idsanpham` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
`soluong` int(11) DEFAULT 0,
`gia` int(11) DEFAULT 0,
PRIMARY KEY (madonhang, idsanpham)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
";
$ketquamot = mysql_query($sql,$conn);
if(!$ketquamot){
die('Không thể tạo bảng: ' . mysql_error());
}else{
echo "Tạo tb_donhang thành công!";
}
// Đóng kết nối database
mysql_close($conn);
?>
Kết quả:
CREATE TABLE `tb_donhang`
Tạo tb_donhang thành công!
PRIMARY KEY (Khóa chính) bảng chưa có khóa chính trong MySQL
ALTER TABLE tb_donhang ADD PRIMARY KEY (madonhang,idsanpham);
<?php
$dbhost = 'localhost';
$dbuser = 'webmoi_userdata'; // Tên username
$dbpass = 'IhNRcn9n'; // Mật khẩu
// Kết nối đến tên username
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Không kết nối được: ' . mysql_error());
}
// Chọn tên database
mysql_select_db('webmoi_tendata');
// Xét kiểu tiếng việt
mysql_query('SET NAMES "utf8"');
// ALTER TABLE `tb_donhang`
echo "<b>ALTER TABLE `tb_donhang`</b><br>";
$sql ="ALTER TABLE tb_donhang ADD PRIMARY KEY (madonhang,idsanpham)";
$ketquamot = mysql_query($sql,$conn);
if(!$ketquamot){
die('Không thể ALTER TABLE tb_donhang: ' . mysql_error());
}else{
echo "ALTER TABLE tb_donhang thành công!";
}
// Đóng kết nối database
mysql_close($conn);
?>
Kết quả:
ALTER TABLE `tb_donhang`
ALTER TABLE tb_donhang thành công!
Lời kết
Cảm ơn các bạn đã tham khảo bài viết PRIMARY KEY (Khóa chính) trong MySQL.
Tải file database .sql về nếu muốn kiểm tra hoặc thực hành Tải về.
- 0 Bình luận
Bùi Tấn Lực
CEO Bùi Tấn Lực người sáng lập ra Web Mới, là một lập trình viên website, người viết content, chuyên tư vấn các vấn đề về website và SEO website
Chia sẻ nội dung đánh giá của bạn về PRIMARY KEY (Khóa chính) trong MySQL
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Bình luận, Hỏi đáp
Đăng ký tư vấn miễn phí
Tìm hiểu 1 năm không bằng lắng nghe 1 câu tư vấn