Một trong những điều đầu tiên bạn muốn biết khi đăng nhập vào máy chủ MySQL mới là cơ sở dữ liệu nào có sẵn. Bạn có thể muốn có danh sách cơ sở dữ liệu khi thực hiện bảo trì. Hoặc, bạn có thể chỉ tò mò hoặc cố gắng tìm một cơ sở dữ liệu cũ mà bạn đã quên tên từ lâu
Một dòng lệnh trống có thể đáng sợ. Mỗi một trong những trường hợp này yêu cầu một lệnh đơn giản và MySQL cung cấp nó ở dạng SHOW DATABASES. Lệnh này có cách sử dụng rất đơn giản, nhưng bạn sẽ sớm thấy nó có ích nếu bạn làm việc với MySQL
Trong bài viết này, bạn sẽ tìm hiểu mọi thứ bạn cần biết về liệt kê cơ sở dữ liệu MySQL
Cách sử dụng lệnh SHOW DATABASES
Khi bạn đã đăng nhập vào máy chủ MySQL của mình, hãy nhập văn bản HIỂN THỊ CƠ SỞ DỮ LIỆU;
MySQL trả về kết quả trong một bảng có một cột. cơ sở dữ liệu. Cột này chứa tên của từng cơ sở dữ liệu và sắp xếp chúng theo thứ tự bảng chữ cái. Dòng tóm tắt cho bạn biết có bao nhiêu hàng—i. e. cơ sở dữ liệu—có
Theo mặc định, bạn phải luôn thấy ít nhất bốn cơ sở dữ liệu danh sách MySQL. Đây là những cơ sở dữ liệu hệ thống đặc biệt mà MySQL tự cài đặt
- mysql
- thông tin_lược đồ
- hiệu suất_schema
- hệ thống
Bạn sẽ thấy một trong số chúng—thông tin_lược đồ—được sử dụng cho mục đích gì sau này
Lọc kết quả của SHOW DATABASES
Bạn có thể sử dụng cùng điều kiện LIKE mà bạn sử dụng trong mệnh đề WHERE của câu lệnh SELECT. LIKE lấy một đối số duy nhất, một mẫu để khớp trên. Mẫu có thể bao gồm hai ký tự đặc biệt. % [phần trăm] và _ [gạch dưới]. Chúng khớp với bất kỳ chuỗi nào và bất kỳ ký tự đơn nào tương ứng
Ví dụ: để liệt kê tất cả các cơ sở dữ liệu có chữ a trong tên của chúng
SHOW DATABASES LIKE '%a%';
Cách sử dụng các điều kiện phức tạp hơn
Nếu bạn cần sử dụng một điều kiện phức tạp hơn so với khớp mẫu cơ bản của LIKE, bạn vẫn có thể sử dụng mệnh đề WHERE quen thuộc. Thủ thuật bạn cần áp dụng là tham khảo cột đại diện cho tên cơ sở dữ liệu. Như bạn có thể thấy từ đầu ra ở trên, nó chỉ đơn giản là Cơ sở dữ liệu. Bây giờ, vì MySQL coi đây là một từ khóa dành riêng, nên bạn sẽ cần phải thoát khỏi nó bằng backticks
SHOW DATABASES WHERE LENGTH[`Database`] > 6;
Kết quả bây giờ chỉ chứa các bảng có tên dài hơn sáu ký tự
Có liên quan. Hướng dẫn viết lược đồ cơ sở dữ liệu MySQL cho người mới bắt đầu
Lọc cơ sở dữ liệu theo siêu dữ liệu khác
MySQL hỗ trợ một số trường liên quan đến cơ sở dữ liệu khác, nhưng chúng không có sẵn qua SHOW_DATABASES. Đối với những điều này, bạn sẽ cần sử dụng bảng lược đồ từ cơ sở dữ liệu information_schema. Đây là cấu trúc của bảng hệ thống đặc biệt này trông như thế nào
Ngoài SCHEMA_NAME, cột này hoàn toàn giống với cột Cơ sở dữ liệu từ SHOW DATABASES, chỉ có hai trường hữu ích. DEFAULT_CHARACTER_SET_NAME và DEFAULT_COLLATION_NAME. Các trường khác luôn có cùng giá trị, do đó, vô nghĩa khi lọc
Các trường DEFAULT_CHARACTER_SET_NAME và DEFAULT_COLLATION_NAME xác định các ký tự mà cơ sở dữ liệu hỗ trợ và cách sắp xếp chúng. Có thể bạn chưa nghĩ đến chúng trước đây, nhưng chúng rất quan trọng nếu bạn đang xử lý văn bản không phải ASCII
Biết sự khác biệt giữa ASCII và Unicode là rất quan trọng. Nếu bạn đã cài đặt một số cơ sở dữ liệu từ các nguồn khác nhau, thì nhiều khả năng bạn có nhiều giá trị
Sử dụng lại ví dụ trước, bạn có thể lọc các cột từ bảng này giống như bất kỳ bảng nào khác
SELECT schema_name FROM information_schema.schemata WHERE DEFAULT_CHARACTER_SET_NAME='utf8';
Bạn có thể thực hiện bất kỳ thao tác bảng nào khác trên bảng lược đồ, chẳng hạn như nhóm
SELECT DEFAULT_CHARACTER_SET_NAME, COUNT[*] FROM information_schema.schemata GROUP BY DEFAULT_CHARACTER_SET_NAME;
Có liên quan. Mọi thứ bạn cần biết về câu lệnh SQL GROUP BY
Sử dụng một lệnh đơn giản trong MySQL để liệt kê cơ sở dữ liệu
Lệnh này có lẽ là lệnh đơn giản nhất mà MySQL cung cấp. Nhưng điều đó không ngăn được nó rất hữu ích. Nếu bạn từng thấy mình nhìn chằm chằm vào một dòng lệnh MySQL, hãy nhớ vẽ một khoảng trống, SHOW DATABASES là một cách tốt để bắt đầu lại từ đầu
Khi bạn đã có cơ sở dữ liệu tại chỗ và bạn biết mình đang làm việc với cơ sở dữ liệu nào, đã đến lúc tìm hiểu thêm về lược đồ và cách tốt nhất để tổ chức dữ liệu của bạn