Xóa MySQL khỏi SET

SET là kiểu dữ liệu của đối tượng Chuỗi có thể chứa 0 hoặc nhiều hơn hoặc bất kỳ số lượng giá trị chuỗi nào. Chúng phải được chọn từ danh sách các giá trị được xác định trước được chỉ định trong quá trình tạo bảng. Đây là một trong những kiểu dữ liệu hiếm khi được sử dụng trong cơ sở dữ liệu MySQL. Nó được gọi là một loại phức tạp vì việc triển khai nó làm tăng độ phức tạp

Các kiểu dữ liệu SET và ENUM hoạt động theo cách tương tự vì MySQL sử dụng nó với một danh sách các giá trị được xác định trước. Nhưng có một điều làm cho nó khác biệt là kiểu dữ liệu ENUM chỉ có thể chứa một thành viên duy nhất trong danh sách giá trị được xác định trước, trong khi kiểu dữ liệu SET cho phép chúng ta lưu trữ 0 hoặc bất kỳ số lượng giá trị nào cùng nhau

Nếu chúng ta xác định các giá trị cột SET với nhiều phần tử tập hợp, thì bắt buộc phải phân tách nó bằng toán tử dấu phẩy [,]. Ví dụ: chúng tôi đã xác định một cột là

Sau đó, cột của chúng tôi có thể có bất kỳ giá trị nào sau đây

Lưu trữ kiểu dữ liệu SET

Kiểu dữ liệu SET có thể lưu trữ tối đa 64 phần tử riêng biệt trong cột của nó. Nếu cột SET chứa các giá trị trùng lặp, nó sẽ báo lỗi khi bật chế độ SQL nghiêm ngặt

Khi chúng ta tạo một bảng và nếu các giá trị thành viên SET trong định nghĩa bảng có khoảng trắng, thì chúng sẽ tự động bị xóa khỏi định nghĩa bảng sau khi thực hiện câu lệnh CREATE

Kiểu dữ liệu SET được lưu trữ dưới dạng giá trị số trong các bảng MySQL. Nó chiếm từ một đến tám [i. e. , 1, 2, 3, 4, 8] byte, tùy thuộc vào số phần tử chứa trong cột SET. Bảng sau giải thích yêu cầu lưu trữ đối với kiểu dữ liệu SET trong MySQL

Không. của các yếu tốKhông. số byte1-819-16217-24325-32433-648

Trong MySQL, phần tử SET được lưu trữ trong bitmap nơi mỗi thành viên được biểu thị bằng một giá trị bit. Chúng ta hãy xem bảng sau minh họa rõ hơn

Trong định nghĩa trên, mỗi thành viên của tập hợp được gán một bit có các giá trị thập phân và nhị phân sau

SET ElementGiá trị thập phânGiá trị nhị phânJava10001Python20010Android40100PHP81000

Bây giờ, nếu chúng ta gán giá trị 9 cho cột này, theo hệ nhị phân, nó sẽ là 1001. Vì vậy, nó chọn phần tử SET đầu tiên và thứ tư, và giá trị kết quả là ''Java, PHP'', sẽ là phần tử thứ năm của cột SET

Đôi khi, cột kiểu dữ liệu SET của chúng tôi có nhiều hơn một phần tử; . Nó có nghĩa là phần tử có thể theo bất kỳ thứ tự nào. MySQL cũng cho phép chúng ta chèn nhiều lần cùng một phần tử vào cột kiểu dữ liệu SET. Khi chúng tôi lấy giá trị, nó sẽ trả về từng phần tử một lần dựa trên thứ tự mà chúng được liệt kê trong thời gian tạo bảng

Hãy để chúng tôi hiểu nó với sự trợ giúp của ví dụ sau, nơi chúng tôi sẽ tạo một bảng có tên "myset_test" có chứa một cột SET['Java', 'Python', 'Android', 'PHP']

Tiếp theo, chúng ta cần chèn các giá trị vào bảng

Bây giờ, khi chúng tôi lấy giá trị từ bảng, chúng tôi sẽ nhận được tất cả các giá trị này xuất hiện dưới dạng "Java, PHP", vì vậy hãy thực hiện câu lệnh bên dưới để thấy điều này

Ở đầu ra, chúng ta có thể thấy rằng cột SET của chúng ta chỉ có các giá trị [Java, PHP]

