Kiểu dữ liệu cho tùy chọn được chọn trong MySQL

Ví dụ sau đây chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trên trang

Ví dụ (Hướng đối tượng MySQLi)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối . ". $conn->connect_error);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // xuất dữ liệu của từng hàng
  while($row = $result-> . ". $row["id"]. " - Tên. ". $row["firstname"]. "". $row["họ"]. "
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
  }
} other {
  echo "0 results";<
}
$conn->close();
?>

Chạy ví dụ »

Các dòng mã để giải thích từ ví dụ trên

Đầu tiên, chúng tôi thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng mã tiếp theo chạy truy vấn và đặt dữ liệu kết quả vào một biến có tên $result

Sau đó, hàm num_rows() kiểm tra xem có nhiều hơn 0 hàng được trả về không

Nếu có nhiều hơn 0 hàng được trả về, hàm fetch_assoc() sẽ đặt tất cả các kết quả vào một mảng kết hợp mà chúng ta có thể lặp qua. Vòng lặp while() lặp qua tập kết quả và xuất dữ liệu từ các cột id, firstname và lastname

Ví dụ sau hiển thị giống như ví dụ trên, theo cách thủ tục MySQLi

Ví dụ (Thủ tục MySQLi)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Kiểm tra kết nối< . $conn) {
if (!$conn) {
  die("Kết nối không thành công. ". mysqli_connect_error());
}

$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // ​​xuất dữ liệu của từng hàng
  while($row = mysqli_fetch_assoc($result . ". $row["id"]. " - Tên. ". $row["firstname"]. "". $row["họ"]. "
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
  }
} other {
  echo "0 results";<
}

mysqli_close($conn);
?>

Chạy ví dụ »



Bạn cũng có thể đưa kết quả vào một bảng HTML

Ví dụ (Hướng đối tượng MySQLi)

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
// Kiểm tra kết nối . ". $conn->connect_error);
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "CHỌN id, tên, họ TỪ MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo "";
  // ​​xuất dữ liệu của từng hàng
  while($row = $result->fetch_assoc()) {
    echo "";
  }
  echo "

IDName". $row["id"]. "". $row["firstname"]. "". $row["họ"]. ";
} other {
  echo "0 results";
}
$
?>

Run example »


Chọn dữ liệu với PDO (+ Báo cáo đã chuẩn bị)

Ví dụ sau sử dụng câu lệnh đã chuẩn bị

Nó chọn các cột id, firstname và lastname từ bảng MyGuests và hiển thị nó trong bảng HTML

Vì lượng dữ liệu của một công ty điển hình đã tăng theo cấp số nhân nên việc tối ưu hóa lưu trữ dữ liệu càng trở nên quan trọng hơn. Kích thước dữ liệu của bạn không chỉ ảnh hưởng đến kích thước và chi phí lưu trữ mà còn ảnh hưởng đến hiệu suất truy vấn. Yếu tố chính trong việc xác định kích thước dữ liệu của bạn là loại dữ liệu bạn chọn. Hướng dẫn này sẽ giải thích cách chọn đúng loại dữ liệu

Các kiểu dữ liệu là gì?

Các kiểu dữ liệu xác định loại và phạm vi dữ liệu nào có thể được lưu trữ trong một trường (hoặc cột) nhất định

Hãy xem xét một bảng bán hàng với các bản ghi mẫu này

Kiểu dữ liệu cho tùy chọn được chọn trong MySQL

Mỗi trường có loại và phạm vi giá trị riêng

mua_thời gian. ngày và thời gian giảm giá sale_id. giá trị số nguyên tăng dần một cho mỗi lần bán hàng mới customer_id. giá trị số nguyên tăng dần một cho mỗi đơn vị tiền tệ của khách hàng mới. văn bản luôn ở dạng mã tiền tệ gồm 3 ký tự, số tiền_đã thanh toán. giá trị số thực tiền tệ giữa $0. 00 và $1,000. 00 thiết bị. văn bản, trong đó các giá trị có thể được. 'máy tính để bàn', 'ứng dụng dành cho thiết bị di động' và 'web dành cho thiết bị di động' has_discount. boolean nơi các mục có thể là ghi chú TRUE hoặc FALSE. văn bản, trong đó mục nhập có thể dài bằng những gì được cho phép trong công cụ nhập liệu tổng đài viên của chúng tôi (250 ký tự)

