Hướng dẫn how do i create a blob field in mysql? - làm cách nào để tạo một trường blob trong mysql?

Blob là từ viết tắt của các đối tượng lớn nhị phân. Đôi khi, do mối quan tâm về bảo mật và tính di động, bạn có thể cảm thấy cần lưu dữ liệu nhị phân trên cơ sở dữ liệu MySQL của bạn cùng với các sự kiện liên quan khác. Chẳng hạn, nếu bạn đang chạy cơ sở dữ liệu của sinh viên, bạn có thể lưu trữ ảnh của họ và quét tài liệu PDF cùng với các chi tiết đăng ký của họ như tên và địa chỉ. is an acronym for Binary Large OBjects. Sometimes, due to security and portability concerns, you may feel the need to save binary data on your MySQL database alongside other related facts. For instance, if you are running a students' database, you may store their photos and scanned PDF documents together with their registration details such as names and addresses.

Đây là nơi Blob xuất hiện. Một cột Blob lưu trữ chuỗi nhị phân thực tế hoặc chuỗi byte trong cơ sở dữ liệu MySQL thay vì tham chiếu đường dẫn tệp. Điều này có một lợi thế; Khi bạn sao lưu cơ sở dữ liệu của mình, toàn bộ dữ liệu ứng dụng của bạn sẽ được sao chép.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách bạn có thể lưu trữ dữ liệu nhị phân trên cơ sở dữ liệu MySQL của bạn được lưu trữ với Alibaba Cloud Apsaradb & NBSP; hoặc được cung cấp trên một phiên bản ECS.

Hướng dẫn how do i create a blob field in mysql? - làm cách nào để tạo một trường blob trong mysql?

Điều kiện tiên quyết

  1. Một tài khoản đám mây Alibaba hợp lệ. Bạn có thể nhận được tín dụng trị giá tới 1200 đô la để kiểm tra hơn 40 sản phẩm Alibaba Cloud bao gồm APSARADB và ECS để chạy cơ sở dữ liệu MySQL.
  2. Một thể hiện ALIBABA ECS chạy bất kỳ phân phối Linux nào.
  3. Máy chủ web Apache.
  4. Ngôn ngữ kịch bản PHP.
  5. Máy chủ cơ sở dữ liệu MySQL được lưu trữ trên phiên bản ECS hoặc APSARADB.
  6. Tài khoản người dùng MySQL có khả năng tạo cơ sở dữ liệu và bảng.

Bước 1: Đăng nhập vào cơ sở dữ liệu MySQL của bạn

Đăng nhập vào máy chủ MySQL của bạn trên giao diện dòng lệnh. Cú pháp cơ bản được hiển thị bên dưới:

$ mysql -uroot -p -h227.0.0.1

Hãy nhớ thay thế root bằng tên người dùng thích hợp và sử dụng địa chỉ IP hoặc tên máy chủ chính xác thay cho 127.0.0.1.

Bước 2: Chọn loại dữ liệu Blob

MySQL hỗ trợ 4 loại dữ liệu Blob, chỉ khác nhau về độ dài dữ liệu tối đa mà chúng có thể lưu trữ. Đây là một bản tóm tắt các loại khác nhau:

  1. Tinyblob: Chỉ hỗ trợ lên tới 255 byte.
  2. BLOB: Có thể xử lý tối đa 65.535 byte dữ liệu.
  3. Mediumblob: Độ dài tối đa được hỗ trợ là 16.777.215 byte.
  4. Longblob: Cửa hàng lên tới 4.294.967.295 byte dữ liệu.

Vì vậy, trước khi chúng tôi thiết kế cơ sở dữ liệu, chúng tôi nên đảm bảo loại dữ liệu chúng tôi chọn có thể thoải mái xử lý dữ liệu mà chúng tôi dự định lưu. Ngoài ra, hãy nhớ rằng bạn không thể có giá trị mặc định cho cột Blob.

Đối với mục đích trình diễn, chúng tôi sẽ sử dụng logo Cloud Cloud dưới đây ở định dạng .jpg. Nó có khoảng 24 kb, vì vậy loại dữ liệu Blob sẽ đủ để lưu trữ tệp hình ảnh vì nó có thể hỗ trợ tới 65 kb (65,535 byte) dữ liệu..jpg format. It has about 24 kb, so the BLOB data type will be sufficient to store the image file because it can support up to 65 kb (65,535 bytes) of data.

Hướng dẫn how do i create a blob field in mysql? - làm cách nào để tạo một trường blob trong mysql?

