Computer >> Máy Tính >  >> Lập trình >> SQL

Ngôn ngữ truy vấn có cấu trúc (SQL)


SQL (Ngôn ngữ truy vấn có cấu trúc) là một ngôn ngữ lập trình chuyên dụng được tiêu chuẩn hóa để sử dụng để quản lý cơ sở dữ liệu quan hệ và thực hiện các hoạt động khác nhau trên dữ liệu. Có nhiều cách sử dụng SQL khác nhau bao gồm sửa đổi cấu trúc bảng và chỉ mục cơ sở dữ liệu; thêm, cập nhật và xóa hàng dữ liệu; và truy xuất các tập hợp con thông tin khác nhau từ cơ sở dữ liệu cho các ứng dụng phân tích và xử lý giao dịch. Có các truy vấn và hoạt động chuyên biệt hoạt động dưới dạng lệnh và thường được gọi là câu lệnh SQL như chọn, thêm, chèn, cập nhật, xóa, tạo, thay đổi và cắt ngắn.

SQL trở thành ngôn ngữ lập trình tiêu chuẩn cho cơ sở dữ liệu quan hệ sau khi chúng xuất hiện vào cuối những năm 1970 và đầu những năm 1980. Thường được gọi là cơ sở dữ liệu SQL, hệ thống quan hệ bao gồm một tập hợp các bảng chứa dữ liệu ở dạng hàng và cột, trong đó mỗi cột trong bảng tương ứng với một loại dữ liệu, ví dụ:tên hoặc địa chỉ khách hàng &mỗi hàng chứa một giá trị dữ liệu cho cột giao nhau.

SQL cũng là một ngôn ngữ dành riêng cho miền được sử dụng để lập trình và thiết kế dữ liệu được lưu trữ trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Nó đặc biệt hữu ích trong việc xử lý dữ liệu có cấu trúc nơi có mối quan hệ giữa các thực thể / biến khác nhau của dữ liệu.

SQL ban đầu dựa trên đại số quan hệ và phép tính quan hệ tuple, SQL bao gồm nhiều loại câu lệnh, thường được gọi là ngôn ngữ truy vấn dữ liệu (DQL), ngôn ngữ định nghĩa dữ liệu (DDL), ngôn ngữ điều khiển dữ liệu (DCL) và dữ liệu ngôn ngữ thao tác (DML). Phạm vi của SQL bao gồm truy vấn dữ liệu, thao tác dữ liệu (chèn, cập nhật và xóa), định nghĩa dữ liệu (tạo và sửa đổi lược đồ) và kiểm soát truy cập dữ liệu. Ngoài ra, SQL được mô tả như một ngôn ngữ khai báo (4GL), vì nó cũng bao gồm các phần tử thủ tục.

Ứng dụng của SQL

Có nhiều ứng dụng khác nhau của SQL -

  • 1. Tập lệnh tích hợp dữ liệu - Ứng dụng chính của SQL là viết các tập lệnh tích hợp dữ liệu bởi quản trị viên và nhà phát triển cơ sở dữ liệu.
  • 2. Truy vấn phân tích - Các nhà phân tích dữ liệu sử dụng ngôn ngữ truy vấn có cấu trúc để thiết lập và chạy các truy vấn phân tích một cách thường xuyên.
  • 3. Truy xuất thông tin - Một ứng dụng phổ biến khác của ngôn ngữ này là lấy các tập hợp con thông tin trong cơ sở dữ liệu cho các ứng dụng phân tích và xử lý giao dịch. Các phần tử SQL được sử dụng phổ biến nhất là chọn, chèn, cập nhật, thêm, xóa, tạo, cắt bớt và thay đổi.
  • 4. Các ứng dụng quan trọng khác - SQL được sử dụng để sửa đổi cấu trúc chỉ mục và bảng cơ sở dữ liệu. Ngoài ra, người dùng có thể thêm, cập nhật và xóa các hàng của dữ liệu bằng cách sử dụng ngôn ngữ này.

