CẬP NHẬT bảng MySQL

Hướng dẫn MySQL này giải thích cách sử dụng câu lệnh MySQL ALTER TABLE để thêm cột, sửa đổi cột, loại bỏ cột, đổi tên cột hoặc đổi tên bảng (có cú pháp và ví dụ)

Sự mô tả

Câu lệnh ALTER TABLE của MySQL được sử dụng để thêm, sửa đổi hoặc thả/xóa các cột trong bảng. Câu lệnh ALTER TABLE của MySQL cũng được sử dụng để đổi tên bảng

Thêm cột vào bảng

cú pháp

Cú pháp để thêm một cột trong bảng trong MySQL (sử dụng câu lệnh ALTER TABLE) là

ALTER TABLE table_name
  ADD new_column_name column_definition
    [ FIRST | AFTER column_name ];
table_nameTên của bảng cần sửa đổi. new_column_nameTên của cột mới để thêm vào bảng. column_definitionKiểu dữ liệu và định nghĩa của cột (NULL hoặc NOT NULL, v.v.). ĐẦU TIÊN. SAU tên cột_tùy chọn. Nó cho MySQL biết vị trí trong bảng để tạo cột. Nếu không chỉ định tham số này, cột mới sẽ được thêm vào cuối bảng

Thí dụ

Hãy xem một ví dụ cho thấy cách thêm một cột trong bảng MySQL bằng cách sử dụng câu lệnh ALTER TABLE

Ví dụ

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;

Ví dụ MySQL ALTER TABLE này sẽ đổi tên cột có tên contact_type thành ctype. Cột sẽ được định nghĩa là cột varchar(20) NOT NULL

Câu lệnh MySQL UPDATE được sử dụng để cập nhật các bản ghi hiện có trong một bảng trong cơ sở dữ liệu MySQL. Có 3 cú pháp cho câu lệnh CẬP NHẬT tùy thuộc vào loại cập nhật mà bạn muốn thực hiện

cú pháp

Ở dạng đơn giản nhất, cú pháp của câu lệnh CẬP NHẬT khi cập nhật một bảng trong MySQL là

UPDATE table
SET column1 = expression1,
    column2 = expression2,
    ...
[WHERE conditions];

Tuy nhiên, cú pháp đầy đủ cho câu lệnh UPDATE của MySQL khi cập nhật một bảng là

UPDATE [ LOW_PRIORITY ] [ IGNORE ]
table
SET column1 = expression1,
    column2 = expression2,
    ...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

HOẶC

Cú pháp của câu lệnh UPDATE khi cập nhật một bảng với dữ liệu từ một bảng khác trong MySQL là

UPDATE table1
SET column1 = (SELECT expression1
               FROM table2
               WHERE conditions)
[WHERE conditions];

HOẶC

Cú pháp cho câu lệnh UPDATE của MySQL khi cập nhật nhiều bảng là

UPDATE table1, table2, .. 
SET column1 = expression1,
    column2 = expression2,
    ...
WHERE table1.column = table2.column
AND conditions;

Tham số hoặc Đối số

LOW_PRIORITYTùy chọn. Nếu LOW_PRIORITY được cung cấp, quá trình cập nhật sẽ bị trì hoãn cho đến khi không có tiến trình nào đọc từ bảng. LOW_PRIORITY có thể được sử dụng với các bảng MyISAM, MEMORY và MERGE sử dụng khóa cấp độ bảng. BỎ QUATùy chọn. Nếu IGNORE được cung cấp, tất cả các lỗi gặp phải trong quá trình cập nhật sẽ bị bỏ qua. Nếu cập nhật trên một hàng dẫn đến vi phạm khóa chính hoặc chỉ mục duy nhất, thì cập nhật trên hàng đó sẽ không được thực hiện. cột1, cột2Các cột bạn muốn cập nhật. biểu thức1, biểu thức2Các giá trị mới để gán cho cột1, cột2. Vì vậy, cột1 sẽ được gán giá trị của biểu thức1, cột2 sẽ được gán giá trị của biểu thức2, v.v. điều kiện WHERETùy chọn. Các điều kiện phải được đáp ứng để cập nhật để thực thi. ĐẶT HÀNG BẰNG biểu thứcTùy chọn. Nó có thể được sử dụng kết hợp với LIMIT để sắp xếp các bản ghi một cách thích hợp khi giới hạn số lượng bản ghi được cập nhật. GIỚI HẠN số_hàngTùy chọn. Nếu LIMIT được cung cấp, nó sẽ kiểm soát số lượng bản ghi tối đa để cập nhật trong bảng. Nhiều nhất, số lượng bản ghi được chỉ định bởi number_rows sẽ được cập nhật trong bảng

Ví dụ - Cập nhật cột đơn