Bước 3: Tạo cấu trúc cơ sở dữ liệu

Trước khi chúng tôi tạo bảng của mình, chúng tôi phải có một cơ sở dữ liệu có tên My_School. Chạy lệnh bên dưới để tạo cơ sở dữ liệu:my_school. Run the command below to create the database:

mysql>Create database my_school CHARACTER SET utf8 COLLATE utf8_general_ci;

Sau đó, chạy lệnh sử dụng để chọn cơ sở dữ liệu my_school:use command to select my_school database:

mysql>use my_school;

Tạo bảng học sinh với 3 cột bằng lệnh SQL dưới đây:students table with 3 columns using the below SQL command:

mysql> create table students ( 
student_id BIGINT PRIMARY KEY,
student_name VARCHAR(50) NOT NULL, 
photo BLOB NOT NULL
) Engine = InnoDB;

Bước 4: Chèn dữ liệu vào bảng học sinh

Chúng tôi sẽ sử dụng ngôn ngữ tập lệnh PHP để xử lý các hoạt động ghi và đọc trong cơ sở dữ liệu MySQL. Chúng tôi sẽ tải lên tệp hình ảnh Alibaba Cloud Image.jpg trên máy chủ web của chúng tôi và lưu ý đường dẫn tệp.image.jpg image file on our web server and take note of the file path.

Trong trường hợp của chúng tôi, chúng tôi sẽ tải lên tệp trên thư mục /var/www/example.com/public_html .. Đường dẫn của tệp hình ảnh của chúng tôi sẽ trông như thế này ở cuối:/var/www/example.com/public_html directory.. The path of our image file will look like this at the end:

/var/www/example.com/public_html/image.jpg
http://www.example.com/register.php

Nếu không có lỗi, bạn nên nhận được phản hồi thành công.

Output:

Hướng dẫn how do i create a blob field in mysql? - làm cách nào để tạo một trường blob trong mysql?

Bạn thực sự có thể xác nhận nếu bản ghi được lưu trong cơ sở dữ liệu bằng cách chạy truy vấn chọn đối với bảng sinh viên. Tuy nhiên, lệnh SQL bên dưới sử dụng hàm bên trái để chỉ truy xuất một phần dữ liệu nhị phân từ cột hình ảnh, nếu không, đầu ra có thể lấp đầy màn hình của bạn.students table. However, the SQL command below uses the left function to retrieve only some part of binary data from the image column, otherwise, the output may fill your screen.

mysql> select student_id, student_name, LEFT(photo , 30) as photo FROM students;
+------------+--------------+--------------------------------+
| student_id | student_name | photo                          |
+------------+--------------+--------------------------------+
|          1 | JOHN DOE     | ???? JFIF  ` `  ?? \Exif         |
+------------+--------------+--------------------------------+
1 row in set (0.00 sec)

Bước 4: Lấy dữ liệu từ bảng học sinh

Chúng tôi đã tạo cơ sở dữ liệu của chúng tôi và lưu một dữ liệu sinh viên cùng với một hình ảnh. Bây giờ chúng tôi có thể tiếp tục và cố gắng truy xuất thông tin chúng tôi đã lưu và chuyển đổi nó trở lại một hình ảnh có thể xem được trên trang web của chúng tôi.

Chúng tôi sẽ sử dụng tập lệnh PHP dưới đây có tên view.php để làm điều này. Tải lên tệp trên trang web của bạn và tải nó để xem dữ liệu và nhớ thay thế localhost, root và mật khẩu bằng các giá trị thích hợp:view.php to do this. Upload the file on your website and load it to view the data and remember to replace localhost, root, and PASSWORD with the appropriate values:

Sau đó, chạy tệp View.php trên cửa sổ Trình duyệt để truy xuất hình ảnh:view.php file on a browser window to retrieve the image:

http://www.example.com/view.php

Output:

Hướng dẫn how do i create a blob field in mysql? - làm cách nào để tạo một trường blob trong mysql?

Như bạn có thể thấy ở trên, chúng tôi có thể lấy lại hình ảnh của mình, điều đó có nghĩa là chúng tôi đã lưu thành công dữ liệu nhị phân trong cơ sở dữ liệu MySQL được lưu trữ trên Alibaba Cloud.

Lợi ích của việc lưu trữ dữ liệu nhị phân trong cơ sở dữ liệu MySQL

Bạn có thể thấy rằng MySQL hỗ trợ lưu trữ dữ liệu nhị phân rất hiệu quả. Hãy nhớ rằng, bạn có thể lưu trữ bất kỳ loại tệp nào bao gồm tài liệu PDF, tệp MP3 và tệp video.

