MySQL—Một số kiến ​​thức hữu ích. Tạp chí Linux

Trong một cuộc trò chuyện IRC gần đây, một người rất hữu ích đã hỗ trợ tôi về ứng dụng PHP gây rắc rối cho tôi đã yêu cầu tôi cung cấp cho anh ta giá trị của một trường cụ thể trong bản ghi trên máy chủ MySQL của tôi. Anh ấy rất ân cần và gửi cho tôi một công cụ đơn giản mà tôi có thể chạy trên dòng lệnh để lấy thông tin anh ấy cần, mặc dù tôi phải cài đặt một cái gì đó như PHPMyAdmin hoặc Adminer để tìm thông tin đó. Tôi nhận ra rằng có thể có những người khác trong tình huống tương tự nếu tôi không thể tìm ra cách lấy thông tin cơ bản từ máy chủ MySQL và tôi vô cùng biết ơn nhưng phải thừa nhận là rất xấu hổ. Vì vậy, chúng ta hãy cùng học một chút SQL

Nhận một cơ sở dữ liệu

Thật không may, tất cả chúng đều phức tạp hơn nhiều so với những gì tôi muốn sử dụng cho mục đích trình diễn. Hóa ra có khá nhiều cơ sở dữ liệu mẫu có sẵn để tải xuống từ Internet. Vì vậy, tôi đã tạo một cơ sở dữ liệu và mặc dù bạn không cần phải sử dụng nó để theo dõi, nhưng sẽ rất hữu ích nếu bạn làm như vậy. Vì vậy, trước tiên, hãy tạo cơ sở dữ liệu và nhập dữ liệu của tôi

Tùy thuộc vào bản phân phối của bạn, đây sẽ là lệnh


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
8, lệnh

wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
9 hoặc tìm kiếm trong trung tâm phần mềm GUI để cài đặt MySQL. Điều quan trọng nhất là nhớ mật khẩu root mà bạn đã đặt trong quá trình cài đặt. Tôi sẽ để việc cài đặt cho bạn; . Mật khẩu này không giống với mật khẩu gốc cho hệ thống của bạn;. Nếu bạn đang sử dụng máy chủ trực tiếp, chỉ cần tạo người dùng/mật khẩu mới có quyền truy cập để tạo cơ sở dữ liệu. Tôi cho rằng bạn đã cài đặt MySQL gần đây và đã quen thuộc với mật khẩu của người dùng root

Bạn sử dụng ứng dụng "mysql" để làm việc với MySQL trên dòng lệnh, vì vậy để tạo cơ sở dữ liệu cho ví dụ này, hãy gõ


mysql -u root -p -e "CREATE DATABASE food"

Nếu bạn gặp lỗi về cơ sở dữ liệu đã tồn tại, bạn có thể chọn tên mới cho cơ sở dữ liệu của mình. Bạn sẽ được nhắc nhập mật khẩu, đây là mật khẩu bạn đã đặt trong khi cài đặt cho tài khoản người dùng root MySQL. Chỉ cần lưu ý rằng bạn sẽ sử dụng tên bạn chọn để tham khảo cơ sở dữ liệu "thực phẩm" sau này

Sau đó, bạn phải kết hợp thông tin của tôi vào cơ sở dữ liệu của bạn; . co/foodsqlBạn có thể tải xuống tệp đó hoặc tải xuống bằng cách chạy


mysql -u root -pmypassword -e "CREATE DATABASE food"
0 trên dòng lệnh; . "sql", tùy thuộc vào cách phiên bản

mysql -u root -pmypassword -e "CREATE DATABASE food"
0 của bạn hoạt động. Cả hai tên tệp sẽ hoạt động, chỉ cần ghi lại những gì bạn có để bạn có thể thay đổi lệnh mà bạn sẽ sử dụng bên dướiType để nhập và tải xuống dữ liệu

_10

Hãy nhớ rằng bạn có thể chỉ cần thay đổi lệnh thành


mysql -u root -pmypassword -e "CREATE DATABASE food"
3 thay vì __134 nếu tệp đã tải xuống của bạn có tên là "foodsql" thay vì "food. sql". Cả hai sẽ làm việc

Bạn vừa làm gì vậy?

