Theo dòng lịch sử, vào đầu những năm 1970, sau khi E. Codd đề xuất mô hình quan hệ, IBM bắt đầu phát triển một ngôn ngữ để làm việc với các CSDL thuộc loại này. Đầu tiên, họ sử dụng thuật ngữ Structured English Query Language (tạm dịch là Anh ngữ có cấu trúc dùng làm ngôn ngữ tham vấn) và gọi tắt là SEQUEL. Nhưng sau đó họ khám phá ra rằng nhãn hiệu này đã thuộc bản quyền của Hawker-Siddeley Aircraft Company (thuộc Anh). Để tránh những rắc rối về mặt pháp lý, IBM đổi tên là SQL và sử dụng cho các sản phẩm quản lý CSDL của mình (như DB2).
Do những ưu điểm của SQL mà những nhà sản xuất khác cũng sử dụng ngôn ngữ ấy cho các sản phẩm cùng loại và sau đó trở thành một tiêu chuẩn được ANSI và ISO thừa nhận và xây dựng. Tiêu chuẩn này cũng phát triển dần theo thời gian với các phiên bản SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011 và mới nhất là SQL:2016.
Trong thời gian đầu, SQL chỉ sử dụng cho CSDL hoạt động theo mô hình quan hệ. Tuy nhiên, khi khoa học máy tính phát triển, dữ liệu cũng trở nên đa dạng hơn, và trong một số trường hợp, vượt quá khả năng của SQL theo quan điểm truyền thống. Để theo kịp với sự phát triển này, từ phiên bản 1999, SQL bắt đầu đưa vào một số tính năng để làm việc theo hướng đối tượng, hỗ trợ nhiều loại dữ liệu hơn, sử dụng một số khái niệm của lập trình hướng đối tượng như phương thức (method), đóng gói (encapsulation). Vì vậy những phiên bản mới của SQL được xem là hoạt động theo kiểu phối hợp quan hệ và đối tượng (object-relational database language).
Hiện nay nhiều người thường cho rằng SQL là những chữ viết đầu của Structured Query Language (ngôn ngữ tham vấn có cấu trúc). Thật ra không hoàn toàn như thế, SQL không có những tính chất của các ngôn ngữ lập trình có cấu trúc khác như C, Java hay Python. Mặt khác SQL không những chỉ dùng để tham vấn mà chức năng của nó còn phong phú hơn rất nhiều, ta có thể tạo ra các quan hệ, định nghĩa và thay đổi cấu trúc các quan hệ ấy, đưa thêm dữ liệu vào, hiệu đính dữ liệu, ...
Khi sử dụng các ngôn ngữ các lập trình thông dụng, ta phải xây dựng các đoạn lệnh (command) yêu cầu máy tính phải làm thế nào để đạt được các mục tiêu đã đề ra (thí dụ thuật toán để giải phương trình bậc hai). Nhưng trong SQL, ta chỉ phát biểu (statement) việc phải làm là gì (thí dụ tính điểm trung bình môn Toán của sinh viên lớp XYZ), còn làm thế nào thì chương trình sẽ tự tìm cách thực hiện.
Mặc dù SQL có thể đảm nhiệm nhiều chức năng, thực hiện được nhiều việc, nhưng nếu so sánh với những ngôn ngữ lập trình khác như C++, Basic, Python, thì SQL còn thiếu rất nhiều chức năng. Ta không thể dùng SQL để xây dựng các chương trình ứng dụng như các ngôn ngữ lập trình thông dụng khác. Vì thế SQL chỉ được xem như một ngôn ngữ con (sublanguage).
Như vậy ta thấy SQL không phải là một ngôn ngữ, không chỉ dùng để tham vấn và các phát biểu của SQL thì cũng không có cấu trúc chặt chẽ.
Với SQL, ta có thể yêu cầu CSDL thực hiện một số việc như thêm cột, bớt dòng, tra cứu thông tin. Yêu cầu này được đặt ra dưới dạng các phát biểu. Tùy theo ý nghĩa của yêu cầu này, người ta chia các phát biển làm 3 nhóm :
Ta có 4 phương pháp để thực thi các phát biểu SQL:
Trong thực tế, phương pháp thứ hai được sử dụng phổ biến hơn cả nhờ tận dụng thế mạnh của cả hai phần, ngôn ngữ lập trình chính và SQL. Tuy nhiên, trong website này chúng tôi sẽ sử dụng phương pháp thứ nhất để các bạn nắm vững các kiến thức cơ bản hơn.
Trang web này được cập nhật lần cuối ngày 25/11/2018
Cơ sở dữ liệu
Các chuyên đề
Xử lý dữ liệu
Ma trận
R