❮ Trước Sau ❯
Tạo cơ sở dữ liệu SQL web của riêng bạn
Với tiện ích nhỏ bên dưới, bạn có thể sử dụng APPML để tạo cơ sở dữ liệu SQL web của riêng bạn.
Viết SQL của riêng bạn hoặc sử dụng các nút để nhập SQL hiện có.
WebSQL chỉ hoạt động trong Chrome và Safari.
❮ Trước Sau ❯
API cơ sở dữ liệu SQL Web không thực sự không phải là một phần của thông số kỹ thuật HTML5 nhưng đây là một đặc điểm kỹ thuật riêng biệt giới thiệu một tập hợp API để thao túng cơ sở dữ liệu phía máy khách bằng SQL.
Tôi cho rằng bạn là một nhà phát triển web tuyệt vời và nếu đó là trường hợp thì không còn nghi ngờ gì nữa, bạn sẽ nhận thức rõ về các khái niệm SQL và RDBMS. Nếu bạn vẫn muốn có một phiên với SQL sau đó, bạn có thể xem qua hướng dẫn SQL của chúng tôi.
Cơ sở dữ liệu web SQL sẽ hoạt động trong phiên bản mới nhất của Safari, Chrome và Opera.
Các phương pháp cốt lõi
Có ba phương pháp cốt lõi được xác định trong thông số kỹ thuật rằng tôi sẽ trình bày trong hướng dẫn này -
OpenDatabase - Phương thức này tạo đối tượng cơ sở dữ liệu bằng cách sử dụng cơ sở dữ liệu hiện có hoặc tạo một đối tượng mới. − This method creates the database object either using existing database or creating new one.
Giao dịch - Phương pháp này cho chúng ta khả năng kiểm soát giao dịch và thực hiện cam kết hoặc rollback dựa trên tình huống. − This method gives us the ability to control a transaction and performing either commit or rollback based on the situation.
ExecutesQL - Phương pháp này được sử dụng để thực thi truy vấn SQL thực tế. − This method is used to execute actual SQL query.
Mở cơ sở dữ liệu
Phương thức OpenDatabase sẽ quan tâm đến việc mở cơ sở dữ liệu nếu nó đã tồn tại, phương pháp này sẽ tạo nó nếu nó đã không tồn tại.
Để tạo và mở cơ sở dữ liệu, hãy sử dụng mã sau -
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024];
Phương pháp trên đã lấy năm tham số sau -
- Tên cơ sở dữ liệu
- Số phiên bản
- Mô tả văn bản
- Kích thước của cơ sở dữ liệu
- Gọi lại sáng tạo
Đối số cuối cùng và thứ 5, cuộc gọi lại tạo sẽ được gọi nếu cơ sở dữ liệu được tạo. Tuy nhiên, nếu không có tính năng này, cơ sở dữ liệu vẫn đang được tạo ra và được phiên bản chính xác.
Thực hiện truy vấn
Để thực hiện một truy vấn, bạn sử dụng hàm cơ sở dữ liệu.transaction []. Chức năng này cần một đối số duy nhất, là một chức năng chăm sóc thực sự thực hiện truy vấn như sau -
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024]; db.transaction[function [tx] { tx.executeSql['CREATE TABLE IF NOT EXISTS LOGS [id unique, log]']; }];
Truy vấn trên sẽ tạo một bảng gọi là nhật ký trong cơ sở dữ liệu 'MyDB'.
Chèn hoạt động
Để tạo các mục nhập vào bảng, chúng tôi thêm truy vấn SQL đơn giản trong ví dụ trên như sau -
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024]; db.transaction[function [tx] { tx.executeSql['CREATE TABLE IF NOT EXISTS LOGS [id unique, log]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [1, "foobar"]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [2, "logmsg"]']; }];
Chúng ta có thể vượt qua các giá trị động trong khi tạo nhập như sau -
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024]; db.transaction[function [tx] { tx.executeSql['CREATE TABLE IF NOT EXISTS LOGS [id unique, log]']; tx.executeSql['INSERT INTO LOGS [id,log] VALUES [?, ?'], [e_id, e_log]; }];
Ở đây E_ID và E_LOG là các biến bên ngoài và ExecutesQL ánh xạ từng mục trong đối số mảng thành "?" S.e_id and e_log are external variables, and executeSql maps each item in the array argument to the "?"s.
Đọc hoạt động
Để đọc các bản ghi hiện có, chúng tôi sử dụng một cuộc gọi lại để ghi lại kết quả như sau -
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024]; db.transaction[function [tx] { tx.executeSql['CREATE TABLE IF NOT EXISTS LOGS [id unique, log]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [1, "foobar"]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [2, "logmsg"]']; }]; db.transaction[function [tx] { tx.executeSql['SELECT * FROM LOGS', [], function [tx, results] { var len = results.rows.length, i; msg = "Found rows: " + len + "
"; document.querySelector['#status'].innerHTML += msg; for [i = 0; i < len; i++] { alert[results.rows.item[i].log ]; } }, null]; }];
Ví dụ cuối cùng
Vì vậy, cuối cùng, chúng ta hãy giữ ví dụ này trong một tài liệu HTML5 chính thức như sau và cố gắng chạy nó với trình duyệt Safari.
var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024]; var msg; db.transaction[function [tx] { tx.executeSql['CREATE TABLE IF NOT EXISTS LOGS [id unique, log]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [1, "foobar"]']; tx.executeSql['INSERT INTO LOGS [id, log] VALUES [2, "logmsg"]']; msg = 'Log message created and row inserted.
'; document.querySelector['#status'].innerHTML = msg; }] db.transaction[function [tx] { tx.executeSql['SELECT * FROM LOGS', [], function [tx, results] { var len = results.rows.length, i; msg = "Found rows: " + len + "
"; document.querySelector['#status'].innerHTML += msg; for [i = 0; i < len; i++] { msg = "" + results.rows.item[i].log + "
"; document.querySelector['#status'].innerHTML += msg; } }, null]; }];Status Message
Điều này sẽ tạo ra kết quả sau -