Lệnh đầu tiên tạo một cơ sở dữ liệu trên máy chủ MySQL của bạn có tên là "thực phẩm", bạn sẽ sử dụng cơ sở dữ liệu này để theo dõi bài viết này. Chương trình mysql có thể hoạt động tương tác hoặc dưới dạng một lớp lót như trên. Nhập


mysql -u root -pmypassword -e "CREATE DATABASE food"
6 yêu cầu mysql yêu cầu bạn nhập mật khẩu. Cờ

mysql -u root -pmypassword -e "CREATE DATABASE food"
5 cho phép bạn kết nối với tư cách là một người dùng cụ thể—trong trường hợp này là root. Bạn cũng có thể nhập mật khẩu theo cách sau trên dòng lệnh


mysql -u root -pmypassword -e "CREATE DATABASE food"

Tuy nhiên, tôi thấy khó chịu vì hai lý do. đầu tiên, mật khẩu được hiển thị rõ ràng trên màn hình, khiến tôi kinh hãi. Đó không phải là lỗi đánh máy, nhưng có lẽ bạn cũng nhận thấy rằng không có khoảng cách giữa mật khẩu và


mysql -u root -pmypassword -e "CREATE DATABASE food"
6;Tôi thường chỉ được yêu cầu nhập mật khẩu. Phần cuối cùng của lệnh yêu cầu mysql thực thi lệnh

mysql -u root -pmypassword -e "CREATE DATABASE food"
8 và

mysql -u root -pmypassword -e "CREATE DATABASE food"
9 không cần phải viết hoa toàn bộ, nhưng đó là thông lệ tiêu chuẩn trong thế giới SQL. Tôi sẽ đề cập đến việc sử dụng các lệnh tương tác một chút, nhưng ở đây, bạn đã yêu cầu nó tạo một cơ sở dữ liệu có tên là "thực phẩm" rồi thoát. Tất cả các từ phải được viết hoa nếu chúng là mệnh lệnh hoặc từ đặc biệt; . Mặc dù đó chỉ là một quy ước, nhưng tôi sẽ cố gắng tuân theo nó và bạn cũng nên làm như vậy vì nó giúp việc đọc các tài liệu liên quan đến SQL trở nên đơn giản hơn nhiều

Đoạn mã thứ hai thực hiện hai tác vụ. đầu tiên, nó tải xuống cơ sở dữ liệu mẫu của tôi bằng cách sử dụng


mysql -u root -pmypassword -e "CREATE DATABASE food"
0 và thứ hai, nó chèn dữ liệu SQL vào cơ sở dữ liệu "thực phẩm". Bạn có thể xem tệp đã tải xuống, đây chỉ là tệp văn bản và xem một số câu lệnh SQL (với các lệnh viết hoa). Các lệnh đó được đưa vào qua STDIN và được thực thi giống như lệnh

wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
61 mà bạn đã sử dụng để tạo cơ sở dữ liệu ban đầu. Kết quả cuối cùng là bạn có một cơ sở dữ liệu có tên là "thực phẩm" trên máy chủ MySQL cục bộ của mình và nó chứa các bảng và dữ liệu của tôi. Hãy kiểm tra dữ liệu ngay bây giờ

Kết nối với cơ sở dữ liệu

Nếu bạn đã theo dõi, bạn đã kết nối với MySQL và cơ sở dữ liệu, nhưng tất cả các lệnh của bạn đều là lệnh độc lập chạy một lần rồi thoát


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
6

Bạn sẽ thấy một lời nhắc giống như thế này, nó sẽ hỏi bạn mật khẩu và đăng nhập bạn vào chế độ tương tác của mysql với cơ sở dữ liệu "thực phẩm" đang mở để khám phá


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
8

Hãy xem các bảng cơ sở dữ liệu để xem bạn đã đăng nhập vào cơ sở dữ liệu "thực phẩm" chưa và quá trình nhập SQL đã thành công chưa. Nhập nội dung sau


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
9

Bạn nên xem thứ này


mysql -u root -p -e "CREATE DATABASE food"
0

