Cập nhật mysql và trả lại hàng

Có thể có một yêu cầu trong đó dữ liệu hiện có trong bảng MySQL cần được sửa đổi. Bạn có thể làm như vậy bằng cách sử dụng lệnh SQL UPDATE. Điều này sẽ sửa đổi bất kỳ giá trị trường nào của bất kỳ bảng MySQL nào

cú pháp

Khối mã sau đây có cú pháp SQL chung của lệnh CẬP NHẬT để sửa đổi dữ liệu trong bảng MySQL -

UPDATE table_name SET field1 = new-value1, field2 = new-value2
[WHERE Clause]
  • Bạn có thể cập nhật hoàn toàn một hoặc nhiều trường
  • Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE
  • Bạn có thể cập nhật các giá trị trong một bảng tại một thời điểm

Mệnh đề WHERE rất hữu ích khi bạn muốn cập nhật các hàng đã chọn trong bảng

Cập nhật dữ liệu từ Command Prompt

Điều này sẽ sử dụng lệnh SQL UPDATE với mệnh đề WHERE để cập nhật dữ liệu đã chọn trong bảng MySQL tutorials_tbl

Ví dụ

Ví dụ sau sẽ cập nhật trường tutorial_title cho một bản ghi có tutorial_id là 3

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> UPDATE tutorials_tbl 
   -> SET tutorial_title = 'Learning JAVA' 
   -> WHERE tutorial_id = 3;
Query OK, 1 row affected [0.04 sec]
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Cập nhật dữ liệu bằng PHP Script

PHP sử dụng hàm mysqli query[] hoặc mysql_query[] để cập nhật các bản ghi trong bảng MySQL. Hàm này nhận hai tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại

cú pháp

$mysqli->query[$sql,$resultmode]
Sr. KHÔNG. Tham số & Mô tả1

$sql

Bắt buộc - Truy vấn SQL để cập nhật bản ghi trong bảng MySQL

2

$resultmode

Tùy chọn - Hằng số MYSQLI_USE_RESULT hoặc MYSQLI_STORE_RESULT tùy thuộc vào hành vi mong muốn. Theo mặc định, MYSQLI_STORE_RESULT được sử dụng

Ví dụ

Hãy thử ví dụ sau để cập nhật một bản ghi trong bảng -