Dưới đây là một số ưu điểm về việc lưu trữ dữ liệu nhị phân trong cơ sở dữ liệu:

  1. Dữ liệu an toàn hơn vì nó được bảo vệ chống lại hành vi trộm cắp khỏi việc sao chép tệp đơn giản của các thư mục.
  2. Dữ liệu gần như không bị nhiễm trùng tập tin vật lý bởi virus. Miễn là bạn bảo vệ cơ sở dữ liệu, dữ liệu của bạn được cách ly với hệ thống tệp.
  3. Lấy dữ liệu từ cơ sở dữ liệu MySQL nhanh chóng và hiệu quả.
  4. Kho lưu trữ tập trung cho dữ liệu ứng dụng của bạn. Sử dụng Blob cho phép bạn có một cơ sở dữ liệu trung tâm cho tất cả dữ liệu ứng dụng của bạn và điều này có nghĩa là ít đau hơn khi xử lý các vấn đề về tính di động và sao lưu. Điều này cũng dẫn đến tính toàn vẹn dữ liệu.

Sự kết luận

Trong bài viết này, chúng tôi đã chỉ cho bạn cách sử dụng kiểu dữ liệu Blob để lưu trữ hình ảnh trong cơ sở dữ liệu MySQL của bạn được lưu trữ trên Alibaba Cloud ECS hoặc APSARADB. Mặc dù các tập lệnh PHP mà chúng tôi đã sử dụng trong hướng dẫn này là cho mục đích trình diễn, bạn có thể mở rộng chúng hơn nữa để phù hợp với dữ liệu nhị phân trong ứng dụng của bạn. Nếu bạn chưa quen với Alibaba Cloud, bạn có thể đăng ký để nhận tín dụng miễn phí lên tới $ 1200 và kiểm tra cơ sở dữ liệu MySQL và hơn 40 sản phẩm trên nền tảng của họ.

Làm cách nào để tạo một đốm màu trong SQL?

Cách lưu trữ máy chủ SQL hình ảnh nhị phân (blob) và tải nó vào .....
Tạo một bảng để chứa hình ảnh dưới dạng varbinary hoặc hình ảnh. ....
Tải một tập tin hình ảnh vào bảng. ....
Tải hình ảnh vào QVW bằng cách sử dụng tải thông tin. ....
Hiển thị hình ảnh trong một đối tượng bằng cách đặt giá trị trường thành. ....
Đặt biểu diễn trường/đối tượng thành hình ảnh ..

Kiểu dữ liệu blob trong mysql là gì?

Blob là một đối tượng lớn nhị phân có thể chứa một lượng dữ liệu khác nhau.Bốn loại blob là Tinyblob, Blob, Mediumblob và Longblob.Chúng chỉ khác nhau về độ dài tối đa của các giá trị mà chúng có thể giữ.Bốn loại văn bản là Tinytext, Text, Mediumtext và Longtext.a binary large object that can hold a variable amount of data. The four BLOB types are TINYBLOB , BLOB , MEDIUMBLOB , and LONGBLOB . These differ only in the maximum length of the values they can hold. The four TEXT types are TINYTEXT , TEXT , MEDIUMTEXT , and LONGTEXT .

Làm cách nào để thêm một blob trong cơ sở dữ liệu?

Chèn dữ liệu Blob vào cơ sở dữ liệu trước, mở tệp để đọc ở chế độ nhị phân.Thứ hai, xây dựng một tuyên bố chèn.Thứ ba, liên kết xử lý tệp với câu lệnh đã chuẩn bị bằng phương thức BindParam () và gọi phương thức EXECUTE () để thực thi truy vấn.open the file for reading in binary mode. Second, construct an INSERT statement. Third, bind the file handle to the prepared statement using the bindParam() method and call the execute() method to execute the query.

Làm thế nào để mysql lưu trữ blobs?

Blobs được lưu trữ logic với một hàng.Điều này có nghĩa là nếu bạn xóa hàng, blob được liên kết sẽ tự động xóa.Nhưng nếu bạn lưu trữ blob bên ngoài cơ sở dữ liệu, bạn sẽ kết thúc với các tệp blob mồ côi sau khi bạn xóa các hàng khỏi cơ sở dữ liệu.Bạn phải thực hiện các bước thủ công để tìm và xóa các tệp này.. This means if you DELETE the row, the associated blob is deleted automatically. But if you store the blob outside the database, you end up with orphaned blob files after you delete rows from the database. You have to do manual steps to find and delete these files.