Làm cách nào để kiểm tra xem mysql có tồn tại không?

Hầu hết mọi người đều đã từng rơi vào trường hợp cần kiểm tra xem một bản ghi có tồn tại trong cơ sở dữ liệu MySQL hay không

Hãy xem qua cách thực hiện điều đó với lệnh phù hợp và dễ dàng nhất. Dưới đây, bạn có thể tìm thấy lệnh phù hợp và một lỗi phổ biến mà hầu hết mọi người mới bắt đầu đều có thể mắc phải khi cố gắng tìm ra vấn đề

Nếu bạn muốn kiểm tra xem một bản ghi đã tồn tại trong cơ sở dữ liệu của mình hay chưa, bạn hãy chạy đoạn mã sau

Sử dụng MySqli

Sử dụng mysql (không dùng nữa)

 0) {
    echo 'found!';
  } else {
    echo 'not found';
  }
} else {
  echo 'Error: ' . mysql_error();
}

?>

Bây giờ, hãy kiểm tra một lỗi phổ biến mà chúng tôi khuyên bạn nên khắc phục

MySQL được coi là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở. Nó nhằm mục đích tổ chức dữ liệu thành một hoặc nhiều bảng dữ liệu

Một số ứng dụng phổ biến như Twitter, Facebook YouTube, Google áp dụng MySQL cho mục đích lưu trữ dữ liệu. Ban đầu nó được tạo ra để sử dụng hạn chế. Tuy nhiên, giờ đây nó tương thích với nhiều nền tảng điện toán thiết yếu như macOS, Linux Ubuntu và Microsoft Windows

Cơ sở dữ liệu MySQL được sử dụng phổ biến trong nhiều trang web và ứng dụng trên thế giới. Thông thường, các nhà phát triển trực tiếp chạy các truy vấn SQL đối với cơ sở dữ liệu mà không cần kiểm tra xem nó có tồn tại hay không. Nếu cơ sở dữ liệu (hoặc bảng của nó) được đề cập trong truy vấn SQL của bạn không tồn tại thì máy chủ cơ sở dữ liệu sẽ đưa ra lỗi và sẽ không chạy các truy vấn tiếp theo. Vì vậy, luôn luôn là một cách tốt để kiểm tra xem cơ sở dữ liệu có tồn tại hay không trước khi thử truy cập nó lần đầu tiên trong ứng dụng hoặc trang web của bạn. Khi bạn chắc chắn rằng cơ sở dữ liệu tồn tại, bạn luôn có thể chạy một tập hợp các truy vấn SQL đối với nó, sau đó. Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra cơ sở dữ liệu MySQL có tồn tại hay không

Cách kiểm tra xem cơ sở dữ liệu MySQL có tồn tại không

Rất dễ kiểm tra xem cơ sở dữ liệu MySQL có tồn tại trên máy chủ của bạn không. Mỗi máy chủ MySQL có một cơ sở dữ liệu có tên INFORMATION_SCHEMA chứa dữ liệu về tất cả các cơ sở dữ liệu, bảng, cột trong máy chủ của bạn. Nó được tạo bởi MySQL tại thời điểm cài đặt và tự động cập nhật bất cứ khi nào bạn tạo, sửa đổi hoặc xóa bất kỳ cơ sở dữ liệu, bảng hoặc cột nào khỏi máy chủ của mình. Bạn có thể đăng nhập vào bảng điều khiển MySQL và chạy truy vấn SQL sau đối với cơ sở dữ liệu này để kiểm tra xem cơ sở dữ liệu của bạn có tồn tại hay không. Thay thế database_name bằng tên cơ sở dữ liệu cần kiểm tra

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'

Bạn cũng có thể chạy truy vấn trên từ trong tập lệnh của mình, chẳng hạn như tệp PHP

Nếu kết quả truy vấn trên trả về 0 bản ghi, điều đó có nghĩa là cơ sở dữ liệu không tồn tại, nếu không, nó sẽ trả về tên cơ sở dữ liệu của bạn cho biết rằng nó tồn tại

Nếu trang web hoặc ứng dụng của bạn phụ thuộc vào số lượng bản ghi được trả về trong truy vấn trên, bạn có thể sửa đổi nó như hình bên dưới

SELECT count(*)
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'

Nếu bạn muốn tạo cơ sở dữ liệu nếu nó không tồn tại và bạn có quyền tạo, thì bạn có thể chạy truy vấn sau để tạo cơ sở dữ liệu

mysql kiểm tra nếu cơ sở dữ liệu tồn tại. HIỂN THỊ CƠ SỞ DỮ LIỆU NHƯ ‘dbname’; . Nếu nó tồn tại, bạn nhận được một hàng

mysql kiểm tra nếu cơ sở dữ liệu tồn tại

nội dung

Lệnh schema_name dùng để kiểm tra cơ sở dữ liệu MySQL có tồn tại hay không. kiểm tra nó bằng cách thực hiện truy vấn sau. Kiểm tra xem cơ sở dữ liệu có tồn tại trên máy chủ hay không

Trong MySQL, quy trình được lưu trữ của

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
5 kiểm tra xem một bảng nhất định có tồn tại dưới dạng bảng thông thường, bảng
+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
6 hay dạng xem hay không. Quy trình trả về loại bảng trong tham số 
+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+