Sao chép và dán ví dụ sau vào mysql_example. php −

   
      Updating MySQL Table
   
   
      connect_errno ] {
            printf["Connect failed: %s
", $mysqli->connect_error]; exit[]; } printf['Connected successfully.
']; if [$mysqli->query['UPDATE tutorials_tbl set tutorial_title = "Learning Java" where tutorial_id = 4']] { printf["Table tutorials_tbl updated successfully.
"]; } if [$mysqli->errno] { printf["Could not update table: %s
", $mysqli->error]; } $sql = "SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl"; $result = $mysqli->query[$sql]; if [$result->num_rows > 0] { while[$row = $result->fetch_assoc[]] { printf["Id: %s, Title: %s, Author: %s, Date: %d
", $row["tutorial_id"], $row["tutorial_title"], $row["tutorial_author"], $row["submission_date"]]; } } else { printf['No record found.
']; } mysqli_free_result[$result]; $mysqli->close[]; ?>

đầu ra

Truy cập mysql_example. php được triển khai trên máy chủ web apache và xác minh đầu ra. Ở đây chúng tôi đã nhập nhiều bản ghi vào bảng trước khi chạy tập lệnh chọn

$link = mysql_connect['localhost', 'mysql_user', 'mysql_password'];
if [!$link] {
die['Could not connect: ' . mysql_error[]];
}
mysql_select_db['mydb'];

/* this should return the correct numbers of deleted records */
mysql_query['DELETE FROM mytable WHERE id < 10'];
printf["Records deleted: %d\n", mysql_affected_rows[]];

/* with a where clause that is never true, it should return 0 */
mysql_query['DELETE FROM mytable WHERE 0'];
printf["Records deleted: %d\n", mysql_affected_rows[]];
?>

Trong hai phần trước của loạt bài này, bạn đã tìm hiểu về SELECT và INSERT, hai câu lệnh ngôn ngữ thao tác dữ liệu [DML] quan trọng trong MySQL. Trong bài viết này, tôi tập trung vào câu lệnh UPDATE, một câu lệnh DML có giá trị khác trong MySQL

Bài viết này là một phần trong loạt bài tiếp theo của Robert Sheldon về Học MySQL. Để xem tất cả 11 mục trong sê-ri, hãy nhấp vào đây

Câu lệnh UPDATE cho phép bạn sửa đổi các giá trị trong bảng cơ sở dữ liệu của mình, bao gồm các bảng tạm thời. Với một câu lệnh duy nhất, bạn có thể cập nhật một hoặc nhiều hàng, một hoặc nhiều cột hoặc bất kỳ sự kết hợp nào của cả hai. Bạn thậm chí có thể cập nhật nhiều bảng. Khi bạn đọc hết bài viết này, bạn sẽ thấy rằng câu lệnh UPDATE rất trực quan và dễ sử dụng, một khi bạn hiểu những điều cơ bản về cách thức hoạt động của nó

Chuẩn bị môi trường MySQL của bạn

Đối với các ví dụ trong bài viết này, tôi đã sử dụng cùng một cơ sở dữ liệu [_______9_______] và các bảng [manufacturersairplanes] mà tôi đã sử dụng cho một số bài viết trước trong loạt bài này

Ghi chú. Các ví dụ giả định rằng bạn đã làm việc trong bài viết trước, trong trường hợp đó, cơ sở dữ liệu travel sẽ được thiết lập và sẵn sàng hoạt động. Nếu không, bạn vẫn có thể theo dõi bài viết này, chỉ biết rằng kết quả truy vấn của bạn sẽ hơi khác so với kết quả tôi hiển thị ở đây

Để thiết lập cơ sở dữ liệu travel—nếu bạn chưa làm như vậy—hãy tải xuống MySQL_06_setup. sql và chạy tập lệnh SQL đối với phiên bản MySQL của bạn. Tập lệnh tạo cơ sở dữ liệu và bảng và chèn dữ liệu mẫu. Ngoài ra, bạn có thể tạo cơ sở dữ liệu và sau đó chạy tập lệnh sau để tạo bảng manufacturersairplanes

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

TẠO BẢNG nhà sản xuất [

  manufacturer_id INT CHƯA KÝ KHÔNG NULL AUTO_INCREMENT,

  nhà sản xuất VARCHAR[50] NOT NULL,

  create_date DẤU THỜI GIAN NOT NULL DEFAULT CURRENT_TIMESTAMP,

  last_update DẤU THỜI GIAN NOT NULL

    MẶC ĐỊNH CURRENT_TIMESTAMP BẬT CẬP NHẬT CURRENT_TIMESTAMP,

  CHÍNH CHÍNH KEY [manufacturer_id] ]

ENGINE=InnoDB AUTO_INCREMENT=1001;

 

TẠO BẢNG máy bay [

  plane_id INT KHÔNG ĐƯỢC KÝ KHÔNG NULL AUTO_INCREMENT,

  máy bay VARCHAR[50] NOT NULL,

  manufacturer_id INT CHƯA KÝ KHÔNG NULL,

  engine_type VARCHAR[50] NOT NULL,

  engine_count TINYINT NOT NULL,

  max_weight VỪA KHÔNG ĐƯỢC KÝ KHÔNG NULL,

  sải cánh THẬP PHÂN[5,2] NOT NULL,

  plane_length DECIMAL[5,2] NOT NULL,

  parking_area INT ĐƯỢC TẠO LUÔN LUÔN

             AS [[sải cánh * plane_length]] STORED,

  icao_code CHAR[4] NOT NULL,

  create_date DẤU THỜI GIAN NOT NULL

             MẶC ĐỊNH CURRENT_TIMESTAMP,

  last_update DẤU THỜI GIAN NOT NULL

    MẶC ĐỊNH CURRENT_TIMESTAMP

           BẬT CẬP NHẬT CURRENT_TIMESTAMP,

  CHÍNH CHÍNH KEY [plane_id],

  HÀNG CHẾ fk_manufacturer_id

    NGOẠI NGOẠI KEY [manufacturer_id]

       TÀI LIỆU THAM KHẢO nhà sản xuất [manufacturer_id] ]

ENGINE=InnoDB AUTO_INCREMENT=101;

Tiếp theo, bạn cần thêm dữ liệu vào bảng manufacturersairplanes để hỗ trợ các ví dụ trong bài viết này. Bắt đầu với bảng manufacturers bằng cách chạy câu lệnh UPDATE2 sau đây, thêm Beagle Aircraft Limited làm nhà sản xuất

1

2

3

4

5

6

CHÈN VÀO nhà sản xuất [nhà sản xuất]

GIÁ TRỊ ['Beagle Aircraft Limited'];

 

CHỌN manufacturer_id

TỪ   nhà sản xuất

Ở ĐÂU  nhà sản xuất = 'Beagle Aircraft Limited'

Chủ Đề