{"id":188265,"date":"2023-01-27T16:27:00","date_gmt":"2023-01-27T15:27:00","guid":{"rendered":"https:\/\/liora.io\/en\/?p=188265"},"modified":"2026-02-12T11:55:15","modified_gmt":"2026-02-12T10:55:15","slug":"all-about-sql3","status":"publish","type":"post","link":"https:\/\/liora.io\/en\/all-about-sql3","title":{"rendered":"SQL3: The new generation of query language"},"content":{"rendered":"\n<p><strong>SQL3, also known as SQL: 1999, marks a significant milestone in the evolution of SQL (Structured Query Language). Published in December 1999 by the ISO (International Organization for Standardization) and the IEC (International Electrotechnical Commission), SQL3 introduced numerous features and extensions to meet the growing needs of database applications.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-has-sql-evolved-over-time\">How Has SQL Evolved Over Time?<\/h2>\n\n\n\n<p>Before delving into <b>SQL3<\/b> in more detail, it is useful to understand the evolution of the <a href=\"https:\/\/liora.io\/en\/sql-learn-all-about-the-programming-language-for-databases\">SQL language<\/a>. SQL was first standardized in 1986 <b>(SQL:86)<\/b>, followed by significant updates in 1989 <b>(SQL:89)<\/b> and 1992 <b>(SQL:92)<\/b>. Each new version brought significant improvements, expanding SQL&#8217;s capabilities and features to meet evolving requirements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-the-key-innovations-of-sql3\">What Are the Key Innovations of SQL3?<\/h2>\n\n\n\n<p>SQL3 builds on SQL2 and includes many new aspects. Here are some of the main innovations introduced by SQL3:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-user-defined-data-types-udt\">1. User-Defined Data Types (UDT)<\/h3>\n\n\n\n<p>One of the most notable features of SQL3 is the introduction of user-defined data types <b>(UDT)<\/b>. UDTs allow users to define their own complex data types, making it easier to manage complex data and structures.<\/p>\n\n\n\n<p>For example, a company could create a custom data type to represent a full address, including fields for street, city, postal code,\u2026<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"1000\" height=\"783\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2.jpg\" alt=\"\" class=\"wp-image-203325\" style=\"width:auto;height:500px\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2.jpg 1000w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-300x235.jpg 300w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-768x601.jpg 768w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-370x290.jpg 370w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-440x345.jpg 440w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-562x440.jpg 562w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-785x615.jpg 785w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-210x164.jpg 210w, https:\/\/liora.io\/app\/uploads\/sites\/9\/2024\/08\/sql3-liora-2-82x64.jpg 82w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-nested-tables\">2. Nested Tables<\/h3>\n\n\n\n<p>SQL3 allows the <b>creation of nested tables<\/b>, where a table can contain other tables as columns. This feature is useful for <b>modeling hierarchical relationships<\/b>. For instance, a table representing customer orders could include a nested table of ordered items.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-stored-functions-and-procedures\">3. Stored Functions and Procedures<\/h3>\n\n\n\n<p>SQL3 greatly improved the support for stored functions and procedures. Users can now write functions and procedures using <b>SQL\/PSM (Persistent Stored Modules)<\/b>, a subset of SQL designed for procedural programming.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-triggers\">4. Triggers<\/h3>\n\n\n\n<p>SQL3 introduced triggers, which allow for <b>automatic execution of a procedure or action<\/b> when a specific event occurs on a table (e.g., an insertion, update, or deletion). Triggers are useful for maintaining data integrity and automating complex processes without manual intervention.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-recursive-query-language\">5. Recursive Query Language<\/h3>\n\n\n\n<p>With SQL3, it is now possible to <b>write recursive queries<\/b> using the <b>WITH RECURSIVE<\/b> clause. This simplifies the management of hierarchical <a href=\"https:\/\/liora.io\/en\/demystifying-sql-index-understanding-its-purpose-and-functionality\">data structures<\/a>, such as trees and graphs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-6-object-support\">6. Object Support<\/h3>\n\n\n\n<p>SQL3 extended SQL to include support for <strong>object-oriented programming (OOP)<\/strong> concepts, such as inheritance, methods, and constructors. This enables more natural and intuitive modeling of complex data. Objects can encapsulate data and behavior, simplifying the management and <b>manipulation of data in complex applications<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-the-advantages-of-sql3\">What Are the Advantages of SQL3?<\/h2>\n\n\n\n<p>The introduction of SQL3 brought several advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Flexibility<\/b>: With user-defined data types and nested tables, SQL3 allows for more flexible modeling of complex data.<\/li>\n\n\n\n<li><b>Better Performance<\/b>: Stored functions and procedures enable the optimization of database operations by reducing network traffic and centralizing processing logic.<\/li>\n\n\n\n<li><b>Hierarchical Data Management<\/b>: Recursive queries and nested tables simplify the management of hierarchical data structures, commonly used in many applications.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>SQL3 represents an important milestone in the <b>evolution of the SQL language<\/b>, offering powerful new capabilities to meet the needs of database applications. With its numerous improvements and extensions, SQL3 continues to play a crucial role in data management.<\/p>\n\n\n\n<p>For developers and database administrators, <b>familiarizing themselves with SQL3<\/b> and its advanced features is essential to leverage the full potential of modern relational database management systems.<\/p>\n\n\n\n<p>To learn more about the SQL language and train for <a href=\"https:\/\/liora.io\/en\/distinguishing-data-professions-unraveling-the-differences\">Data careers<\/a>, <a href=\"https:\/\/liora.io\/en\/courses\/\">join Liora<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center wp-container-core-buttons-is-layout-a89b3969\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/en\/courses\/\">Find a course for you<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How has SQL evolved over time?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Before delving into SQL3 in more detail, it is useful to understand the evolution of the SQL language, which was first standardized in 1986 and has been updated several times to expand its capabilities.\u00a0([turn0search0])\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What are the key innovations of SQL3?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"SQL3 builds on earlier versions by introducing many new features such as user\u2011defined data types, nested tables, stored functions and procedures, triggers, recursive queries and object support.\u00a0([turn0search0])\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What are user\u2011defined data types in SQL3?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"One of the most notable features of SQL3 is the introduction of user\u2011defined data types (UDT), which allow users to define their own complex data types to manage complex data and structures.\u00a0([turn0search0])\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What are nested tables in SQL3?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"SQL3 allows the creation of nested tables, where a table can contain other tables as columns, making it useful for modelling hierarchical relationships.\u00a0([turn0search0])\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What advantages does SQL3 offer?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"The introduction of SQL3 brought advantages including greater flexibility for complex data modelling, better performance via stored routines, and easier hierarchical data management with recursive queries and nested tables.\u00a0([turn0search0])\"\n      }\n    }\n  ]\n}\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>SQL3, also known as SQL:1999, marks a significant milestone in the evolution of SQL (Structured Query Language). Published in December 1999 by the ISO (International Organization for Standardization) and the IEC (International Electrotechnical Commission), SQL3 introduced numerous features and extensions to meet the growing needs of database applications.<\/p>\n","protected":false},"author":55,"featured_media":188267,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2433],"class_list":["post-188265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ai"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/posts\/188265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/comments?post=188265"}],"version-history":[{"count":4,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/posts\/188265\/revisions"}],"predecessor-version":[{"id":206599,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/posts\/188265\/revisions\/206599"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/media\/188267"}],"wp:attachment":[{"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/media?parent=188265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/en\/wp-json\/wp\/v2\/categories?post=188265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}