Cách cập nhật dữ liệu SET

Kiểu dữ liệu MySQL SET có thể cập nhật dữ liệu theo ba cách, được đưa ra dưới đây

1. Bằng cách thay thế hoàn toàn dữ liệu SET

Nếu chúng ta muốn thay thế toàn bộ dữ liệu thành một SET, bắt buộc phải chỉ định các giá trị mới. Thực hiện các câu lệnh sau trong đó truy vấn đầu tiên cập nhật hàng = 4 với giá trị = 'Java, Python' và truy vấn thứ hai cập nhật hàng = 5 với giá trị = 11. Ở đây, 11 có nghĩa là 8+2+1=Java, Python và PHP

Sau khi thực hiện thành công, hãy thực hiện lệnh dưới đây để xác minh đầu ra

đầu ra

2. Bằng cách thêm các thành viên SET

Đôi khi, cần thêm phần tử vào cột SET hiện có, khi đó hàm CONCAT[] hoặc CONCAT_WS[] cho phép chúng ta chèn phần tử mới vào danh sách được phân tách bằng dấu phẩy. Thực hiện tuyên bố này để hiểu nó rõ ràng hơn

Sau khi thực hiện thành công, hãy thực hiện lệnh dưới đây để xác minh đầu ra

đầu ra

3. Bằng cách loại bỏ các thành viên SET

Nếu bạn muốn xóa bất kỳ phần tử nào khỏi SET hiện có, thì có thể sử dụng hàm REPLACE[] để xóa cột SET phần tử. Thực hiện tuyên bố này để hiểu nó rõ ràng hơn

Một lần nữa, nếu bạn sử dụng giá trị thập phân để xóa phần tử khỏi một tập hợp hiện có, hãy sử dụng toán tử AND[&] theo bit và toán tử NOT[~] theo bit. Thực hiện câu lệnh dưới đây

Sau khi thực hiện thành công, hãy thực hiện lệnh dưới đây để xác minh đầu ra

đầu ra

Nếu chúng ta muốn xem các giá trị số nguyên tương ứng với thành viên SET, thì chúng ta cần thêm "+0" vào tên cột. Chúng ta hãy xem ví dụ sau

Khi chúng ta thực hiện câu lệnh trên, kết quả sau xuất hiện trong đó bao gồm các giá trị số nguyên tương ứng với phần tử SET

Nhược điểm của việc sử dụng kiểu dữ liệu SET

Kiểu dữ liệu SET không khuyến nghị chúng tôi sử dụng nó trong cơ sở dữ liệu của chúng tôi vì những nhược điểm sau

Làm cách nào bạn có thể xóa bản ghi bằng MySQL?

Nếu bạn muốn xóa bản ghi khỏi bất kỳ bảng MySQL nào, thì bạn có thể sử dụng lệnh SQL DELETE FROM . Bạn có thể sử dụng lệnh này tại dấu nhắc mysql> cũng như trong bất kỳ tập lệnh nào như PHP.

Làm cách nào để thay thế một phần của chuỗi trong MySQL?

Sử dụng hàm REPLACE[] của MySQL để thay thế một chuỗi con [i. e. từ, ký tự, v.v. ] với một chuỗi con khác và trả về chuỗi đã thay đổi. .
Chuỗi để thay đổi. .
Chuỗi con để thay thế [i. e. nhân vật '-']
Chuỗi con để chèn [i. e. nhân vật '/']

Tại sao chúng tôi sử dụng bộ trong MySQL?

Sau đây là những lý do nên sử dụng kiểu dữ liệu SET trong MySQL. Nó có thể xử lý nhiều giá trị mà không gặp nhiều khó khăn . Nó cho phép chúng ta so sánh nhiều giá trị mà không cần sử dụng các thao tác THAM GIA phức tạp.

Thay thế vào MySQL là gì?

REPLACE hoạt động chính xác như INSERT , ngoại trừ nếu một hàng cũ trong bảng có cùng giá trị với một hàng mới cho một PRIMARY KEY hoặc một chỉ mục UNIQUE, thì hàng cũ là . Xem Phần 13. 2. 6, “CHÈN Tuyên bố”. REPLACE là một phần mở rộng của MySQL theo tiêu chuẩn SQL. . See Section 13.2. 6, “INSERT Statement”. REPLACE is a MySQL extension to the SQL standard.

Chủ Đề