Cách sử dụng sql trong html

API Cơ sở dữ liệu Web SQL thực sự không phải là một phần của đặc tả HTML5 nhưng nó là một đặc tả riêng giới thiệu một bộ API để thao tác 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 đúng như vậy thì không còn nghi ngờ gì nữa, bạn sẽ biết rõ về các khái niệm SQL và RDBMS. Nếu bạn vẫn muốn có một phiên làm việc với SQL thì 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 Safari, Chrome và Opera mới nhất

Các phương pháp cốt lõi

Có ba phương thức cốt lõi sau được xác định trong thông số kỹ thuật mà 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 cơ sở dữ liệu mới

  • giao dịch - Phương thức này cung cấp cho chúng tôi khả năng kiểm soát giao dịch và thực hiện cam kết hoặc khôi phục dựa trên tình huống

  • execSql - Phương thức này được sử dụng để thực thi truy vấn SQL thực tế

Mở cơ sở dữ liệu

Phương thức openDatabase đảm nhận việc mở cơ sở dữ liệu nếu nó đã tồn tại, phương thức này sẽ tạo nó nếu nó chưa tồn tại

Để tạo và mở cơ sở dữ liệu, hãy sử dụng đoạn mã sau -

var db = openDatabase['mydb', '1.0', 'Test DB', 2 * 1024 * 1024];

Phương thức 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 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 đang đượ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 một cách nhanh chóng 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 cơ sở dữ liệu. chức năng giao dịch []. Hàm này cần một đối số duy nhất, là hàm đảm nhiệm việc thực thi 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 có tên LOGS trong cơ sở dữ liệu 'mydb'

thao tác CHÈN

Để tạo các mục nhập vào bảng, chúng ta thêm truy vấn SQL đơn giản vào 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ể truyền 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à execSql ánh xạ từng mục trong đối số mảng thành dấu "?"

Thao tác ĐỌC

Để đọc các bản ghi đã tồn tại, chúng tôi sử dụng một cuộc gọi lại để nắm bắt các 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à thử chạy nó với trình duyệt Safari

Bạn có thể tạo HTML từ SQL vì SQL Server có hỗ trợ tích hợp để xuất XML và HTML được hiểu tốt nhất là một phương ngữ hơi kỳ lạ của XML truyền đạt ý nghĩa cho các thẻ được xác định trước. Có rất nhiều trường hợp cạnh trong đó cấu trúc HTML là cách rõ ràng nhất để giao tiếp các bảng, danh sách và thư mục. Khi dữ liệu được phân cấp, nó có thể có ý nghĩa hơn nữa. William Brewer giới thiệu đơn giản về một số kỹ thuật xuất HTML

Bạn có thể tạo HTML từ SQL không? . Bạn có bao giờ muốn? . Nguyên tắc rất đơn giản. HTML thực sự chỉ là một phương ngữ hơi kỳ lạ của XML truyền đạt ý nghĩa cho các thẻ được xác định trước. SQL Server có các cách tích hợp sẵn để xuất ra nhiều loại XML. Mặc dù trước đây tôi đã từng xuất toàn bộ trang web từ SQL, nhưng điều tự nhiên nhất là tạo ra các cấu trúc HTML như bảng, danh sách và thư mục

HTML5 nói chung có thể được xử lý bằng SQL như thể nó là một đoạn XML. Tất nhiên, XML không có các thẻ được xác định trước và có thể mở rộng, trong khi HTML được thiết kế để tạo thuận lợi cho việc kết xuất và hiển thị dữ liệu. Theo tùy chỉnh, nó đã trở nên dễ dung thứ hơn XML, nhưng nói chung, HTML5 dựa trên XML

Tạo bảng từ các biểu thức SQL

Trong HTML5, các bảng được thực hiện tốt nhất một cách đơn giản, nhưng sử dụng các phần tử và cấu trúc con để nhà thiết kế web có toàn quyền kiểm soát giao diện của bảng. CSS3 cho phép bạn chỉ định các tập hợp ô trong danh sách các phần tử con. Ví dụ: các thẻ TD riêng lẻ trong một hàng của bảng [TR] có thể phân định các ô của bảng có thể có kiểu dáng riêng, nhưng việc hiển thị cấu trúc bảng hoàn toàn tách biệt với chính dữ liệu