Nếu bạn quên đặt dấu chấm phẩy ở cuối mỗi lệnh, nó sẽ chỉ chuyển sang dòng tiếp theo và yêu cầu bạn gõ thêm lệnh. Nếu bạn làm điều đó (tôi làm điều đó khoảng một nửa thời gian), chỉ cần nhập dấu chấm phẩy vào dòng sau và nó sẽ hoạt động như thể bạn không quên dấu chấm câu

Quay lại các bước đầu tiên vì có thể đã xảy ra sự cố nếu bạn không thấy các bảng rau quả trong cơ sở dữ liệu thực phẩm. Đọc kỹ bất kỳ thông báo lỗi nào

Bạn sẽ sử dụng một lệnh mới,


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
62, lệnh này ở chế độ tương tác chỉ hiển thị dữ liệu bạn đang "chọn" dựa trên bất kỳ tiêu chí nào bạn chỉ định, để kiểm tra dữ liệu trong mỗi bảng. Vì vậy, loại


mysql -u root -p -e "CREATE DATABASE food"
2

Dấu hoa thị là ký tự đại diện trong mysql, vì vậy lệnh


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
62 đang hiển thị mọi thứ "TỪ" bảng "trái cây". Sau đó, bạn sẽ thấy hiển thị trực quan giá trị dữ liệu của toàn bộ bảng


mysql -u root -p -e "CREATE DATABASE food"
4

Bạn sẽ thấy một bộ dữ liệu tương tự nếu bạn thử làm điều tương tự với cơ sở dữ liệu rau, nhưng với thông tin về rau chứ không phải thông tin về trái cây

Lọc sản phẩm

Chính thức, chỉ làm việc trên một tập hợp con của dữ liệu khi thao tác với cơ sở dữ liệu chứa đầy dữ liệu được gọi là "truy vấn", nhưng đừng để biệt ngữ cơ sở dữ liệu làm bạn thất vọng. Bạn sẽ chỉ sử dụng các lệnh gần như tiếng Anh để lọc kết quả để đáp ứng nhu cầu của bạn

Lấy ví dụ muốn xem danh sách chỉ các loại rau nhỏ


mysql -u root -p -e "CREATE DATABASE food"
5

bạn nên thấy


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
0

Bạn sẽ thấy rằng "bí ngô" không có trong danh sách vì nó có kích thước "lớn" thay vì "nhỏ"

Ngoài ra, bạn không cần phải hiển thị tất cả các trường;


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
1

bạn chỉ cần xem


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
2

Rõ ràng nó đòi hỏi một số hiểu biết về cách tổ chức cơ sở dữ liệu (để bạn biết thông tin "kích thước" ở đó), nhưng bạn có thể đặt bộ lọc dựa trên dữ liệu mà bạn không thực sự hiển thị, điều này có kết quả thú vị là hiển thị tên của mọi

Thay đổi dữ liệu

Chương trình mysql tương tác cũng cho phép bạn sửa đổi và thêm dữ liệu vào cơ sở dữ liệu; . Để thực hiện thay đổi, bạn sử dụng lệnh _


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
64. Vì vậy, nếu bạn muốn thay đổi ngô từ một loại rau nhỏ thành một loại rau lớn, bạn hãy gõ


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
3

Chạy lại lệnh trước đó sẽ dẫn đến ngô hiện lớn chứ không phải nhỏ


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
1

nên dẫn đến một cái gì đó tương tự


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
5

Tuy nhiên, bạn có thể làm nhiều việc hơn là chỉ cập nhật một giá trị hiện có. Nó khó hơn một chút, nhưng nó vẫn khá đơn giản. Giả sử bạn muốn thêm mật ong vào cơ sở dữ liệu của mình. Để thêm một hàng vào bảng, hãy nhập


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
6

Bạn sẽ thấy điều này nếu bạn lấy mọi thứ từ bàn trái cây sau đó


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
7 Chỉ là phần nổi của tảng băng trôi Chỉ là phần nổi của tảng băng trôi