Loại dữ liệu (số nguyên, văn bản, số thực, v.v...) và phạm vi giá trị có thể (0 đến 1.000; 3 ký tự bất kỳ; v.v...) tương ứng với các loại dữ liệu cơ sở dữ liệu cụ thể

Các loại dữ liệu có thể là gì?

Các cơ sở dữ liệu khác nhau có sẵn các loại dữ liệu khác nhau, nhưng hầu hết phù hợp với các loại này

số

  • số nguyên. cho các số không có phân số. Có thể có dấu (cho phép giá trị dương và âm) hoặc không dấu (chỉ cho phép số dương). Thường được sử dụng cho các trường ID và số lượng thứ gì đó
  • thập phân(x,y). cho các số có phân số yêu cầu độ chính xác chính xác. Có thể có dấu (cho phép giá trị dương và âm) hoặc không dấu (chỉ cho phép số dương). Thường được sử dụng cho các lĩnh vực tiền tệ. Người dùng chỉ định tổng số chữ số có nghĩa được phép (x) và sau dấu thập phân (y) trong ngoặc đơn
  • thả nổi/nhân đôi. cho các số có phân số không yêu cầu độ chính xác chính xác. Có thể có dấu (cho phép giá trị dương và âm) hoặc không dấu (chỉ cho phép số dương). Thường được sử dụng cho tất cả các số thực trừ trường tiền tệ

Ngày giờ

ngày tháng. cho các giá trị ngày

  • thời gian. cho các giá trị thời gian
  • dấu thời gian/ngày giờ. cho các giá trị ngày và giờ

Chữ

  • ký tự (n). đối với các chuỗi ký tự có độ dài cố định, trong đó giá trị trong dấu ngoặc đơn cho biết kích thước cố định của mỗi mục nhập
  • véc ni (n). đối với các chuỗi ký tự có độ dài thay đổi, trong đó giá trị trong dấu ngoặc đơn cho biết kích thước tối đa được chấp nhận của mỗi mục nhập

Boolean

  • boolean. cho các giá trị boolean (true/false). Một số cơ sở dữ liệu (như MySQL) không có kiểu dữ liệu boolean và thay vào đó chuyển đổi giá trị boolean thành số nguyên (1=TRUE, 0 = FALSE)

Hầu hết các cơ sở dữ liệu cung cấp các biến thể kích thước cho từng loại. Ví dụ, MySQL cung cấp các kiểu dữ liệu số nguyên có thể

Kiểu dữ liệu cho tùy chọn được chọn trong MySQL

Cách chọn đúng loại dữ liệu

Chiến lược cơ bản để chọn loại dữ liệu tốt nhất là chọn loại dữ liệu nhỏ nhất phù hợp với loại dữ liệu bạn có và cho phép tất cả các giá trị khả thi của dữ liệu của bạn

Ví dụ: customer_id trong bảng doanh số mẫu của chúng tôi là một số nguyên bắt đầu bằng 0. Hôm nay công ty hư cấu của chúng tôi chỉ có 15.000 khách hàng. Sử dụng bảng kiểu dữ liệu số nguyên MySQL từ phần trước, chúng ta có thể muốn chọn SMALLINT không dấu làm kiểu dữ liệu, vì đó là kiểu dữ liệu nhỏ nhất sẽ chấp nhận các giá trị số nguyên hiện tại của chúng ta từ 0 đến 15.000. Tuy nhiên, chúng tôi hy vọng sẽ có được 100.000 khách hàng trong vòng 6-12 tháng tới. Khi chúng tôi vượt qua 65.535, thì SMALLINT sẽ không còn đủ nữa. Do đó, một lựa chọn tốt hơn là MEDIUMINT không dấu, điều này sẽ giúp ích cho chúng tôi trong vài năm tới