Bảng bắt đầu với một phần tử phụ đề tùy chọn, theo sau là 0 hoặc nhiều phần tử colgroup, tiếp theo là phần tử thead tùy chọn. Sau đó, tiêu đề này được theo sau tùy ý bởi một phần tử tfoot, theo sau là 0 hoặc nhiều phần tử tbody hoặc một hoặc nhiều phần tử tr, theo sau là một phần tử tfoot tùy chọn, nhưng chỉ có thể có một phần tử tfoot

'Mẫu' HTML5 cho các bảng

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

1..n

1..n

1. n

1..n

1. n

1..n

1. n

1. n

Trong SQL Server, người ta có thể tạo XML cho một bảng như thế này với loại truy vấn này ở dạng mẫu có dữ liệu giả

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

LỰA CHỌN

    [CHỌN 'Bảng I' CHO400 THEN 'TextRed'

      KHI ĐẾM[*]>250 THEN 'TextMauve'

  KHÔNG 'TextBlue'END AS [td/@class],

XẾP HẠNG[] HƠN [ORDER BY COUNT[*] desc] AS td ,

    '' AS [*],--hack to allow the use of PATH

ĐẾM[*] NHƯ td,--PATH otherwise concatenates TDs

    '' AS [*],--hack to allow the use of PATH

      a. Thành phố + ', ' + sp.Tên + ', ' + cr.Tên AS td

      TỪ Bán hàng. SalesOrderHeader AS soh

        THAM GIA Người. Địa chỉ AS a

          BẬT a. ID địa chỉ = soh. BillToAddressID

        THAM GIA Người. Tiểu bang Tỉnh AS sp

          BẬT sp. ID tỉnh bang = a. ID tỉnh bang

        THAM GIA Người. Quốc giaKhu vực AS cr

          BẬT cr. Mã vùng quốc gia = sp. Mã vùng quốc gia

      NHÓM BỞI a. Thành phố + ', ' + sp.Tên + ', ' + cr.Tên

      ĐẶT HÀNG BẰNG ĐẾM[*] DESC

    CHO XML PATH['tr'], ELEMENTS, TYPE

    ] NHƯ không phải ai'

  CHO XML PATH[''], ROOT['table']]];

Có, chúng tôi đã thay đổi câu lệnh SQL trước đó để tạo các thuộc tính 'lớp' cho phép chúng tôi tô màu các số thứ tự xếp hạng mà chúng tôi vừa thêm sao cho phần thể hiện tốt nhất có màu đỏ, phần tốt nhất tiếp theo có màu hoa cà và phần còn lại có màu xanh đậm; . Nó sẽ trông giống như thế này…

Rõ ràng, bạn có thể sử dụng điều này cho bất kỳ thẻ HTML nào yêu cầu thuộc tính. Ví dụ: thẻ IMG hình ảnh cần có 'src' và thẻ neo A cần có 'href'. Nhược điểm duy nhất là bạn mất đi sự gọn gàng khi sử dụng RAW. HTML trộn lẫn các thuộc tính và thành phần nên tôi nghi ngờ rằng bạn sẽ cần sử dụng cú pháp FOR XML PATH cho loại công việc này

Tạo danh sách thư mục từ các biểu thức SQL

HTML dùng để hiển thị các nhóm giá trị tên như từ điển, chỉ mục, định nghĩa, câu hỏi và câu trả lời và từ vựng. Nhóm tên-giá trị bao gồm một hoặc nhiều tên [phần tử dt] ​​theo sau là một hoặc nhiều giá trị [phần tử dd]. Trong một phần tử dl, không được có nhiều hơn một phần tử dt cho mỗi tên

Chúng tôi sẽ lấy một đoạn trích từ thuật ngữ SQL Server xuất sắc làm ví dụ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