Các lệnh cơ bản rất đáng để học, vì vậy nếu bạn ở trong tình huống như tôi, bạn có thể lấy một số dữ liệu MySQL mà không cần cài đặt công cụ GUI để thực hiện. Chương trình tương tác dòng lệnh mysql là một cách rất hiệu quả để truy cập, hiển thị và thậm chí thao tác dữ liệu mà không cần bất kỳ GUI nào. Tuy nhiên, các công cụ GUI rất tuyệt vời và có thể được sử dụng để tìm hiểu về nội dung dòng lệnh. Ví dụ, Hình 1 hiển thị Adminer (http//www. adminerTìm kiếm, lọc, sắp xếp và vô số chức năng SQL khác có sẵn thông qua menu thả xuống khi một cá nhân (e. g. , org) đang kiểm tra cơ sở dữ liệu. Adminer là một công cụ GUI tuyệt vời để tìm hiểu các tùy chọn dòng lệnh vì nó hiển thị truy vấn chính xác mà nó đã sử dụng để thu được kết quả, đây là một tính năng thực sự thú vị

MySQL—Một số kiến ​​thức hữu ích. Tạp chí Linux

Hình 1 minh họa sức mạnh của Adminer và cách nó hướng dẫn bạn cách sử dụng nó

May mắn thay, các khái niệm đều giống nhau cho dù bạn đang tìm kiếm trong hàng nghìn giao dịch tài chính hay một vài mặt hàng nông sản vì cơ sở dữ liệu nhỏ ngớ ngẩn về trái cây và rau quả này rõ ràng là đơn giản hơn nhiều so với các loại cơ sở dữ liệu mà bạn sẽ khắc phục sự cố cho các ứng dụng Web. Cũng cần nhận ra rằng chỉ các bản ghi _______062 trong cơ sở dữ liệu trực tiếp sẽ không làm thay đổi bất kỳ dữ liệu nào, vì vậy bạn không phải lo lắng về việc làm hỏng mọi thứ chỉ bằng cách tìm kiếm. Trên thực tế, bạn nên thử xây dựng các truy vấn phức tạp trên cơ sở dữ liệu hiện có chỉ để xem liệu bạn có thể thực hiện chính xác hay không.

MySQL—Một số kiến ​​thức hữu ích. Tạp chí Linux

Kể từ khi Linux bắt đầu, Shawn đã là Cộng tác viên Biên tập tại Tạp chí Linux. Anh ấy đam mê mã nguồn mở và thích giảng dạy. Anh ấy cũng uống quá nhiều cà phê, điều này thường thể hiện trong bài viết của anh ấy

Gần đây tôi đã nói chuyện với ai đó qua IRC, người đã giúp tôi với một ứng dụng PHP gây rắc rối cho tôi. Cá nhân cực kỳ hữu ích đã yêu cầu tôi cho anh ta biết giá trị của một trường nhất định trong bản ghi trên máy chủ MySQL của tôi. Tôi ngượng ngùng thừa nhận rằng tôi phải cài đặt một cái gì đó như PHPMyAdmin hoặc Adminer để tìm thông tin đó. Anh ấy rất ân cần và gửi cho tôi một lớp lót đơn giản mà tôi có thể chạy trên dòng lệnh để lấy thông tin anh ấy cần. Tôi rất biết ơn, nhưng phải thừa nhận là xấu hổ. Tôi hình dung nếu tôi không biết cách lấy thông tin đơn giản từ máy chủ MySQL, thì có thể có những người khác cùng cảnh ngộ. Vì vậy, chúng ta hãy cùng nhau tìm hiểu một chút về SQL

Nhận một cơ sở dữ liệu

Hóa ra có khá nhiều cơ sở dữ liệu mẫu để tải xuống từ Internet. Thật không may, tất cả chúng đều phức tạp hơn nhiều so với những gì tôi muốn sử dụng cho mục đích trình diễn. Vì vậy, tôi đã tạo một cơ sở dữ liệu. Mặc dù bạn không cần phải có cơ sở dữ liệu của tôi để theo dõi, nhưng nó chắc chắn sẽ hữu ích nếu bạn làm. Vì vậy, trước tiên, hãy tạo cơ sở dữ liệu và nhập dữ liệu của tôi

Điều đầu tiên bạn cần làm là cài đặt MySQL. Tùy thuộc vào bản phân phối của bạn, đây sẽ là lệnh


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
8, lệnh

wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
9 hoặc tìm kiếm trong trung tâm phần mềm GUI. Tôi sẽ để việc cài đặt cho bạn—hãy thoải mái sử dụng Google nếu bạn gặp khó khăn. Điều chính là nhớ mật khẩu gốc mà bạn đã đặt trong quá trình cài đặt. Mật khẩu này không giống với mật khẩu gốc cho hệ thống của bạn; . Nếu bạn đang sử dụng máy chủ trực tiếp, chỉ cần tạo người dùng/mật khẩu mới có quyền truy cập để tạo cơ sở dữ liệu. Tôi sẽ cho rằng bạn vừa cài đặt MySQL và bạn biết mật khẩu của người dùng root

Khi bạn làm việc với MySQL trên dòng lệnh, bạn sử dụng ứng dụng "mysql". Vì vậy, để tạo cơ sở dữ liệu cho ví dụ này, hãy nhập


mysql -u root -p -e "CREATE DATABASE food"

Bạn sẽ được nhắc nhập mật khẩu, đây là mật khẩu bạn đã đặt trong khi cài đặt cho tài khoản người dùng root MySQL. Nếu bạn gặp lỗi về cơ sở dữ liệu đã tồn tại, bạn có thể chọn tên mới cho cơ sở dữ liệu của mình. Chỉ cần nhận ra rằng tên bạn chọn sẽ là tên bạn sẽ sử dụng sau này khi tôi đề cập đến cơ sở dữ liệu "thực phẩm"

Tiếp theo, bạn cần lấy dữ liệu của tôi vào cơ sở dữ liệu của bạn. Tôi có một tệp SQL được lưu trữ tại http. //snar. co/foodsql. Bạn có thể tải xuống tệp đó hoặc sử dụng


mysql -u root -pmypassword -e "CREATE DATABASE food"
0 trên dòng lệnh để lấy tệp đó. Nếu bạn sử dụng

mysql -u root -pmypassword -e "CREATE DATABASE food"
0, tên tệp kết quả có thể là "foodsql" hoặc "food. sql", tùy thuộc vào cách phiên bản

mysql -u root -pmypassword -e "CREATE DATABASE food"
0 của bạn hoạt động. Tên tệp sẽ hoạt động, chỉ cần ghi lại những gì bạn có để bạn có thể thay đổi lệnh bạn sẽ sử dụng bên dưới. Để tải xuống và nhập dữ liệu, hãy nhập


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql

Hãy nhớ rằng, nếu tệp tải xuống của bạn là "foodsql" thay vì "food. sql", bạn chỉ có thể thay đổi lệnh thành


mysql -u root -pmypassword -e "CREATE DATABASE food"
3 thay vì

mysql -u root -pmypassword -e "CREATE DATABASE food"
4. Cả hai sẽ làm việc

Bạn vừa làm gì vậy?

Chương trình mysql có thể hoạt động tương tác hoặc dưới dạng một lớp lót như trên. Lệnh đầu tiên đã tạo một cơ sở dữ liệu trên máy chủ MySQL của bạn có tên là "thực phẩm", bạn sẽ sử dụng cơ sở dữ liệu này để theo dõi bài viết này. Cờ


mysql -u root -pmypassword -e "CREATE DATABASE food"
5 cho phép bạn kết nối với tư cách là người dùng cụ thể—trong trường hợp này là root. Nhập

mysql -u root -pmypassword -e "CREATE DATABASE food"
6 yêu cầu mysql yêu cầu bạn nhập mật khẩu. Bạn cũng có thể gõ mật khẩu trên dòng lệnh như thế này


mysql -u root -pmypassword -e "CREATE DATABASE food"

Tuy nhiên, điều đó làm phiền tôi vì hai lý do. Một, mật khẩu được hiển thị rõ ràng trên màn hình, điều này làm tôi phát sợ. Ngoài ra, bạn có thể nhận thấy không có khoảng cách giữa


mysql -u root -pmypassword -e "CREATE DATABASE food"
6 và mật khẩu thực tế. Đó không phải là một lỗi đánh máy; . Tôi thường chỉ cần nó nhắc tôi nhập mật khẩu. Phần cuối cùng của lệnh yêu cầu mysql thực thi lệnh. Tôi sẽ đề cập đến việc sử dụng các lệnh tương tác một chút, nhưng ở đây, bạn đã yêu cầu nó tạo một cơ sở dữ liệu có tên là "thực phẩm", rồi thoát.

mysql -u root -pmypassword -e "CREATE DATABASE food"
8 và

mysql -u root -pmypassword -e "CREATE DATABASE food"
9 không nhất thiết phải viết hoa toàn bộ, nhưng đó là thông lệ tiêu chuẩn trong thế giới SQL. Nếu từ đó là một lệnh hoặc một từ đặc biệt, thì tất cả đều là chữ hoa. Nếu đó là một phần dữ liệu hoặc tên, thì đó là chữ thường. Một lần nữa, nó chỉ là một quy ước, nhưng tôi sẽ cố gắng tuân theo nó. Bạn cũng nên làm như vậy, vì nó giúp việc đọc nội dung SQL dễ dàng hơn nhiều

Đoạn mã thứ hai đã làm hai việc. Nó đã tải xuống cơ sở dữ liệu mẫu của tôi bằng cách sử dụng


mysql -u root -pmypassword -e "CREATE DATABASE food"
0, rồi kết xuất dữ liệu SQL đó vào cơ sở dữ liệu "thực phẩm". Tệp đã tải xuống chỉ là một tệp văn bản. Bạn có thể nhìn vào nó và bạn sẽ thấy một loạt các câu lệnh SQL (với các lệnh viết hoa). Các lệnh đó được đưa vào qua STDIN và được thực thi giống như lệnh

mysql -u root -pmypassword -e "CREATE DATABASE food"
91 mà bạn đã sử dụng để tạo cơ sở dữ liệu ban đầu. Kết quả cuối cùng là bạn có một cơ sở dữ liệu tên là "thực phẩm" trên máy chủ MySQL cục bộ của mình và nó chứa các bảng và dữ liệu của tôi. Hãy đi kiểm tra dữ liệu

Kết nối với cơ sở dữ liệu

Nếu bạn đã theo dõi, thì bạn thực sự đã kết nối với MySQL và cơ sở dữ liệu rồi, nhưng bạn đã tạo các lệnh đơn lẻ thực thi và kết thúc. Để vào chế độ tương tác, bạn chỉ cần gõ


mysql -u root -pmypassword -e "CREATE DATABASE food"
9

Thao tác này sẽ nhắc bạn nhập mật khẩu và sau đó bạn đăng nhập vào chế độ tương tác của mysql, với cơ sở dữ liệu "thực phẩm" mở để bạn khám phá. Bạn sẽ nhận được lời nhắc giống như thế này


mysql -u root -pmypassword -e "CREATE DATABASE food"
1

Để kiểm tra xem bạn đã đăng nhập vào cơ sở dữ liệu "thực phẩm" chưa và quá trình nhập SQL có hoạt động hay không, hãy xem các bảng trong cơ sở dữ liệu. Nhập nội dung sau


mysql -u root -pmypassword -e "CREATE DATABASE food"
2

Bạn nên xem thứ này


mysql -u root -pmypassword -e "CREATE DATABASE food"
3

Lưu ý rằng mọi lệnh bạn nhập phải kết thúc bằng dấu chấm phẩy. Nếu bạn quên dấu chấm phẩy, nó sẽ chuyển sang dòng tiếp theo và yêu cầu bạn gõ thêm lệnh. Nếu bạn làm điều đó (tôi làm điều đó khoảng một nửa thời gian), chỉ cần gõ một dấu chấm phẩy một mình trên dòng tiếp theo và nó sẽ thực thi giống như thể bạn không quên dấu chấm phẩy

Bạn sẽ thấy các bảng trái cây và rau trong cơ sở dữ liệu thực phẩm. Nếu không, hãy quay lại các bước đầu tiên, vì chắc chắn đã xảy ra sự cố. Đọc kỹ bất kỳ thông báo lỗi nào

Điều tiếp theo bạn sẽ làm là xem dữ liệu trong mỗi bảng. Để làm điều đó, bạn sẽ sử dụng một lệnh mới,


mysql -u root -pmypassword -e "CREATE DATABASE food"
92, ở chế độ tương tác chỉ hiển thị dữ liệu bạn đang "chọn" dựa trên bất kỳ tiêu chí nào bạn chỉ định. Vì vậy, loại


mysql -u root -pmypassword -e "CREATE DATABASE food"
5

Trong mysql, dấu hoa thị là một thẻ đại diện. Vì vậy, lệnh


mysql -u root -pmypassword -e "CREATE DATABASE food"
92 đang hiển thị mọi thứ "TỪ" bảng "trái cây". Sau đó, bạn sẽ thấy hiển thị trực quan giá trị dữ liệu của toàn bộ bảng


mysql -u root -pmypassword -e "CREATE DATABASE food"
7

Hãy thử làm điều tương tự với cơ sở dữ liệu thực vật. Bạn sẽ thấy một bộ dữ liệu tương tự, nhưng với thông tin về rau củ thay vì trái cây

Lọc sản phẩm

Thông thường, khi bạn đang thao tác với một cơ sở dữ liệu chứa đầy dữ liệu, bạn chỉ muốn thao tác trên một tập hợp con dữ liệu. Chính thức đó được gọi là "truy vấn", nhưng đừng để biệt ngữ cơ sở dữ liệu làm bạn sợ. Bạn sẽ chỉ sử dụng các lệnh gần như tiếng Anh để lọc kết quả để đáp ứng nhu cầu của bạn

Giả sử bạn muốn xem danh sách chỉ các loại rau nhỏ. nếu bạn gõ


mysql -u root -pmypassword -e "CREATE DATABASE food"
8

bạn nên thấy


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
0

Bạn sẽ nhận thấy "bí ngô" không được liệt kê vì kích thước của nó là "lớn" thay vì "nhỏ"

Bạn cũng có thể chỉ hiển thị tên của loại rau phù hợp với truy vấn của mình thay vì hiển thị tất cả các trường. Vì vậy, nếu bạn gõ


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
1

bạn chỉ cần xem


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
2

Điều này có kết quả thú vị là hiển thị tên của tất cả các loại rau lớn mà không thực sự hiển thị dữ liệu kích thước. Rõ ràng nó yêu cầu bạn biết một chút về cách cơ sở dữ liệu được cấu trúc (để bạn biết thông tin "kích thước" ở đó), nhưng bạn có thể đặt bộ lọc dựa trên dữ liệu mà bạn không thực sự hiển thị

Thay đổi dữ liệu

Cho đến thời điểm này, bạn chỉ xem xét dữ liệu hiện có. Chương trình mysql tương tác cũng cho phép bạn sửa đổi và thêm dữ liệu trong cơ sở dữ liệu. Để thực hiện thay đổi, bạn sử dụng lệnh


mysql -u root -pmypassword -e "CREATE DATABASE food"
94. Vì vậy, nếu bạn muốn thay đổi ngô từ một loại rau nhỏ thành một loại rau lớn, bạn hãy gõ


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
3

Cuối cùng, bạn sẽ nhận được ngô lớn thay vì nhỏ, và do đó, hãy chạy lệnh giống như bạn đã chạy trước đó


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
1

nên dẫn đến một cái gì đó như thế này


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
5

Tuy nhiên, bạn có thể làm nhiều việc hơn là sửa đổi dữ liệu hiện có; . Nó phức tạp hơn một chút so với việc cập nhật một giá trị hiện có, nhưng nó vẫn khá rõ ràng. Giả sử bạn muốn thêm mật ong vào cơ sở dữ liệu của mình. Để thêm một hàng vào bảng, hãy nhập


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
6

Và sau đó nếu bạn


mysql -u root -pmypassword -e "CREATE DATABASE food"
92 mọi thứ từ bàn trái cây, bạn sẽ thấy điều này


wget http://snar.co/foodsql
mysql -u root -p food < ./food.sql
7 Chỉ là phần nổi của tảng băng chìm.

Chương trình tương tác dòng lệnh mysql là một cách rất hiệu quả để truy cập, hiển thị và thậm chí thao tác dữ liệu mà không cần bất kỳ GUI nào. Các lệnh cơ bản rất đáng để học, vì vậy nếu bạn ở trong tình huống như tôi, bạn có thể lấy một số dữ liệu MySQL mà không cần cài đặt công cụ GUI để thực hiện. Điều đó nói rằng, các công cụ GUI rất tuyệt và chúng có thể được sử dụng như một cách để tìm hiểu nội dung dòng lệnh. Ví dụ, Hình 1 cho thấy Adminer (http. //www. quản trị viên. org) xem cơ sở dữ liệu. Có thể dễ dàng truy cập tìm kiếm, lọc, sắp xếp và vô số chức năng SQL khác thông qua menu thả xuống. Phần thực sự thú vị là Adminer hiển thị cho bạn truy vấn chính xác mà nó đã sử dụng để nhận kết quả. Vì vậy, nếu bạn muốn sử dụng công cụ GUI để tìm hiểu các tùy chọn dòng lệnh, thì Adminer là một cách tuyệt vời để làm điều đó

MySQL—Một số kiến ​​thức hữu ích. Tạp chí Linux

Hình 1. Adminer là một công cụ vô cùng mạnh mẽ, ngoài ra nó còn dạy cho bạn biết nó đang làm gì

Cơ sở dữ liệu nhỏ về trái cây và rau quả ngớ ngẩn này rõ ràng là đơn giản hơn nhiều so với các loại cơ sở dữ liệu mà bạn sẽ khắc phục sự cố cho các ứng dụng Web. Rất may, các khái niệm hoàn toàn giống nhau cho dù bạn đang tìm kiếm trong hàng nghìn giao dịch tài chính hay một số mặt hàng nông sản. Cũng cần nhận ra rằng chỉ các bản ghi _______492 trong cơ sở dữ liệu trực tiếp sẽ không làm thay đổi bất kỳ dữ liệu nào, vì vậy bạn không phải lo lắng về việc làm hỏng mọi thứ chỉ bằng cách tìm kiếm. Trên thực tế, bạn nên thử xây dựng các truy vấn phức tạp trên cơ sở dữ liệu hiện có chỉ để xem liệu bạn có thể thực hiện đúng hay không. Nếu bạn gặp khó khăn, chỉ cần kích hoạt Adminer và xem bạn đã làm gì sai. Chúc may mắn và cơ sở dữ liệu hạnh phúc

MySQL—Một số kiến ​​thức hữu ích. Tạp chí Linux

Shawn là Phó tổng biên tập tại Tạp chí Linux và đã làm quen với Linux ngay từ những ngày đầu. Anh ấy có niềm đam mê với nguồn mở và anh ấy thích dạy. Anh ấy cũng uống quá nhiều cà phê, điều này thường thể hiện trong bài viết của anh ấy

Một số lệnh MySQL phổ biến là gì?

Một số lệnh SQL quan trọng nhất .
CHỌN - trích xuất dữ liệu từ cơ sở dữ liệu
CẬP NHẬT - cập nhật dữ liệu trong cơ sở dữ liệu
XÓA - xóa dữ liệu khỏi cơ sở dữ liệu
INSERT INTO - chèn dữ liệu mới vào cơ sở dữ liệu
CREATE DATABASE - tạo cơ sở dữ liệu mới
ALTER DATABASE - sửa đổi cơ sở dữ liệu
TẠO BẢNG - tạo một bảng mới

Làm cách nào tôi có thể xem cơ sở dữ liệu MySQL trong Linux?

Mở Dấu nhắc Lệnh và điều hướng đến thư mục bin của thư mục cài đặt Máy chủ MySQL của bạn. Sau đó kết nối với máy chủ bằng lệnh mysql -u root -p. Nhập mật khẩu và thực hiện SHOW DATABASES;

Làm cách nào để sử dụng MySQL trong Linux?

Thiết lập cơ sở dữ liệu MySQL trên Linux .
Cài đặt máy chủ MySQL. .
Định cấu hình máy chủ cơ sở dữ liệu để sử dụng với Media Server. .
Thêm đường dẫn thư mục bin MySQL vào biến môi trường PATH bằng cách chạy lệnh. xuất PATH=$PATH. binDirectoryPath. .
Bắt đầu công cụ dòng lệnh mysql

Công cụ nào tốt nhất cho MySQL?

dbForge Studio dành cho MySQL .