Công ty thiết kế website chuẩn SEO Web Mới
Tìm kiếm
Công ty thiết kế website chuẩn SEO Web Mới

Ràng buộc CHECK trong MySQL

Ràng buộc CHECK trong MySQL dùng để ràng buộc các giá trị nhập vào của các cột nhưng chấp nhận giá trị NULL, chi tiết như nào hãy cùng chúng tôi phân tích:

Ràng buộc CHECK trong MySQL

Ràng buộc CHECK trong MySQL

Chức năng của Ràng buộc CHECK trong MySQL

Ràng buộc CHECK trong MySQL dùng để ràng buộc các giá trị nhập vào của các cột nhưng chấp nhận giá trị NULL.

Ràng buộc CHECK khi tạo bảng trong MySQL

Ràng buộc CHECK một cột khi tạo bảng trong MySQL

<?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_bangnhanvien`
   echo "<b>CREATE TABLE `tb_bangnhanvien`</b><br>";
   $sql ="CREATE TABLE `tb_bangnhanvien` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `ten` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `luong` int(11),
  `tuoi` int(11),
  CONSTRAINT CHE_tuoi CHECK (tuoi>17),
  CONSTRAINT CHE_luong CHECK (luong>5000000)
  ) 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
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể tạo bảng: ' . mysql_error());  
   }else{
	  echo "Tạo tb_bangnhanvien thành công!"; 
   } 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

CREATE TABLE `tb_bangnhanvien`
Tạo tb_bangnhanvien thành công!

Ràng buộc CHECK nhiều cột khi tạo bảng trong MySQL

<?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_bangnhanvien`
   echo "<b>CREATE TABLE `tb_bangnhanvien`</b><br>";
   $sql ="CREATE TABLE `tb_bangnhanvien` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `ten` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `luong` int(11),
  `tuoi` int(11),
  CONSTRAINT CHE_tuoi_luong CHECK (tuoi>17 AND luong>5000000)
  ) 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
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể tạo bảng: ' . mysql_error());  
   }else{
	  echo "Tạo tb_bangnhanvien thành công!"; 
   } 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

CREATE TABLE `tb_bangnhanvien`
Tạo tb_bangnhanvien thành công!

ALTER TABLE Ràng buộc CHECK sau khi tạo bảng trong MySQL

ALTER TABLE Ràng buộc CHECK một cột sau khi tạo bảng trong MySQL

<?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_bangnhanvien`
   echo "<b>ALTER TABLE `tb_bangnhanvien`</b><br>";
   $sql ="ALTER TABLE tb_bangnhanvien
   ADD CONSTRAINT CHK_tuoi CHECK (tuoi>=18)";
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể ALTER TABLE: ' . mysql_error());  
   }else{
	  echo "ALTER TABLE tb_bangnhanvien thành công!"; 
   } 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

ALTER TABLE `tb_bangnhanvien`
ALTER TABLE tb_bangnhanvien thành công!

ALTER TABLE Ràng buộc CHECK nhiều cột sau khi tạo bảng trong MySQL

<?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_bangnhanvien`
   echo "<b>ALTER TABLE `tb_bangnhanvien`</b><br>";
   $sql ="ALTER TABLE tb_bangnhanvien
   ADD CONSTRAINT CHK_tuoi_luong CHECK (tuoi>=18 AND luong >5000000)";
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể ALTER TABLE: ' . mysql_error());  
   }else{
	  echo "ALTER TABLE tb_bangnhanvien thành công!"; 
   } 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

ALTER TABLE `tb_bangnhanvien`
ALTER TABLE tb_bangnhanvien thành công!

Xóa tên ràng buộc CHECK trong MySQL

<?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_bangnhanvien`
   echo "<b>ALTER TABLE `tb_bangnhanvien`</b><br>";
   $sql ="ALTER TABLE tb_bangnhanvien
          DROP CONSTRAINT CHK_tuoi";
   $ketquamot = mysql_query($sql,$conn);
   if(!$ketquamot){
	  die('Không thể ALTER TABLE: ' . mysql_error());  
   }else{
	  echo "ALTER TABLE tb_bangnhanvien thành công!"; 
   } 
   // Đóng kết nối database
   mysql_close($conn);
?>

Kết quả:

ALTER TABLE `tb_bangnhanvien`
ALTER TABLE tb_bangnhanvien thành công!

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Ràng buộc CHECK 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
CEO Bùi Tấn Lực
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
  • Zalo
Chia sẻ nội dung đánh giá của bạn về Ràng buộc CHECK 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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
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
Kiến thức PHP
Kiến thức JavaScript
Kiến thức về website
Kiến thức SEO website
0398.259.259