CHỌN F. Thời hạn AS DT, F . .Định nghĩa AS DD

    TỪ

      [

      GIÁ TRỊ

        ['bộ nhớ cache bị lão hóa',

          'Cơ chế lưu vào bộ nhớ đệm xác định thời điểm một hàng trong bộ đệm đã lỗi thời và phải được làm mới'

        ],

        ['ứng dụng bộ đệm',

          'A. NET sử dụng API ứng dụng khách Windows Server AppFabric để giao tiếp và lưu trữ dữ liệu vào hệ thống bộ nhớ đệm phân tán Windows Server AppFabric. '

        ],

        ['cụm bộ đệm',

          'Việc khởi tạo dịch vụ bộ đệm được phân phối, được tạo thành từ một hoặc nhiều phiên bản của dịch vụ lưu trữ bộ đệm làm việc cùng nhau để lưu trữ và phân phối dữ liệu. Dữ liệu được lưu trữ trong bộ nhớ để giảm thiểu thời gian phản hồi cho các yêu cầu dữ liệu. Công nghệ phân cụm này khác với Windows Clustering. '

        ],

        ['vô hiệu hóa bộ đệm',

          'Quá trình gắn cờ một đối tượng trong bộ đệm để nó không còn được sử dụng bởi bất kỳ ứng dụng khách bộ đệm nào. Điều này xảy ra khi một đối tượng ở trong bộ đệm lâu hơn giá trị hết thời gian của bộ đệm [khi nó hết hạn]. '

        ],

        ['mục bộ đệm',

          'Một đối tượng được lưu trữ trong bộ nhớ cache và thông tin bổ sung được liên kết với đối tượng đó, chẳng hạn như thẻ và phiên bản. Nó có thể được trích xuất từ ​​​​cụm bộ đệm bằng API máy khách GetCacheItem. '

        ],

        ['thông báo bộ đệm',

          'Thông báo không đồng bộ có thể được kích hoạt bởi nhiều thao tác bộ đệm trên cụm bộ đệm. Thông báo bộ đệm có thể được sử dụng để gọi các phương thức ứng dụng hoặc tự động vô hiệu hóa các đối tượng được lưu trong bộ nhớ cache cục bộ. '

        ],

        ['thao tác bộ đệm',

          'Một sự kiện xảy ra trên các khu vực hoặc các mục đã lưu trong bộ nhớ cache có thể kích hoạt thông báo trong bộ nhớ cache. '

        ],

        ['cổng bộ đệm',

          'Một cổng TCP/IP được các máy chủ bộ đệm sử dụng để truyền dữ liệu đến và từ các máy khách bộ đệm. Số cổng được sử dụng cho cổng bộ đệm có thể khác nhau trên mỗi máy chủ lưu trữ bộ đệm. Các cài đặt này được duy trì trong cài đặt cấu hình cụm. '

        ],

        ['vùng bộ đệm',

          'Một vùng chứa dữ liệu, bên trong bộ đệm, cùng định vị tất cả các đối tượng được lưu trong bộ nhớ đệm trên một máy chủ bộ đệm duy nhất. Vùng bộ đệm cho phép khả năng tìm kiếm tất cả các đối tượng được lưu trong bộ đệm trong vùng bằng cách sử dụng các chuỗi mô tả, được gọi là thẻ. '

        ],

        ['dịch vụ bộ đệm',

          'Giải pháp bộ nhớ đệm trong bộ nhớ được phân phối cho phép người dùng xây dựng các ứng dụng có khả năng mở rộng và đáp ứng cao bằng cách đưa dữ liệu đến gần người dùng cuối hơn. '

        ],

        ['thẻ bộ đệm',

          'Một hoặc nhiều giá trị nhận dạng dựa trên chuỗi tùy chọn có thể được liên kết với từng đối tượng đã lưu trong bộ nhớ cache được lưu trữ trong một khu vực. Các khu vực cho phép bạn truy xuất các đối tượng được lưu trong bộ nhớ cache dựa trên một hoặc nhiều thẻ. '

        ],

        ['mẫu lập trình lưu bộ nhớ đệm',

          'Một mẫu lập trình trong đó nếu dữ liệu không có trong bộ đệm thì ứng dụng, chứ không phải hệ thống bộ đệm phân tán, phải tải lại dữ liệu vào bộ đệm từ nguồn dữ liệu gốc. '

        ],

        ['ứng dụng hỗ trợ bộ đệm',

          'Một ứng dụng sử dụng ứng dụng khách bộ nhớ đệm Windows Server AppFabric để lưu trữ dữ liệu trong bộ nhớ đệm trên cụm bộ đệm. '

        ]

      ] F[Thời hạn, Definition]

  CHO XML RAW[''],ROOT['DL'], ELEMENTS, TYPE;