Thí dụ

CALL sys.table_exists('Music', 'Albums', @table_type); 
SELECT @table_type;

Kết quả

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+

Lưu ý rằng nếu tồn tại cả bảng tạm thời và bảng cố định với tên đã cho, thì 

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
6 được trả về

Bảng +-------------+ | @table_type | +-------------+ | BASE TABLE | +-------------+9

Một cách khác để kiểm tra xem một bảng có tồn tại hay không là truy vấn bảng

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
9

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
1

Kết quả

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
2

Trong trường hợp này, tôi đã trả về bảng cơ sở có tên là

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
11 từ cơ sở dữ liệu có tên là
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
12. Truy vấn điều này mà không lọc kết quả bằng
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
13 trả về các bảng cơ sở từ tất cả các cơ sở dữ liệu. Truy vấn nó mà không lọc bởi
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
14 trả về tất cả các loại bảng

Nếu chúng tôi không cần tất cả thông tin đó, chúng tôi có thể làm điều này

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
7

Kết quả

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
8

Hoặc chúng ta có thể nhận được số lượng

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
9

Kết quả

SELECT count(*)
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
0

Lệnh SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database_name'15

Lệnh

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
15 liệt kê các bảng, trình tự và chế độ xem không phải ____36 trong cơ sở dữ liệu MySQL nhất định. Chúng ta có thể sử dụng mệnh đề
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
18 để thu hẹp nó thành một loại nhất định

Chúng ta cũng có thể sử dụng công cụ sửa đổi

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
19 để trả về cột thứ hai hiển thị loại

SELECT count(*)
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
6

Kết quả

SELECT count(*)
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
7

Trong trường hợp này, tên cơ sở dữ liệu là

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
12, và vì vậy cột đầu tiên là
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
21

Lệnh SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database_name'22

Trong MySQL, lệnh

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
22 tương tự như lệnh
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
15 nhưng cung cấp nhiều thông tin hơn về mỗi bảng (không phải
+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
6)

Thí dụ

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
0

Kết quả

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
1

Khách hàng SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database_name'26

Một cách khác để kiểm tra các bảng trong cơ sở dữ liệu MySQL là sử dụng ứng dụng khách

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
26

Để sử dụng tiện ích này, hãy mở cửa sổ nhắc/thiết bị đầu cuối dòng lệnh và chạy lệnh sau

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
2

Đảm bảo thay thế

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
12 bằng cơ sở dữ liệu mà bạn quan tâm và
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
29 bằng người dùng hiện hành. Bit
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
70 dẫn đến việc người dùng được nhắc nhập mật khẩu

Kết quả

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+
3

Ứng dụng khách

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
26 trả về các khung nhìn và bảng

Đầu ra chỉ hiển thị tên của những cơ sở dữ liệu, bảng hoặc cột mà người dùng có một số đặc quyền

Nếu không có cơ sở dữ liệu nào được cung cấp thì tất cả các cơ sở dữ liệu phù hợp sẽ được hiển thị. Nếu không có bảng nào được đưa ra, thì tất cả các bảng phù hợp trong cơ sở dữ liệu sẽ được hiển thị. Nếu không có cột nào được cung cấp, thì tất cả các cột và loại cột phù hợp trong bảng sẽ được hiển thị

Kiểm tra xem một bảng đã tồn tại trước khi tạo nó

Nếu bạn cần tạo bảng nếu nó không tồn tại, bạn có thể sử dụng mệnh đề

SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
72 của câu lệnh
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'database_name'
73. Nếu bảng không tồn tại, nó sẽ được tạo. Nếu nó đã tồn tại, nó sẽ không được tạo ra

Làm cách nào để kiểm tra xem một giá trị có tồn tại trong cơ sở dữ liệu MySQL không?

Cơ sở dữ liệu MySQL MySQLi Sử dụng SELECT 1 cho điều này như trong cú pháp bên dưới − chọn 1 từ yourTableName trong đó yourColumnName=yourValue;

Làm cách nào để kiểm tra xem truy vấn con có tồn tại trong MySQL không?

Toán tử EXISTS của MySQL Toán tử EXISTS được sử dụng để kiểm tra sự tồn tại của bất kỳ bản ghi nào trong truy vấn con. Toán tử EXISTS trả về TRUE nếu truy vấn con trả về một hoặc nhiều bản ghi

Làm cách nào để tìm xem một hàng có tồn tại trong MySQL không?

MySQL EXITS được sử dụng để tìm hiểu xem một hàng cụ thể có tồn tại trong bảng hay không. MySQL Exists được sử dụng với truy vấn con và trả về các hàng bằng nhau hoặc khớp với kết quả do truy vấn con trả về. Câu lệnh trả về true nếu hàng tồn tại trong bảng khác false. Đúng được biểu thị bằng 1 và sai được biểu thị bằng 0

Sự khác biệt giữa MySQL tồn tại và MySQL thoát là gì?

MySQL EXITS được sử dụng để tìm hiểu xem một hàng cụ thể có tồn tại trong bảng hay không. MySQL Exists được sử dụng với truy vấn con và trả về các hàng bằng nhau hoặc khớp với kết quả do truy vấn con trả về