Hãy xem một ví dụ truy vấn CẬP NHẬT MySQL rất đơn giản

UPDATE customers
SET last_name = 'Anderson'
WHERE customer_id = 5000;

Ví dụ CẬP NHẬT MySQL này sẽ cập nhật last_name thành 'Anderson' trong bảng khách hàng trong đó customer_id là 5000

Ví dụ - Cập nhật nhiều cột

Hãy xem ví dụ CẬP NHẬT MySQL nơi bạn có thể muốn cập nhật nhiều cột với một câu lệnh CẬP NHẬT

UPDATE customers
SET state = 'California',
    customer_rep = 32
WHERE customer_id > 100;

Khi muốn cập nhật nhiều cột, bạn có thể thực hiện việc này bằng cách tách các cặp cột/giá trị bằng dấu phẩy

Ví dụ về câu lệnh CẬP NHẬT MySQL này sẽ cập nhật trường thành phố trong bảng khách hàng thành thành phố từ bảng nhà cung cấp nơi mà customer_id khớp với nhà cung cấp_id

NameDescriptiontable_reference(s)Tên của (các) bảng sẽ được cập nhật. col_name1, col_name2,. Tên của (các) cột sẽ được cập nhật. expr1, expr2,. (Các) giá trị mới


  • Đối với một bảng, câu lệnh CẬP NHẬT cập nhật các cột của các hàng hiện có trong bảng đã đặt tên với các giá trị mới. Các cột cụ thể có thể được sửa đổi bằng cách sử dụng mệnh đề SET bằng cách cung cấp các giá trị mới cho cột đó
  • Mệnh đề WHERE có thể được sử dụng để chỉ định các điều kiện xác định hàng nào cần cập nhật. Không sử dụng mệnh đề WHERE, tất cả các hàng được cập nhật
  • Mệnh đề ORDER BY được sử dụng để cập nhật thứ tự đã được chỉ định
  • Mệnh đề LIMIT chỉ định giới hạn về số lượng hàng có thể được cập nhật
  • Đối với nhiều bảng, UPDATE cập nhật hàng trong mỗi bảng có tên trong table_references thỏa mãn các điều kiện. Trong trường hợp này, không thể sử dụng ORDER BY và LIMIT

Câu lệnh UPDATE hỗ trợ các công cụ sửa đổi sau

  • ƯU TIÊN THẤP. Sử dụng từ khóa LOW_PRIORITY, việc thực hiện CẬP NHẬT bị trì hoãn cho đến khi không có ứng dụng khách nào khác đọc từ bảng. Điều này chỉ ảnh hưởng đến các công cụ lưu trữ chỉ sử dụng khóa cấp bảng (chẳng hạn như MyISAM, MEMORY và MERGE)
  • PHỚT LỜ. Sử dụng từ khóa IGNORE, câu lệnh cập nhật không bị hủy bỏ ngay cả khi xảy ra lỗi trong quá trình cập nhật. Các hàng xảy ra xung đột khóa trùng lặp không được cập nhật. Thay vào đó, các hàng có cột được cập nhật thành giá trị có thể gây ra lỗi chuyển đổi dữ liệu được cập nhật thành giá trị hợp lệ gần nhất

Sau đây là một số ví dụ về bản cập nhật MySQL nơi chúng tôi đã sử dụng newpurchase làm bảng mẫu

bảng mẫu. mua mới


Cột CẬP NHẬT MySQL

Cột UPDATE của MySQL có thể được sử dụng để cập nhật một số cột cụ thể. Câu lệnh MySQL sau sẽ cập nhật cột 'receive_qty' của bảng newpurchase với giá trị mới 20

________số 8

CẬP NHẬT MySQL với WHERE

Lệnh CẬP NHẬT của MySQL có thể được sử dụng với mệnh đề WHERE để lọc (theo các điều kiện nhất định) những hàng nào sẽ được cập nhật. Câu lệnh MySQL sau sẽ cập nhật cột 'receive_qty' của bảng newpurchase với giá trị mới 25 nếu giá trị của purch_price lớn hơn 50

UPDATE newpurchase 
SET receive_qty=25 
WHERE purch_price>50;

CẬP NHẬT MySQL bằng cách sử dụng NULL

Lệnh CẬP NHẬT của MySQL có thể được sử dụng để cập nhật giá trị cột thành NULL bằng cách đặt tên_cột = NULL, trong đó tên_cột là tên của cột sẽ được cập nhật. Câu lệnh MySQL sau đây sẽ cập nhật cột pub_lang bằng NULL nếu purch_price lớn hơn 50. Trong câu lệnh này, các cột khác cũng được cập nhật với các giá trị mới tương ứng

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
0

MySQL UPDATE nhiều cột