Điều này tạo ra một danh sách thư mục có thể được hiển thị như bạn muốn

Tạo danh sách phân cấp từ các biểu thức SQL

Danh sách HTML có lẽ là cách hữu ích nhất để chuyển dữ liệu phân cấp đơn giản tới một ứng dụng. Bạn thực sự có thể sử dụng các thư mục [DL] để làm điều này cho các cặp tên-giá trị danh sách và thậm chí cả các bảng cho dữ liệu phức tạp hơn. Đây là một ví dụ đơn giản về danh sách phân cấp, được tạo từ AdventureWorks. Bạn muốn sử dụng một hàm đệ quy cho bất kỳ điều gì phức tạp hơn. Tôi sẽ cho bạn thấy điều này trong giây lát. Đây là một phiên bản đơn giản chỉ cung cấp cho bạn một cấp độ

1

2

3

4

5

6

7

8

9

10

11

12

CHỌN CHUYỂN ĐỔI[ NVARCHAR[MAX],

           [SELECT f. [Nhóm] AS li,

              [CHỌN g. Tên AS li

                         TỪ Bán hàng. Lãnh thổ bán hàng g

                 Ở ĐÂU g. [Nhóm] = f . .[Nhóm]

              CHO XML RAW[''], ROOT['ul'], ELEMENTS, TYPE

              ]

              TỪ Bán hàng. Lãnh thổ bán hàng f

              NHÓM BỞI f. [Nhóm]

           CHO XML RAW[''], ROOT['ul'], ELEMENTS, TYPE

           ]

        ];

…cho…

Có một hệ thống phân cấp phức tạp hơn trong AdventureWorks mà chúng ta có thể sử dụng để chỉ ra cách hiển thị một hệ thống phân cấp với độ sâu tùy ý dưới dạng danh sách. Đây là cách bạn có thể làm điều đó. Đầu tiên hàm đệ quy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

TẠO CHỨC NĂNG MeAndMyReports[@Me HIERARCHYID]

TRẢ LẠI XML

  BẮT ĐẦU

  TRẢ LẠI

      [CHỌN tôi. ID đăng nhập AS li,

        [SELECT dbo. Báo cáo của tôi[báo cáo. Nút tổ chức]

           TỪ Nhân sự. Nhân viên NHƯ báo cáo

           Ở ĐÂU báo cáo. Nút tổ chức. GetAncestor[1] = . me.Nút tổ chức

         CHO XML RAW[''], ROOT['ul'], ELEMENTS, TYPE

      ]

      TỪ Nhân sự. Nhân viên NHƯ tôi

      Ở ĐÂU tôi. Nút tổ chức = @Tôi

      CHO XML RAW[''], ELEMENTS, TYPE

      ];

  END;

ĐI

Bây giờ chúng ta có thể chỉ đơn giản chứng minh làm thế nào để gọi nó…

1

2

3

4

5

6

7

KHAI BÁO @sếp HIERARCHYID;

 

SELECT @sếp = Nút tổ chức

  TỪ Nhân sự. Nhân viên

  Ở ĐÂU Nhân viên. ID đăng nhập = 'adventure-works\roberto0';

 

CHỌN dbo. Báo cáo của MeAndMy[@sếp];

