Cập nhật các giá trị được phân tách bằng dấu phẩy trong mysql
Truy vấn CẬP NHẬT MySQL là một câu lệnh DML được sử dụng để sửa đổi dữ liệu của bảng MySQL trong cơ sở dữ liệu. Trong một tình huống thực tế, các bản ghi được thay đổi trong một khoảng thời gian. Vì vậy, chúng ta cũng cần thay đổi giá trị của các bảng. Để làm như vậy, bắt buộc phải sử dụng truy vấn CẬP NHẬT Show
Câu lệnh UPDATE được sử dụng với mệnh đề SET và WHERE. Mệnh đề SET được sử dụng để thay đổi giá trị của cột được chỉ định. Chúng tôi có thể cập nhật một hoặc nhiều cột cùng một lúc cú phápSau đây là cú pháp chung của lệnh UPDATE để sửa đổi dữ liệu vào bảng MySQL Giải thích thông sốMô tả các tham số được sử dụng trong cú pháp của câu lệnh CẬP NHẬT được đưa ra bên dưới Tham số Mô tảstable_nameĐó là tên của bảng mà chúng tôi muốn thực hiện cập nhật. tên_cộtĐó là tên của một cột mà chúng tôi muốn thực hiện cập nhật với giá trị mới bằng cách sử dụng mệnh đề SET. Nếu cần cập nhật nhiều cột, hãy phân tách các cột bằng toán tử dấu phẩy bằng cách chỉ định giá trị trong mỗi cột. Mệnh đề WHERE là tùy chọn. Nó được sử dụng để chỉ định tên hàng mà chúng ta sẽ thực hiện cập nhật. Nếu chúng ta bỏ qua mệnh đề này, MySQL sẽ cập nhật tất cả các hàngGhi chú
Lệnh UPDATE hỗ trợ các công cụ sửa đổi này trong MySQL ƯU TIÊN THẤP. Công cụ sửa đổi này hướng dẫn câu lệnh trì hoãn việc thực thi lệnh CẬP NHẬT cho đến khi không có ứng dụng khách nào khác đọc từ bảng. Nó chỉ có tác dụng đối với các công cụ lưu trữ chỉ sử dụng khóa cấp bảng LÀM LƠ. Công cụ sửa đổi này cho phép câu lệnh không hủy bỏ việc thực thi ngay cả khi xảy ra lỗi. Nếu nó tìm thấy xung đột khóa trùng lặp, các hàng sẽ không được cập nhật Do đó, cú pháp đầy đủ của câu lệnh CẬP NHẬT được đưa ra bên dưới Thí dụHãy để chúng tôi hiểu câu lệnh CẬP NHẬT với sự trợ giúp của các ví dụ khác nhau. Giả sử chúng ta có một bảng "huấn luyện viên" trong cơ sở dữ liệu "testdb". Chúng tôi sẽ cập nhật dữ liệu trong bảng "huấn luyện viên" Cập nhật một cột Truy vấn này sẽ cập nhật id email của khóa học Java với id mới như sau Sau khi thực hiện thành công, chúng tôi sẽ xác minh bảng bằng cách sử dụng câu lệnh dưới đây Ở đầu ra, chúng ta có thể thấy rằng bảng của chúng ta được cập nhật theo các điều kiện của chúng ta Cập nhật nhiều cột Câu lệnh CẬP NHẬT cũng có thể được sử dụng để cập nhật nhiều cột bằng cách chỉ định danh sách các cột được phân tách bằng dấu phẩy. Giả sử chúng ta có một bảng như dưới đây Câu lệnh này giải thích sẽ cập nhật tên và nghề nghiệp có id = 105 trong bảng People như sau Chúng tôi có thể xác minh đầu ra dưới đây CẬP NHẬT Tuyên bố để thay thế Chuỗi Chúng ta cũng có thể sử dụng câu lệnh UPDATE trong MySQL để thay đổi tên chuỗi trong cột cụ thể. Ví dụ sau cập nhật phần tên miền của email trong khóa học Android Đọc "Cách cài đặt MySQL và bắt đầu" về cách cài đặt, tùy chỉnh và bắt đầu với MySQL Tóm tắt các lệnh MySQL được sử dụng trong Hướng dẫn nàyĐể biết cú pháp chi tiết, hãy xem hướng dẫn sử dụng MySQL "Cú pháp câu lệnh SQL" @ http. // nhà phát triển. mysql. com/doc/refman/5. 5/en/sql-cú pháp. html Một ví dụ cho người mới bắt đầu (Nhưng KHÔNG dành cho người giả)Một máy chủ cơ sở dữ liệu MySQL chứa nhiều cơ sở dữ liệu (hoặc lược đồ). Mỗi cơ sở dữ liệu bao gồm một hoặc nhiều bảng. Một bảng được tạo thành từ các cột (hoặc trường) và hàng (bản ghi) Các từ khóa và lệnh SQL KHÔNG phân biệt chữ hoa chữ thường. Để rõ ràng, chúng được hiển thị bằng chữ hoa. Tên hoặc mã định danh (tên cơ sở dữ liệu, tên bảng, tên cột, v.v. ) phân biệt chữ hoa chữ thường trong một số hệ thống, nhưng không phân biệt chữ hoa chữ thường trong các hệ thống khác. Do đó, cách tốt nhất là coi số nhận dạng là phân biệt chữ hoa chữ thường HIỂN THỊ CƠ SỞ DỮ LIỆUBạn có thể sử dụng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)6 để liệt kê tất cả các cơ sở dữ liệu hiện có trong máy chủ mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........ Cơ sở dữ liệu " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)7", "_______08" và " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)9" là cơ sở dữ liệu hệ thống được sử dụng nội bộ bởi MySQL. Cơ sở dữ liệu " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+0" được cung cấp trong quá trình cài đặt để bạn thử nghiệm Hãy để chúng tôi bắt đầu với một ví dụ đơn giản - cơ sở dữ liệu bán sản phẩm. Một cơ sở dữ liệu bán sản phẩm thường bao gồm nhiều bảng, e. g. , sản phẩm, khách hàng, nhà cung cấp, đơn đặt hàng, thanh toán, nhân viên, v.v. Hãy gọi cơ sở dữ liệu của chúng ta là "______51" (lấy cảm hứng từ cơ sở dữ liệu mẫu Northwind Trader của Microsoft). Chúng ta sẽ bắt đầu với bảng đầu tiên có tên là " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2" với các cột sau (có kiểu dữ liệu như đã chỉ ra) và các hàngCơ sở dữ liệu. gió nam Bảng. productsproductID INTMã sản phẩm CHAR(3)tên VARCHAR(30)số lượng INTgiá< . 231002PENBút Xanh80001. 251003PENBút Đen20001. 251004PECBút chì 2B100000. 481005PECBút chì 2H80000. 49 DECIMAL(10,2)1001PENPen Red50001.231002PENPen Blue80001.251003PENPen Black20001.251004PECPencil 2B100000.481005PECPencil 2H80000.49 Tạo và xóa cơ sở dữ liệu - CREATE DATABASE and DROP DATABASEBạn có thể tạo cơ sở dữ liệu mới bằng lệnh SQL "______53"; . Bạn có thể tùy ý áp dụng điều kiện " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+5" hoặc " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+6" cho các lệnh này. Ví dụ, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........2 QUAN TRỌNG. Sử dụng các lệnh SQL mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+7 (và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8) hết sức cẩn thận, vì các thực thể đã xóa không thể khôi phục được. KHÔNG CÓ HOÀN TÁC HIỂN THỊ TẠO CƠ SỞ DỮ LIỆUCác lệnh mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+9 sử dụng một số giá trị mặc định. Bạn có thể gõ " mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........60" để hiển thị lệnh đầy đủ và kiểm tra các giá trị mặc định này. Chúng tôi sử dụng mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........61 (thay vì mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........62) để hiển thị kết quả theo chiều dọc. (Hãy thử so sánh kết quả đầu ra của mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........62 và mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........61. ) mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)1 Số nhận dạng trích dẫn ngược (`tên`)Tên hoặc mã định danh không được trích dẫn (chẳng hạn như tên cơ sở dữ liệu, tên bảng và tên cột) không được chứa ký tự trống và ký tự đặc biệt hoặc gặp sự cố với từ khóa MySQL (chẳng hạn như mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........65 và mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........66). Bạn có thể bao gồm các khoảng trống và ký tự đặc biệt hoặc sử dụng từ khóa MySQL làm định danh bằng cách kèm theo một cặp trích dẫn ngược, ở dạng mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........67 Để đảm bảo tính mạnh mẽ, lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........68 trích dẫn lại tất cả các mã định danh, như được minh họa trong ví dụ trên Nhận xét và Phiên bản Nhận xétNhận xét nhiều dòng của MySQL được đính kèm trong mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........69 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)70; mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)73 được gọi là nhận xét phiên bản, sẽ chỉ được chạy nếu máy chủ bằng hoặc cao hơn số phiên bản này mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)74. Để kiểm tra phiên bản máy chủ MySQL của bạn, hãy đưa ra truy vấn " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)75" Đặt cơ sở dữ liệu mặc định - SỬ DỤNGLệnh " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)76" đặt một cơ sở dữ liệu cụ thể làm cơ sở dữ liệu mặc định (hoặc hiện tại). Bạn có thể tham khảo trực tiếp một bảng trong cơ sở dữ liệu mặc định bằng cách sử dụng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)77. Nhưng bạn cần sử dụng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)78 đủ điều kiện để tham chiếu một bảng KHÔNG có trong cơ sở dữ liệu mặc định Trong ví dụ của chúng tôi, chúng tôi có một cơ sở dữ liệu có tên " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+1" với một bảng có tên " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2". Nếu chúng tôi phát hành " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)81" để đặt mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+1 làm cơ sở dữ liệu mặc định, chúng tôi chỉ cần gọi bảng là " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2". Mặt khác, chúng ta cần tham chiếu bảng là " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)84" Để hiển thị cơ sở dữ liệu mặc định hiện tại, hãy ra lệnh "______385" Tạo và xóa bảng - CREATE TABLE và DROP TABLEBạn có thể tạo một bảng mới trong cơ sở dữ liệu mặc định bằng cách sử dụng lệnh "______386" và " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)87". Bạn cũng có thể áp dụng điều kiện " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+5" hoặc "_______56". Để tạo một bảng, bạn cần xác định tất cả các cột của nó bằng cách cung cấp tên, loại và thuộc tính của các cột Hãy tạo một bảng " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2" trong cơ sở dữ liệu của chúng tôi " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+1" giải thíchChúng tôi xác định 5 cột trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2. mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+04, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+05, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+06 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+07. các loại là
Thuộc tính "______1217" chỉ định rằng cột không được chứa giá trị mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 là một giá trị đặc biệt cho biết "không có giá trị", "giá trị không xác định" hoặc "giá trị bị thiếu". Trong trường hợp của chúng tôi, các cột này sẽ có một giá trị phù hợp. Chúng tôi cũng đặt giá trị mặc định của các cột. Cột sẽ nhận giá trị mặc định nếu không có giá trị nào được chỉ định trong quá trình tạo bản ghi Chúng tôi đặt cột mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 làm cái gọi là khóa chính. Giá trị của cột khóa chính phải là duy nhất. Mỗi bảng sẽ chứa một khóa chính. Điều này đảm bảo rằng mọi hàng có thể được phân biệt với các hàng khác. Bạn có thể chỉ định một cột hoặc một tập hợp các cột (e. g. , mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........221 và mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........222) làm khóa chính. Một chỉ mục được xây dựng tự động trên cột khóa chính để hỗ trợ tìm kiếm nhanh. Khóa chính cũng được sử dụng làm tham chiếu cho các bảng khác Chúng tôi đặt cột mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 thành mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........224. với giá trị bắt đầu mặc định là 1. Khi bạn chèn một hàng có mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 (được đề xuất) (hoặc 0 hoặc giá trị bị thiếu) cho cột mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........224, giá trị tối đa của cột đó cộng với 1 sẽ được chèn vào. Bạn cũng có thể chèn một giá trị hợp lệ vào cột mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........224, bỏ qua phần tăng tự động Chèn hàng - INSERT INTOHãy lấp đầy bảng " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2" của chúng ta bằng các hàng. Chúng tôi đặt mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 của bản ghi đầu tiên thành 1001 và sử dụng mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........224 cho các bản ghi còn lại bằng cách chèn một mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 hoặc với một giá trị cột bị thiếu. Lưu ý rằng các chuỗi phải được đặt trong một cặp dấu ngoặc đơn (hoặc dấu ngoặc kép) CHÈN VÀO Cú phápChúng ta có thể sử dụng câu lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........232 để chèn một hàng mới với tất cả các giá trị của cột, sử dụng cú pháp sau Bạn cần liệt kê các giá trị theo cùng thứ tự mà các cột được xác định trong mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........233, được phân tách bằng dấu phẩy. Đối với các cột kiểu dữ liệu chuỗi ( mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........208, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........207) thì kèm theo giá trị bằng một cặp dấu nháy đơn (hoặc nháy kép). Đối với các cột có kiểu dữ liệu số ( mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........236, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........213, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........214, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........215), chỉ cần đặt số Bạn cũng có thể chèn nhiều hàng vào một câu lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........232 mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8 Để chỉ chèn một hàng có giá trị trên các cột đã chọn, hãy sử dụng Các cột còn lại sẽ nhận giá trị mặc định, chẳng hạn như mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........224, mặc định hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 Truy vấn cơ sở dữ liệu - CHỌNNhiệm vụ phổ biến, quan trọng và phức tạp nhất là truy vấn cơ sở dữ liệu để tìm một tập hợp con dữ liệu đáp ứng nhu cầu của bạn - bằng lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243. Lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 có cú pháp như sau Ví dụ như, CHỌN không có bảngBạn cũng có thể phát hành mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 mà không cần bàn. Ví dụ: bạn có thể mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 một biểu thức hoặc đánh giá một hàm dựng sẵn Toán tử so sánhĐối với các số ( mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........236, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........213, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........214), bạn có thể sử dụng các toán tử so sánh. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........250 (bằng), mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........251 hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........252 (không bằng), mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........253 (lớn hơn), mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........254 (nhỏ hơn), mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........255 (lớn hơn hoặc bằng), mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........256 (nhỏ hơn hoặc bằng), để so sánh hai số. Ví dụ: mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........257, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........258 mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec) THẬN TRỌNG. Không so sánh các mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........214 (số thực) cho bằng nhau ( mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........250 hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........251), vì chúng không chính xác. Mặt khác, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........213 là chính xác Đối với chuỗi, bạn cũng có thể sử dụng mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........250, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........251, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........253, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........254, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........255, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........256 để so sánh hai chuỗi (e. g. , mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........269 Thứ tự của chuỗi phụ thuộc vào cái gọi là đối chiếu đã chọn. Ví dụ, Khớp mẫu chuỗi - THÍCH và KHÔNG THÍCHĐối với các chuỗi, ngoài việc khớp hoàn toàn bằng cách sử dụng các toán tử như mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........250 và mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........251, chúng ta có thể thực hiện khớp mẫu bằng cách sử dụng toán tử mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........272 (hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........273) với các ký tự đại diện. Ký tự đại diện _______ 1274 khớp với bất kỳ ký tự đơn nào; . Ví dụ,
MySQL cũng hỗ trợ khớp biểu thức chính quy thông qua toán tử mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........286 toán tử số họcBạn có thể thực hiện các phép toán số học trên các trường số bằng các toán tử số học, như được lập bảng dưới đây Toán tử Mô tả+Cộng-Trừ*Nhân/chia DIVInteger Division%Modulus (Phần dư)Toán tử logic - AND, OR, NOT, XORBạn có thể kết hợp nhiều điều kiện với toán tử boolean mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........287, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........288, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........289. Bạn cũng có thể đảo ngược một điều kiện bằng cách sử dụng toán tử mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........290. Ví dụ như, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+ VÀO, KHÔNG VÀOBạn có thể chọn từ các phần tử của một tập hợp với toán tử mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........291 (hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........292). Điều này dễ dàng và rõ ràng hơn biểu thức mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........293 tương đương mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........6 GIỮA, KHÔNG GIỮAĐể kiểm tra xem giá trị có nằm trong một phạm vi hay không, bạn có thể sử dụng toán tử mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........294. Một lần nữa, điều này dễ dàng và rõ ràng hơn biểu thức mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........293 tương đương mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)7 LÀ NULL, KHÔNG PHẢI LÀ NULLmysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 là một giá trị đặc biệt, đại diện cho "không có giá trị", "giá trị bị thiếu" hoặc "giá trị không xác định". Bạn có thể kiểm tra xem một cột có chứa mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 bởi mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........298 hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........299 hay không. Ví dụ, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)8 Sử dụng toán tử so sánh (chẳng hạn như mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)100 hoặc mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)101) để kiểm tra mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 là một lỗi - một lỗi rất phổ biến. Ví dụ, ĐẶT HÀNG THEO Mệnh đềBạn có thể sắp xếp thứ tự các hàng đã chọn bằng mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)103, với cú pháp sau mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+0 Hàng đã chọn sẽ được sắp xếp theo các giá trị trong mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)104, theo thứ tự tăng dần ( mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)105) (mặc định) hoặc giảm dần ( mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........66). Nếu một số hàng có cùng giá trị trong mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)104, nó sẽ được sắp xếp theo mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)108, v.v. Đối với các chuỗi, thứ tự có thể phân biệt chữ hoa chữ thường hoặc không phân biệt chữ hoa chữ thường, tùy thuộc vào cái gọi là trình tự đối chiếu ký tự được sử dụng. Ví dụ như, Bạn có thể chọn ngẫu nhiên các bản ghi được trả về thông qua chức năng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)109, e. g. , mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........20 Mệnh đề GIỚI HẠNTruy vấn mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 trên cơ sở dữ liệu lớn có thể tạo ra nhiều hàng. Bạn có thể sử dụng mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)111 để giới hạn số hàng được hiển thị, e. g. , Để tiếp tục đến các bản ghi sau , bạn có thể chỉ định số hàng sẽ được bỏ qua, theo sau là số hàng sẽ được hiển thị trong mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)111, như sau AS - Bí danhBạn có thể sử dụng từ khóa mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)113 để xác định bí danh cho một mã định danh (chẳng hạn như tên cột, tên bảng). Bí danh sẽ được sử dụng để hiển thị tên. Nó cũng có thể được sử dụng như tài liệu tham khảo. Ví dụ, Hãy lưu ý rằng mã định danh "______2114" chứa khoảng trống và phải được đặt trong dấu ngoặc kép Hàm CONCAT()Bạn cũng có thể nối một vài cột thành một (e. g. , nối họ và tên) bằng hàm mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)115. Ví dụ, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........21 Sản xuất báo cáo tóm tắtĐể tạo báo cáo tóm tắt, chúng ta thường cần tổng hợp các hàng có liên quan RIÊNG BIỆTMột cột có thể có các giá trị trùng lặp, chúng tôi có thể sử dụng từ khóa mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)116 để chỉ chọn các giá trị khác biệt. Chúng tôi cũng có thể áp dụng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)116 cho một số cột để chọn các kết hợp riêng biệt của các cột này. Ví dụ như, NHÓM THEO Mệnh đềMệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118 cho phép bạn thu gọn nhiều bản ghi có giá trị chung thành các nhóm. Ví dụ, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118 bản thân nó không có nghĩa. Nó được sử dụng cùng với các hàm tổng hợp của mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118 (chẳng hạn như mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)121, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)122, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)123) để tạo tóm tắt nhóm NHÓM THEO Hàm tổng hợp. ĐẾM, TỐI ĐA, TỐI THIỂU, AVG, SUM, STD, GROUP_CONCATChúng ta có thể áp dụng hàm Tổng hợp mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118 cho từng nhóm để tạo báo cáo tóm tắt nhóm Hàm mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)125 trả về các hàng đã chọn; . Ví dụ, Ngoài mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)121 còn có nhiều hàm tổng hợp khác của mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118 như mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)122, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)131, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)132 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)123. Ví dụ, mệnh đề HAVINGmysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)134 tương tự như mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135, nhưng nó có thể hoạt động trên các hàm tổng hợp của mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)118; VỚI ROLLUPMệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)138 thể hiện tóm tắt tóm tắt nhóm, đ. g. , Sửa đổi dữ liệu - CẬP NHẬTĐể sửa đổi dữ liệu hiện có, hãy sử dụng lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)139, với cú pháp sau mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........22 Ví dụ, THẬN TRỌNG. Nếu mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135 bị bỏ qua trong lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)141, TẤT CẢ HÀNG sẽ được cập nhật. Do đó, nên thực hiện một truy vấn mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243, sử dụng cùng tiêu chí, để kiểm tra tập kết quả trước khi đưa ra truy vấn mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)141. Điều này cũng áp dụng cho câu lệnh mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8 trong phần sau Xóa hàng - DELETE FROMSử dụng lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)145 để xóa (các) hàng khỏi bảng, với cú pháp sau Ví dụ, Coi chừng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)146" không có mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135 sẽ xóa TẤT CẢ các bản ghi khỏi bảng. Ngay cả với mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135, bạn có thể đã vô tình xóa một số bản ghi. Luôn luôn nên đưa ra lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 với cùng mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135 để kiểm tra tập kết quả trước khi đưa ra lệnh mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8 (và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)141) Tải/Xuất dữ liệu từ/sang tệp văn bảnCó một số cách để thêm dữ liệu vào cơ sở dữ liệu. (a) đưa ra các lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)153 theo cách thủ công; LOAD DATA INFILE ĐỊA PHƯƠNG. VÀO BẢNGBên cạnh việc sử dụng các lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)153 để chèn hàng, bạn có thể giữ dữ liệu thô của mình trong một tệp văn bản và tải chúng vào bảng thông qua lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)155. Ví dụ: sử dụng trình soạn thảo văn bản để TẠO TẬP TIN MỚI có tên " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)159", trong " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)160" (dành cho Windows) hoặc " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)161" (dành cho Mac), chứa các bản ghi sau, trong đó các giá trị được phân tách bằng ____2162. Phần mở rộng tệp của " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)163" là viết tắt của tệp văn bản Giá trị được phân tách bằng dấu phẩy mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........23 Bạn có thể tải dữ liệu thô vào bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 như sau mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........24 ghi chú
chương trình tiện ích mysqlimportBạn cũng có thể sử dụng chương trình tiện ích mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)156 để tải dữ liệu từ tệp văn bản mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........25 LỰA CHỌN. INTO OUTFILEKhen ngợi lệnh mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)155, bạn có thể sử dụng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)175 để xuất dữ liệu từ bảng thành tệp văn bản. Ví dụ, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........26 Chạy tập lệnh SQLThay vì nhập từng câu lệnh SQL theo cách thủ công, bạn có thể giữ nhiều câu lệnh SQL trong một tệp văn bản, được gọi là tập lệnh SQL và chạy tập lệnh. Ví dụ: sử dụng trình soạn thảo văn bản lập trình để chuẩn bị tập lệnh sau và lưu thành " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)176" trong " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)160" (dành cho Windows) hoặc " mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)161" (dành cho Mac) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........27 Bạn có thể chạy tập lệnh
Nhiều hơn một bảngVí dụ của chúng tôi cho đến nay chỉ liên quan đến một bảng " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2". Một cơ sở dữ liệu thực tế chứa nhiều bảng liên quan Sản phẩm có nhà cung cấp. Nếu mỗi sản phẩm có một nhà cung cấp và mỗi nhà cung cấp chỉ cung cấp một sản phẩm (được gọi là mối quan hệ một-một), chúng ta chỉ cần thêm dữ liệu của nhà cung cấp (tên, địa chỉ, số điện thoại) vào bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2. Giả sử rằng mỗi sản phẩm có một nhà cung cấp và một nhà cung cấp có thể cung cấp 0 hoặc nhiều sản phẩm (được gọi là mối quan hệ một-nhiều). Đưa dữ liệu của nhà cung cấp vào bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 dẫn đến trùng lặp dữ liệu. Điều này là do một nhà cung cấp có thể cung cấp nhiều sản phẩm, do đó, dữ liệu của cùng một nhà cung cấp xuất hiện trong nhiều hàng. Điều này không chỉ gây lãng phí dung lượng lưu trữ mà còn dễ dẫn đến tình trạng không thống nhất (vì tất cả các dữ liệu trùng nhau phải được cập nhật đồng thời). Tình hình thậm chí còn phức tạp hơn nếu một sản phẩm có nhiều nhà cung cấp và mỗi nhà cung cấp có thể cung cấp nhiều sản phẩm, trong mối quan hệ nhiều-nhiều Mối quan hệ một-nhiềuGiả sử rằng mỗi sản phẩm có một nhà cung cấp và mỗi nhà cung cấp cung cấp một hoặc nhiều sản phẩm. Chúng ta có thể tạo một bảng tên là mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 để lưu trữ dữ liệu của nhà cung cấp (e. g. (tên, địa chỉ và số điện thoại). Chúng tôi tạo một cột có giá trị duy nhất được gọi là mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 để xác định mọi nhà cung cấp. Chúng tôi đặt mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 làm khóa chính cho bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 (để đảm bảo tính duy nhất và hỗ trợ tìm kiếm nhanh) Để liên kết bảng ________ 2185 với bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2, chúng tôi thêm một cột mới vào bảng ________ 52 - ________ 2186. Sau đó, chúng tôi đặt cột mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 của bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 làm khóa ngoại tham chiếu cột mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 của bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 để đảm bảo cái gọi là tính toàn vẹn tham chiếuCơ sở dữ liệu. gió nam Bảng. nhà cung cấpsupplierID INTname VARCHAR(3)phone CHAR(8)501ABC Traders88881111502XYZ Company88882222503QQ Corp88883333 Database: southwind Bảng. productsproductID INTMã sản phẩm CHAR(3)tên VARCHAR(30)số lượng INTgiá< . 525012002PECBút chì 4B2000. 625012003PECBút chì 5B1000. 735012004PECBút chì 6B5000. 47502 DECIMAL(10,2)supplierID INT (Foreign Key)2001PECPencil 3B5000.525012002PECPencil 4B2000.625012003PECPencil 5B1000.735012004PECPencil 6B5000.47502 Trước tiên chúng ta cần tạo bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185, vì bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 tham chiếu bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185. Bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 được gọi là bảng cha; mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........29 THAY ĐỔI BẢNGThay vì xóa và tạo lại bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2, chúng ta sẽ sử dụng " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+803" để thêm một cột mới mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 vào bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)10 Tiếp theo, chúng ta sẽ thêm một ràng buộc khóa ngoại trên các cột mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 của bảng con mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 vào bảng cha mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185, để đảm bảo rằng mọi mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 luôn đề cập đến một mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 hợp lệ trong bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 - điều này được gọi là tính toàn vẹn tham chiếu Trước khi chúng tôi có thể thêm khóa ngoại, chúng tôi cần đặt ________ 2186 của các bản ghi hiện có trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 thành một ________ 2186 hợp lệ trong bảng (giả sử mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+816) CHỌN với THAM GIALệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 có thể được sử dụng để truy vấn và nối dữ liệu từ hai bảng có liên quan. Ví dụ: để liệt kê mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+05 của sản phẩm (trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2) và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+05 của nhà cung cấp (trong bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185), chúng ta có thể nối hai bảng thông qua hai cột chung mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 Trong kết quả truy vấn trên, hai trong số các cột có cùng tiêu đề " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+05". Chúng ta có thể tạo bí danh cho các tiêu đề Sơ đồ cơ sở dữ liệu như minh họa. Liên kết chỉ ra mối quan hệ một-nhiều giữa mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 Mối quan hệ nhiều-nhiềuGiả sử rằng một sản phẩm có nhiều nhà cung cấp; . Giải pháp trên phá vỡ. Bạn không thể bao gồm mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2, vì bạn không thể xác định số lượng nhà cung cấp và do đó, số lượng cột cần thiết cho các mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186. Tương tự, bạn không thể đưa mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 vào bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185, vì bạn không thể xác định số lượng sản phẩm Để giải quyết vấn đề này, bạn cần tạo một bảng mới, được gọi là bảng liên kết (hoặc bảng liên kết), để cung cấp liên kết. Hãy gọi bảng nối là mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+831, như minh họaCơ sở dữ liệu. gió nam Bảng. products_suppliersproductID INT (Khóa ngoại)supplierID INT (Khóa ngoại)20015012002501200350120045022001503< . gió nam Database: southwind Bảng. nhà cung cấpsupplierID INTname VARCHAR(30)phone CHAR(8)501ABC Traders88881111502XYZ Company88882222503QQ Corp88883333 Database: southwind Bảng. productsproductID INTMã sản phẩm CHAR(3)tên VARCHAR(30)số lượng INTgiá< . 522002PECBút chì 4B2000. 622003PECBút chì 5B1000. 732004PECBút chì 6B5000. 47 DECIMAL(10,2)2001PECPencil 3B5000.522002PECPencil 4B2000.622003PECPencil 5B1000.732004PECPencil 6B5000.47 Hãy tạo bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+831. Khóa chính của bảng gồm 2 cột. mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186, vì sự kết hợp của chúng xác định duy nhất mỗi hàng. Khóa chính này được xác định để đảm bảo tính duy nhất. Hai khóa ngoại được xác định để đặt ràng buộc cho hai bảng cha Tiếp theo, xóa cột mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 khỏi bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2. (Cột này đã được thêm vào để thiết lập mối quan hệ một-nhiều. Nó không còn cần thiết trong mối quan hệ nhiều-nhiều. ) Trước khi có thể xóa cột này, bạn cần xóa khóa ngoại được tạo trên cột này. Để xóa một khóa trong MySQL, bạn cần biết tên ràng buộc của nó do hệ thống tạo ra. Để tìm tên ràng buộc, hãy nhập " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+837" và lưu ý tên ràng buộc của khóa ngoại trong mệnh đề " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+838". Sau đó, bạn có thể xóa khóa ngoại bằng cách sử dụng " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+839" mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)11 Bây giờ, chúng ta có thể loại bỏ cột mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)186 cột dư thừa mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)12 truy vấnTương tự, chúng ta có thể sử dụng mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 với mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+842 để truy vấn dữ liệu từ 3 bảng, ví dụ: Sơ đồ cơ sở dữ liệu như sau. Cả hai bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 đều thể hiện mối quan hệ một-nhiều với bảng nối. Mối quan hệ nhiều-nhiều được hỗ trợ thông qua bảng nối Mối quan hệ một đối mộtGiả sử rằng một số sản phẩm có dữ liệu tùy chọn (e. g. , ảnh, bình luận). Thay vì giữ những dữ liệu tùy chọn này trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2, sẽ hiệu quả hơn nếu tạo một bảng khác có tên là mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+846s và liên kết nó với mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2 bằng mối quan hệ một đối một, như minh họa mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)13 Sao lưu và khôi phụcSao lưu. Trước khi kết thúc ví dụ này, hãy chạy chương trình tiện ích mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+848 để kết xuất (sao lưu) toàn bộ cơ sở dữ liệu mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+1 mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)14 Nghiên cứu tệp đầu ra, chứa các câu lệnh mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+9, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........233 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)153 để tạo lại các bảng đã kết xuất Cú pháp cho chương trình tiện ích mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+848 như sau mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)15 Khôi phục. Tiện ích mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+848 tạo ra một tập lệnh SQL (bao gồm các lệnh mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........233 và mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)153 để tạo lại các bảng và tải dữ liệu của chúng). Bạn có thể khôi phục từ bản sao lưu bằng cách chạy tập lệnh
Tìm hiểu thêm về Khóa chính, Khóa ngoại và Chỉ mụcKhóa chínhTrong mô hình quan hệ, một bảng không được chứa các hàng trùng lặp, vì điều đó sẽ tạo ra sự không rõ ràng khi truy xuất. Để đảm bảo tính duy nhất, mỗi bảng phải có một cột (hoặc một tập hợp các cột), được gọi là khóa chính, xác định duy nhất mọi bản ghi của bảng. Ví dụ: một số duy nhất mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+860 có thể được sử dụng làm khóa chính cho bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+861; . Khóa chính được gọi là khóa đơn nếu nó là một cột đơn; . Hầu hết các RDBMS xây dựng một chỉ mục trên khóa chính để hỗ trợ tìm kiếm nhanh. Khóa chính thường được dùng để liên kết với các bảng khác Khóa ngoạiKhóa ngoại của bảng con dùng để tham chiếu đến bảng cha. Có thể áp đặt ràng buộc khóa ngoại để đảm bảo cái gọi là tính toàn vẹn tham chiếu - các giá trị trong bảng con phải là các giá trị hợp lệ trong bảng cha Chúng tôi xác định khóa ngoại khi xác định bảng con, tham chiếu đến bảng cha, như sau Bạn có thể chỉ định hành động tham chiếu cho mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)141 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8 thông qua các mệnh đề tùy chọn mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+868 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+869
Hãy thử xóa một bản ghi trong bảng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)185 (cha) được tham chiếu bởi bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+831 (con), e. g. , Bản ghi không thể bị xóa do ràng buộc " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+885" mặc định đã được áp đặt Chỉ mục (hoặc Khóa)Chỉ mục (hoặc Khóa) có thể được tạo trên (các) cột đã chọn để hỗ trợ tìm kiếm nhanh. Không có chỉ mục, " mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+886" cần khớp với cột mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 của tất cả các bản ghi trong bảng mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+2. Nếu cột mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+03 được lập chỉ mục (e. g. , sử dụng cây nhị phân), việc so khớp có thể được cải thiện rất nhiều (thông qua tìm kiếm cây nhị phân) Bạn nên lập chỉ mục các cột thường được sử dụng trong mệnh đề mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)135; Hạn chế về lập chỉ mục là chi phí và không gian. Xây dựng và duy trì các chỉ mục yêu cầu tính toán và không gian bộ nhớ. Các chỉ mục tạo điều kiện tìm kiếm nhanh nhưng làm giảm hiệu suất khi sửa đổi bảng ( mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+892) và cần phải được chứng minh. Tuy nhiên, cơ sở dữ liệu quan hệ thường được tối ưu hóa cho các truy vấn và truy xuất, nhưng KHÔNG dành cho các bản cập nhật Trong MySQL, từ khóa mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+893 đồng nghĩa với mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+894 Trong MySQL, các chỉ mục có thể được xây dựng trên
Có thể có nhiều hơn một chỉ mục trong một bảng. Chỉ mục được tạo tự động trên (các) cột khóa chính Bạn có thể xây dựng chỉ mục thông qua mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........233, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)00 hoặc mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+803 Thêm SQLTruy vấn phụKết quả của một truy vấn có thể được sử dụng trong một câu lệnh SQL khác. Truy vấn con rất hữu ích nếu có nhiều hơn một bảng tham gia CHỌN với Truy vấn conTrong ví dụ bán sản phẩm nhiều-nhiều trước đây, làm cách nào để tìm nhà cung cấp không cung cấp bất kỳ sản phẩm nào? mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)16 Bạn có thể làm điều này mà không cần truy vấn phụ không? Truy vấn con có thể trả về một vô hướng, một cột, một hàng hoặc một bảng. Bạn có thể sử dụng toán tử so sánh (e. g. , mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........250, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........253) trên vô hướng, mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........291 hoặc mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........292 cho một hàng hoặc cột, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)08 hoặc mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)09 để kiểm tra tập rỗng CHÈN. CẬP NHẬT. XÓA với truy vấn phụBạn cũng có thể sử dụng truy vấn con với các câu lệnh SQL khác, chẳng hạn như mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)153, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+8 hoặc mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)141. Ví dụ, Làm việc với Ngày và GiờNgày và giờ được quan tâm đặc biệt đối với các ứng dụng cơ sở dữ liệu. Điều này là do hồ sơ kinh doanh thường mang thông tin ngày/giờ (e. g. , _______ 013, ________ 014, ________ 015, ________ 016), cũng như nhu cầu đánh dấu thời gian cho việc tạo và cập nhật lần cuối hồ sơ để kiểm tra và bảo mật Với kiểu dữ liệu ngày/giờ, bạn có thể sắp xếp kết quả theo ngày, tìm kiếm một ngày cụ thể hoặc một phạm vi ngày, tính toán sự khác biệt giữa các ngày, tính toán một ngày mới bằng cách cộng/trừ một khoảng từ một ngày nhất định Ngày Bằng Ví dụHãy bắt đầu với Ngày (không có Thời gian) với ví dụ sau. Lưu ý rằng giá trị ngày tháng phải được viết dưới dạng chuỗi ở định dạng mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)17, e. g. , mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)18 Chức năng ngày/giờMySQL cung cấp các chức năng tích hợp này để lấy ngày, giờ và ngày giờ hiện tại
Ví dụ như, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)17 Các loại ngày/giờ SQLMySQL cung cấp các kiểu dữ liệu ngày/giờ này
Giá trị ngày/giờ có thể được nhập thủ công dưới dạng chuỗi ký tự (e. g. , mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)64 cho mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)65). MySQL sẽ đưa ra cảnh báo và chèn tất cả các số không (e. g. , mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)66 cho mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)65), nếu giá trị ngày/giờ được chèn không hợp lệ hoặc nằm ngoài phạm vi. mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)68 được gọi là ngày "giả" Thêm Chức năng Ngày/GiờThẩm quyền giải quyết. "Hàm ngày và giờ" của MySQL @ http. // nhà phát triển. mysql. com/doc/refman/5. 5/en/hàm ngày giờ. html Có nhiều chức năng ngày/giờ
Khung nhìnChế độ xem là một bảng ảo không chứa dữ liệu vật lý. Nó cung cấp một cách khác để xem dữ liệu mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+89 giao dịchMột giao dịch nguyên tử là một tập hợp các câu lệnh SQL mà TẤT CẢ đều thành công hoặc TẤT CẢ đều thất bại. Giao dịch là quan trọng để đảm bảo rằng không có cập nhật một phần cho cơ sở dữ liệu, được cung cấp một nguyên tử của các câu lệnh SQL. Giao dịch được thực hiện thông qua mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+01 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+02 Nếu bạn bắt đầu một ứng dụng khách mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)7 khác và thực hiện một mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........243 trong quá trình giao dịch (trước khi cam kết hoặc khôi phục), bạn sẽ không thấy các thay đổi Ngoài ra, bạn cũng có thể tắt cái gọi là chế độ mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+05, được đặt theo mặc định và cam kết mọi câu lệnh SQL đơn lẻ Một giao dịch nhóm một tập hợp các hoạt động thành một đơn vị đáp ứng kiểm tra ACID
Biến người dùngTrong MySQL, bạn có thể xác định các biến người dùng thông qua
Ví dụ như, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)0 Thông tin thêm về THAM GIATHAM GIA BÊN TRONGTrong liên kết bên trong của hai bảng, mỗi hàng của bảng đầu tiên được kết hợp (nối) với mọi hàng của bảng thứ hai. Giả sử rằng có n1 hàng trong bảng đầu tiên và n2 hàng trong bảng thứ hai, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+10 tạo ra tất cả các kết hợp của n1×n2 hàng - nó được gọi là Tích Descartes hoặc Tích chéo Bạn có thể áp đặt các ràng buộc bằng cách sử dụng mệnh đề ________ 511, ví dụ: mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)1 Hãy lưu ý rằng những điều sau đây là tương đương THAM GIA NGOÀI - THAM GIA TRÁI và THAM GIA PHẢI________ 510 với các ràng buộc (________ 511 hoặc _______ 514) tạo ra các hàng được tìm thấy trong cả hai bảng. Mặt khác, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+15 có thể tạo ra các hàng nằm trong một bảng nhưng không phải trong một bảng khác. Có hai loại mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+15. mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+17 tạo ra các hàng nằm trong bảng bên trái, nhưng có thể không nằm trong bảng bên phải; Trong một mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+17, khi một hàng trong bảng bên trái không khớp với bảng bên phải, nó vẫn được chọn nhưng bằng cách kết hợp với một bản ghi "giả mạo" của tất cả các mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | ........218 cho bảng bên phải mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)2 Kết quả là, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+17 đảm bảo rằng tập kết quả chứa mọi hàng trên bảng bên trái. Điều này rất quan trọng, vì trong một số truy vấn, bạn muốn có kết quả trên mọi hàng ở bảng bên trái, không có kết quả khớp ở bảng bên phải, e. g. , tìm kiếm các mặt hàng không có nhà cung cấp. Ví dụ, mysql> SELECT name, price FROM products WHERE price < 1.0; +-----------+-------+ | name | price | +-----------+-------+ | Pencil 2B | 0.48 | | Pencil 2H | 0.49 | +-----------+-------+ 2 rows in set (0.00 sec) mysql> SELECT name, quantity FROM products WHERE quantity <= 2000; +-----------+----------+ | name | quantity | +-----------+----------+ | Pen Black | 2000 | +-----------+----------+ 1 row in set (0.00 sec)3 Hãy lưu ý rằng những điều sau đây là tương đương bài tậpHệ thống cho thuêPeter điều hành một công ty cho thuê ô tô nhỏ với 10 ô tô con và 5 xe tải. Anh ấy mời bạn thiết kế một cổng web để đưa hoạt động của anh ấy lên mạng Đối với giai đoạn đầu, cổng thông tin điện tử sẽ cung cấp các chức năng cơ bản này
Hồ sơ khách hàng chứa tên, địa chỉ và số điện thoại của anh ấy/cô ấy Một chiếc xe, được xác định bởi số đăng ký xe, có thể được thuê hàng ngày. Giá cho thuê là khác nhau cho các loại xe khác nhau. Giảm 20% khi thuê từ 7 ngày trở lên Khách hàng có thể thuê xe từ ngày bắt đầu đến ngày kết thúc. Giảm giá khách hàng đặc biệt, từ 0-50%, có thể được trao cho khách hàng ưu tiên cơ sở dữ liệuCơ sở dữ liệu ban đầu chứa 3 bảng. mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+22, mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+861 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+24. mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+24 là một bảng nối hỗ trợ mối quan hệ nhiều-nhiều giữa mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+22 và mysql> SELECT * FROM products WHERE quantity >= 5000 AND name LIKE 'Pen %'; +-----------+-------------+----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+----------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | | 1002 | PEN | Pen Blue | 8000 | 1.25 | +-----------+-------------+----------+----------+-------+ mysql> SELECT * FROM products WHERE quantity >= 5000 AND price < 1.24 AND name LIKE 'Pen %'; +-----------+-------------+---------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+---------+----------+-------+ | 1001 | PEN | Pen Red | 5000 | 1.23 | +-----------+-------------+---------+----------+-------+ mysql> SELECT * FROM products WHERE NOT (quantity >= 5000 AND name LIKE 'Pen %'); +-----------+-------------+-----------+----------+-------+ | productID | productCode | name | quantity | price | +-----------+-------------+-----------+----------+-------+ | 1003 | PEN | Pen Black | 2000 | 1.25 | | 1004 | PEC | Pencil 2B | 10000 | 0.48 | | 1005 | PEC | Pencil 2H | 8000 | 0.49 | +-----------+-------------+-----------+----------+-------+861 Làm cách nào để CẬP NHẬT các giá trị trong MySQL?Câu lệnh UPDATE được sử dụng với mệnh đề SET và WHERE. Mệnh đề SET được sử dụng để thay đổi giá trị của cột được chỉ định. . CẬP NHẬT tên_bảng SET cột_name1 = new-value1, column_name2=new-value2, [Mệnh đề WHERE] Cách thêm dấu phẩyTrong MySQL, bạn có thể trả về kết quả truy vấn của mình dưới dạng danh sách được phân tách bằng dấu phẩy bằng cách sử dụng hàm GROUP_CONCAT() . Hàm GROUP_CONCAT() được xây dựng riêng cho mục đích nối kết quả của một truy vấn thành một danh sách được phân tách bằng dấu phẩy hoặc dấu phân cách do bạn chọn.
Làm cách nào để CẬP NHẬT tất cả các giá trị cột trong MySQL?Để thiết lập tất cả các giá trị trong một truy vấn MySQL cột đơn, bạn có thể sử dụng lệnh UPDATE. Cú pháp như sau. update yourTableName set yourColumnName =yourValue; Để hiểu cú pháp trên, chúng ta hãy tạo một bảng.
Cách kiểm tra dấu phẩyĐể kiểm tra xem giá trị có tồn tại trong danh sách được phân tách bằng dấu phẩy hay không, bạn có thể sử dụng hàm FIND_IN_SET() . Bây giờ bạn có thể chèn một số bản ghi vào bảng bằng lệnh chèn. Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn.
Làm cách nào để CẬP NHẬT nhiều giá trị trong một cột trong 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. |