Lệnh UPDATE của MySQL có thể được sử dụng để cập nhật nhiều cột bằng cách chỉ định danh sách cột_name = new_value được phân tách bằng dấu phẩy. Trong đó column_name là tên của cột sẽ được cập nhật và new_value là giá trị mới mà cột sẽ được cập nhật. Câu lệnh MySQL sau đây sẽ cập nhật các cột get_qty, pub_lang và get_dt với các giá trị mới 20, Hindi và 2008-07-10 nếu purch_price lớn hơn 50

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
1

CẬP NHẬT MySQL với các truy vấn con

Sau đây, chúng ta đã thảo luận về cách sử dụng lệnh UPDATE của MySQL với các truy vấn con

Câu lệnh MySQL sau đây sẽ cập nhật purch_price với purch_price nhân với 5 nếu nó thỏa mãn điều kiện được xác định trong truy vấn con bắt đầu bằng SELECT được bao bọc trong một cặp dấu ngoặc đơn

Truy vấn con chỉ truy xuất những cate_id đó từ bảng mua nếu số lượng nhận tương ứng của chúng lớn hơn 10

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
2

Cập nhật Bảng MySQL bằng PHP Script

Bạn có thể cập nhật dữ liệu bảng MySQL (dùng lệnh UPDATE) thông qua tập lệnh PHP. Trong tập lệnh, hàm PHP MySQL_query() thực thi lệnh SQL. Chúng tôi đã sử dụng một bảng gọi là 'mục' để áp dụng truy vấn.
Tên bảng. mục Cấu trúc. item_code varchar(20), giá trị int(11), số lượng int(11) trong đó item_code là khóa chính. Trong các hàng tiếp theo của bảng mục, cột 'giá trị' được đánh dấu bằng hình chữ nhật màu đỏ sẽ được cập nhật.

CẬP NHẬT bảng MySQL

Tập lệnh PHP

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
3

Đầu ra mẫu

CẬP NHẬT bảng MySQL

Nhiều cập nhật trong MySQL

bảng mẫu. Bảng 1

CẬP NHẬT bảng MySQL

Vấn đề

Nếu bạn muốn cập nhật val1 với 5,8 và 7 cho id 1,3 và 4 có liên quan và val1 khác sẽ giữ nguyên và val2 sẽ được cập nhật với 13 và 5 cho id 2 và 4 có liên quan và cái còn lại sẽ giữ nguyên

Mã số

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
4

trình bày bằng hình ảnh

CẬP NHẬT bảng MySQL

Đầu ra mẫu

CẬP NHẬT bảng MySQL

ví dụ. CẬP NHẬT MySQL trên nhiều bảng

Ở đây chúng tôi đã sử dụng hai bảng book_mast và buy cho ví dụ sau làm bảng mẫu. Chúng tôi đã hiển thị một số cột trong các bảng được liên kết. Dưới đây là các bảng dưới đây -

ALTER TABLE contacts
  ADD last_name varchar(40) NOT NULL
    AFTER contact_id;
5

Nếu chúng tôi muốn cập nhật giá sách của bảng book_mast tăng thêm 5%, đồng thời cập nhật giá_purch_price và tổng_chi phí của bảng puchase theo mức tăng thêm 5% và mức tăng này sẽ chỉ ảnh hưởng đến các hàng đó trong cả bảng book_mast và bảng mua hàng.

Làm cách nào để CẬP NHẬT một bảng trong MySQL?

Sau đây là cú pháp chung của lệnh UPDATE để sửa đổi dữ liệu trong bảng MySQL. .
CẬP NHẬT tên_bảng
SET cột_name1 = new-value1,
column_name2=new-value2,
[Mệnh đề WHERE]

Làm cách nào để CẬP NHẬT cột bảng MySQL?

Lệnh MySQL UPDATE có thể được sử dụng để cập nhật nhiều cột bằng cách chỉ định danh sách cột_name = new_value được phân tách bằng dấu phẩy . Trong đó column_name là tên của cột sẽ được cập nhật và new_value là giá trị mới mà cột sẽ được cập nhật.

Làm cách nào để CẬP NHẬT dữ liệu trong truy vấn MySQL?

Đ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 − CẬP NHẬT tên_bảng SET trường1 = giá trị mới1, trường2 = giá trị mới2 [Điều khoản WHERE].
Thí dụ. .
cú pháp. .
Thí dụ

Bạn có thể chỉnh sửa bảng trong MySQL không?

Bạn có thể thêm hoặc sửa đổi các cột hoặc chỉ mục của bảng, thay đổi công cụ, thêm khóa ngoại hoặc thay đổi tên bảng . Để truy cập MySQL Table Editor, bấm chuột phải vào tên bảng trong khu vực Bộ điều hướng của thanh bên với tab phụ Sơ đồ được chọn và bấm vào Bảng thay đổi.