and this will give you the list  that then just needs the base

    node

    kết luận

    Hiện tại có khá nhiều cấu trúc trong HTML5. Ngay cả thẻ nội dung cũng có tiêu đề phụ, điều hướng, phần, bài viết, sang một bên, chân trang, chi tiết và thẻ tóm tắt. Nếu bạn đọc Khuyến nghị của W3C, nó sẽ đưa ra những gợi ý hay về việc sử dụng đánh dấu để tạo cấu trúc. Thẻ trước có thể sử dụng mã con, thẻ samp và kbd để tạo định dạng thông minh. Dữ liệu trong SQL Server có thể dễ dàng tạo ra loại đánh dấu HTML5 có cấu trúc này. Điều này rõ ràng được sử dụng trong các chỉ mục, lập chương, bảng chú giải thuật ngữ cũng như tạo ra các báo cáo dựa trên bảng rõ ràng. Có khá nhiều dặm trong việc tạo HTML từ các truy vấn SQL Server

    Grant Fritchey 01 Tháng chín 2022

    Grant Fritchey 01 Tháng chín 2022

    Đừng ngạc nhiên

    0

    0
    • Biên tập

    Lần đầu tiên sau mười một năm đi du lịch, tôi bị ốm nặng khi đang trên đường. Không, tôi không chia sẻ thông tin chi tiết dưới bất kỳ hình thức nào. Những gì tôi sẽ chia sẻ chỉ là thế này; . Khi tôi đi du lịch, tôi nhìn vào thời tiết, nơi tôi sẽ đến, thời gian và tôi đóng gói cho phù hợp. Tôi có … Đọc thêm

    0

    0
    • Biên tập

    Louis Davidson 04 Tháng mười hai 2022

    Louis Davidson 04 Tháng mười hai 2022

    Xử lý các bit của giá trị nhị phân trong SQL Server

    0

    1
    • Blog
    • Lập trình T-SQL

    Trong bài viết này, tôi muốn nói về một chủ đề mà có thể bạn chưa bao giờ cần đến. Lần duy nhất tôi thực sự cần xem xét các bit theo mẫu byte. Trong [hiện tại] các phiên bản cũ của SQL Server không có các cột tự mô tả như trong các đối tượng siêu dữ liệu của nó như bây giờ. … Đọc thêm

    0

    1
    • Blog
    • Lập trình T-SQL

    Edward Pollack 21 tháng mười một 2022

    Edward Pollack 21 tháng mười một 2022

    Chuyển đổi dữ liệu qua các múi giờ. Sơn lót chuyên sâu

    0

    2
    • Lập trình T-SQL

    Giá như cả thế giới sử dụng UTC, chẳng phải cuộc sống sẽ dễ dàng hơn rất nhiều sao? . Khi các ứng dụng phát triển và tương tác nhiều hơn với khách hàng quốc tế, … Đọc thêm

    Chúng ta có thể sử dụng SQL trong HTML không?

    Bạn có thể tạo HTML từ SQL vì SQL Server có hỗ trợ tích hợp sẵn để xuất XML và HTML được hiểu đúng nhất là một phương ngữ hơi kỳ lạ của XML truyền đạt ý nghĩa cho các thẻ được xác định trước. Có rất nhiều trường hợp cạnh trong đó cấu trúc HTML là cách rõ ràng nhất để giao tiếp các bảng, danh sách và thư mục.

    HTML có thể tương tác với cơ sở dữ liệu không?

    Bạn không thể khiến HTML tương tác trực tiếp với cơ sở dữ liệu . Bạn nên tạo ứng dụng phía máy chủ, ứng dụng này trả lời các truy vấn được tạo bởi biểu mẫu HTML, truy vấn JS, v.v.

    SQL có thể truy vấn một trang web không?

    Nó thường được sử dụng trên phần phụ trợ của các trang web doanh nghiệp để cung cấp quyền truy cập vào dữ liệu người dùng. Bạn có thể sử dụng khung web để hiển thị dữ liệu SQL trên trang web, tự viết các truy vấn SQL đơn giản để liên kết trang web với cơ sở dữ liệu hoặc sử dụng trực quan hóa dữ liệu .

    Làm cách nào chúng tôi có thể lưu trữ dữ liệu từ HTML trong SQL?

    Sử dụng biểu mẫu này, bạn có thể nắm bắt các đơn đặt hàng của khách hàng và tự động lưu chúng vào cơ sở dữ liệu SQL. .
    Xác định truy vấn. Chúng tôi sẽ xác định hai truy vấn. .
    Tạo lược đồ XML. .
    Tạo biểu mẫu. .
    Liên kết đến cơ sở dữ liệu. .
    Xác định truy vấn SQL. .
    Tạo một lược đồ XML. .
    Tạo biểu mẫu. .
    Liên kết đến cơ sở dữ liệu

Chủ Đề