Bạn có thể để cơ sở dữ liệu của mình chọn loại dữ liệu cho bạn khi tạo bảng với các bản ghi mẫu. Tuy nhiên, điều này sẽ hiếm khi cung cấp cho bạn lựa chọn loại dữ liệu tốt nhất. Ví dụ: để MySQL chọn kiểu dữ liệu cho bảng bán hàng với các giá trị mẫu được hiển thị trước đó sẽ gây ra một số vấn đề

Kiểu dữ liệu cho tùy chọn được chọn trong MySQL

Các vấn đề chúng tôi gặp phải với các kiểu dữ liệu mà MySQL tự động chọn là

  1. sai kiểu dữ liệu. bạn sẽ không thể sử dụng trường theo cách mà bạn mong đợi. Ví dụ: có purchase_time dưới dạng chuỗi chứ không phải kiểu dữ liệu thời gian có nghĩa là bạn sẽ không thể thực hiện các phép tính thời gian (chẳng hạn như tính toán khoảng thời gian kể từ khi mua hàng) trên trường
  2. quá hạn chế. MySQL sẽ báo lỗi khi bạn cố gắng nhập các giá trị lớn hơn loại dữ liệu cho phép. Ví dụ: chúng tôi sẽ gặp lỗi nếu chúng tôi có một đợt giảm giá với số tiền_đã thanh toán là $100. 00 trở lên hoặc một agent_comment dài hơn 65 ký tự
  3. quá bảo thủ. trong khi không có gì phá vỡ việc quá bảo thủ với các loại dữ liệu, bạn sẽ lãng phí dung lượng lưu trữ. Với dữ liệu ví dụ của chúng tôi, chúng tôi có thể tiết kiệm 15% dung lượng lưu trữ bằng cách sử dụng các tùy chọn ưu tiên ít thận trọng hơn

Thông minh như cơ sở dữ liệu hiện đại, chủ sở hữu dữ liệu vẫn biết rõ nhất về loại dữ liệu nào được lưu trữ và các giá trị có thể có mà dữ liệu có thể nhận trong tương lai gần. Vì vậy, bạn cần chỉ định cẩn thận các loại dữ liệu cho từng trường của mình

Tài liệu về các loại dữ liệu cho các cơ sở dữ liệu phổ biến khác nhau được cung cấp tại đây

  • mysql
  • Dịch chuyển đỏ của Amazon
  • Tổ ong Apache
  • siêu dữ liệu

Phần kết luận

Để cơ sở dữ liệu của bạn hoạt động chính xác và được tối ưu hóa nhất có thể, điều quan trọng là phải chọn cẩn thận các loại dữ liệu cho từng trường trong bảng của bạn

Loại dữ liệu cho danh sách thả xuống là gì?

Kiểu dữ liệu "Danh sách thả xuống" mặc định sẽ lưu giá trị bạn chọn - thường là văn bản hiển thị . Trong khi "Danh sách thả xuống có khóa xuất bản" lưu id PreValue (từ cơ sở dữ liệu) thay vì văn bản.

CHỌN trong MySQL là gì?

Câu lệnh SELECT dùng để chọn dữ liệu từ cơ sở dữ liệu . Dữ liệu trả về được lưu trữ trong một bảng kết quả, được gọi là tập kết quả.

Bạn có thể sử dụng CHỌN trong MySQL không?

Bạn có thể sử dụng câu lệnh SELECT để trả về dữ liệu từ một hoặc nhiều bảng MySQL, cũng như để truy xuất thông tin về máy chủ và môi trường cơ sở dữ liệu . Câu lệnh SELECT là một trong những câu lệnh SQL được sử dụng phổ biến nhất trong MySQL.

Làm cách nào để chèn dữ liệu thả xuống trong SQL?

Bấm đúp vào hộp danh sách, hộp danh sách thả xuống hoặc điều khiển hộp tổ hợp mà bạn muốn điền. Nhấp vào tab Dữ liệu. Bên dưới mục nhập hộp danh sách, hãy bấm tra cứu giá trị từ nguồn dữ liệu ngoài. Trong danh sách Nguồn dữ liệu, bấm vào nguồn dữ liệu mà bạn muốn sử dụng