Chuẩn SQL và các tiện ích mở rộng độc quyền

Một tiêu chuẩn SQL chính thức đã được Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) thông qua vào năm 1986 và sau đó là Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) vào năm 1987. SQL thường xuyên được sử dụng bởi các quản trị viên cơ sở dữ liệu, cũng như các nhà phát triển viết kịch bản tích hợp dữ liệu và dữ liệu các nhà phân tích đang tìm cách thiết lập và chạy các truy vấn phân tích.

Cả hai hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở và độc quyền được xây dựng xung quanh SQL đều có sẵn để các tổ chức sử dụng. Chúng bao gồm Microsoft SQL Server, Oracle Database, IBM DB2, SAP HANA, SAP Adaptive Server, MySQL (hiện thuộc sở hữu của Oracle) và PostgreSQL.

Tuy nhiên, nhiều sản phẩm cơ sở dữ liệu này hỗ trợ SQL với các phần mở rộng độc quyền cho ngôn ngữ chuẩn để lập trình thủ tục và các chức năng khác. Ví dụ:Microsoft cung cấp một tập hợp các phần mở rộng có tên là Transact-SQL (T-SQL), trong khi phiên bản mở rộng của tiêu chuẩn Oracle là PL / SQL. Do đó, các biến thể SQL khác nhau do các nhà cung cấp cung cấp không hoàn toàn tương thích với nhau.

Lệnh và cú pháp SQL

Các lệnh SQL được chia thành nhiều loại khác nhau, chẳng hạn như các câu lệnh của ngôn ngữ thao tác dữ liệu (DML) và ngôn ngữ định nghĩa dữ liệu (DDL), các điều khiển giao dịch và các biện pháp bảo mật.

  • DML được sử dụng để truy xuất và thao tác dữ liệu.
  • Các câu lệnh DDL dùng để xác định và sửa đổi cấu trúc cơ sở dữ liệu.
  • Các kiểm soát giao dịch giúp quản lý quá trình xử lý giao dịch, đảm bảo rằng các giao dịch được hoàn thành hoặc được khôi phục nếu xảy ra lỗi hoặc sự cố.
  • Các câu lệnh bảo mật được sử dụng để kiểm soát quyền truy cập cơ sở dữ liệu cũng như để tạo vai trò và quyền của người dùng

Ngôn ngữ SQL được chia thành nhiều phần tử ngôn ngữ, bao gồm -

  • Điều khoản, là các thành phần cấu thành của câu lệnh và truy vấn.
  • Biểu thức, có thể có giá trị vô hướng hoặc bảng bao gồm các cột và hàng dữ liệu
  • Dự đoán được sử dụng để chỉ định các điều kiện có thể được đánh giá đối với logic ba giá trị trong SQL (3VL) (đúng / sai / không xác định) hoặc giá trị sự thật Boolean (đúng / sai) và được sử dụng để hạn chế ảnh hưởng của các câu lệnh và truy vấn hoặc để thay đổi luồng chương trình .
  • Truy vấn được sử dụng để truy xuất dữ liệu dựa trên các tiêu chí cụ thể.
  • Tuyên bố, có thể ảnh hưởng lâu dài đến giản đồ và dữ liệu hoặc có thể kiểm soát các giao dịch, luồng chương trình, kết nối, phiên hoặc chẩn đoán.
  • Câu lệnh SQL cũng bao gồm câu lệnh dấu chấm phẩy (";") dấu chấm hết.
  • khoảng trắng không đáng kể thường bị bỏ qua trong các câu lệnh và truy vấn SQL, giúp bạn dễ dàng định dạng mã SQL để dễ đọc hơn.

Khả năng tương tác và tiêu chuẩn hóa

Việc triển khai SQL không tương thích giữa các nhà cung cấp và không tuân theo tất cả các tiêu chuẩn. Trong cú pháp ngày và giờ cụ thể, nối chuỗi, NULL và độ phân biệt chữ hoa chữ thường so sánh khác nhau giữa các nhà cung cấp. Do đó, mã SQL hiếm khi có thể được chuyển giữa các hệ thống cơ sở dữ liệu mà không cần sửa đổi.

Có một số lý do cho các vấn đề về tính di động giữa các hệ thống cơ sở dữ liệu -

  • Độ phức tạp và kích thước của tiêu chuẩn SQL có nghĩa là hầu hết những người triển khai không hỗ trợ toàn bộ tiêu chuẩn.
  • Tiêu chuẩn không chỉ định hành vi của cơ sở dữ liệu trong một số lĩnh vực quan trọng (ví dụ:chỉ mục, lưu trữ tệp ...), để lại các triển khai để quyết định cách hoạt động.
  • Tiêu chuẩn SQL chỉ định chính xác cú pháp mà hệ thống cơ sở dữ liệu phù hợp phải triển khai. Tuy nhiên, đặc tả của tiêu chuẩn về ngữ nghĩa của các cấu trúc ngôn ngữ ít được xác định rõ ràng, dẫn đến sự mơ hồ.
  • Nhiều nhà cung cấp cơ sở dữ liệu có cơ sở khách hàng hiện tại lớn; khi phiên bản mới hơn của tiêu chuẩn SQL xung đột với hành vi trước đây của cơ sở dữ liệu của nhà cung cấp, nhà cung cấp có thể không muốn phá vỡ khả năng tương thích ngược.
  • Các nhà cung cấp có một chút khuyến khích thương mại để giúp người dùng thay đổi nhà cung cấp cơ sở dữ liệu dễ dàng hơn (xem phần giới hạn nhà cung cấp).
  • Người dùng đánh giá phần mềm cơ sở dữ liệu có xu hướng đặt các yếu tố khác như hiệu suất vào thứ tự ưu tiên cao hơn so với việc tuân thủ các tiêu chuẩn.

Ưu điểm của SQL

  • Truy vấn SQL có thể được sử dụng để truy xuất một lượng lớn bản ghi từ cơ sở dữ liệu một cách nhanh chóng và hiệu quả.
  • SQL được sử dụng để xem dữ liệu mà không cần lưu trữ dữ liệu trong đối tượng.
  • SQL kết hợp hai hoặc nhiều bảng và hiển thị nó dưới dạng một đối tượng cho người dùng.
  • Cơ sở dữ liệu SQL sử dụng tiêu chuẩn lâu đời, đang được ANSI & ISO. Cơ sở dữ liệu không phải SQL không tuân theo bất kỳ tiêu chuẩn rõ ràng nào.
  • Sử dụng SQL tiêu chuẩn, việc quản lý hệ thống cơ sở dữ liệu dễ dàng hơn mà không cần phải viết một lượng mã đáng kể.
  • SQL hạn chế quyền truy cập của một bảng để không ai có thể chèn các hàng vào bảng.
  • Cơ sở dữ liệu SQL trước đây đồng nghĩa với cơ sở dữ liệu quan hệ. Với sự xuất hiện của ObjectOriented DBMS, khả năng lưu trữ đối tượng được mở rộng sang cơ sở dữ liệu quan hệ.

Nhược điểm của SQL

  • Giao diện cơ sở dữ liệu SQL phức tạp hơn việc thêm một vài dòng mã.
  • Khi bảng bị loại bỏ, chế độ xem sẽ không hoạt động. Nó phụ thuộc vào các đối tượng bảng.
  • Mặc dù cơ sở dữ liệu SQL tuân theo ANSI & Các tiêu chuẩn ISO, một số cơ sở dữ liệu sử dụng các phần mở rộng độc quyền cho SQL tiêu chuẩn để đảm bảo nhà cung cấp được chấp nhận.
  • Nó là một đối tượng nên nó chiếm không gian.