Structured Query Language/Standard Track Print - Wikibooks, Open Boo

Total Page:16

File Type:pdf, Size:1020Kb

Structured Query Language/Standard Track Print - Wikibooks, Open Boo Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... Structured Query Language/Standard Track Print Introduction Contents 1 Introduction 2 It's a Translation and a Guide 3 What this Wikibook is not 4 How to proceed 5 Conventions 5.1 Historical Context 5.2 What makes up a Database Management System? 5.3 Classification of DBMS Design 6 The Theory 7 The Data Model 8 Some more Basics 9 History 10 Characteristics 11 Fundamentals 12 Turing completeness 13 Benefit of Standardization 14 Limits 15 The Standardization Process 16 Verification of Conformance to the Standard 17 Implementations 18 Create Table 18.1 Data Types 18.2 Constraints 18.3 Foreign Key 19 Alter Table 20 Drop Table 21 Select 21.1 Basic Syntax 21.2 Case 21.3 Grouping 21.4 Join 21.5 Subquery 21.6 Set operations 21.7 Rollup/Cube 21.8 Window functions 21.9 Recursions 22 Insert 23 Update 24 Merge 25 Delete 26 Truncate 27 Standard Track 28 More than a Spreadsheet 29 Conceive the Structure 30 Fasten Decisions 31 The Result 32 Back to Start 33 Store new Data with INSERT Command 34 Retrieve Data with SELECT Command 35 Modify Data with UPDATE Command 36 Remove data with DELETE Command 37 Summary 1 sur 121 27/01/2016 00:25 Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... 38 person 39 contact 40 hobby 41 person_hobby 42 Visualisation of the Structure 43 person 44 contact 45 hobby 46 person_hobby 47 Grow up 48 Projection 48.1 UNIQUE 48.2 Aliases for Columnnames 48.3 Functions 48.4 SELECT within SELECT 49 Table names 50 Restriction 50.1 Comparisons 50.2 Boolean logic 51 Grouping 52 Sorting 53 Combine the Language Elements 54 Further Information 55 Exercises 56 AUTOCOMMIT 57 COMMIT 58 ROLLBACK 59 Exercises 60 The Idea 61 The Basic Syntax 62 Four Join Types 62.1 Inner Join 62.2 Left (outer) Join 62.3 Right (outer) Join 62.4 Full (outer) Join 63 Cartesian Product 64 The n:m Situation 65 More Details 66 Exercises 67 Constitute Groups 67.1 Grouping over multiple columns 68 Inspect Groups 69 Focus on Desired Groups 70 The Overall Picture 71 Exercises 72 Extention of Boolean Logic 73 Retrieve the NULL Special Marker 74 Some Examples 75 Coalesce() and Similar Functions 76 Exercises 77 Aggregate functions 77.1 The NULL special marker 77.2 ALL vs. DISTINCT 77.3 Hint 78 Scalar functions 79 Exercises 80 UNION 81 INTERSECT 82 EXCEPT 83 Order By 84 Group By 85 Exercises 86 Two Examples 87 Syntax 2 sur 121 27/01/2016 00:25 Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... 88 Typical Use Cases 89 Exercises 90 Classification 91 Scalar Value Subquery 92 Row Subquery 93 Table Subquery 94 Another Example 95 Exercises 96 Create a View 97 Examples and Explanations 97.1 Example 1: Hide Columns 97.2 Example 2: Rename Columns 97.3 Example 3: Apply WHERE Condition 97.4 Example 4: Use Functions 97.5 Example 5: Join 98 Some more Hints 99 Write Access via Views 100 Clean up the Example Database 101 Exercises 102 Evaluate Values at Runtime 103 Evaluate Rows at Runtime 104 Clean up Your Database 105 Exercises 106 Evaluate Values at Runtime 107 Subqueries in WHERE Clause 108 Exercises 109 Description 110 Example 111 Use Case 112 Extentions 113 Caveat 114 Exercises 115 Example 116 Exercise 117 Example 118 An Analogy 119 Exercises 120 General Description 121 Column Definition 121.1 Data Type 121.2 Default Value 121.3 Identity Specification 121.4 Column Constraint 122 Table Constraint 122.1 Primary Key, UNIQUE and Foreign Key 122.2 NOT NULL and Simple Column Checks 122.3 General Column Checks 123 Column Constraints vs. Table Constraints 124 Clean Up 125 Exercises 126 Overview 127 Character 128 Binary 129 Exact Numeric 130 Approximate Numeric 131 Temporal 132 Boolean 133 XML 134 Domains 135 Clean Up 136 Exercises 137 Foreign Key vs. Join 138 Syntax 139 Example 3 sur 121 27/01/2016 00:25 Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... 140 n:m Relationship 141 ON DELETE / ON UPDATE 142 IMMEDIATE / DEFERRED 143 The Chicken-Egg Problem 144 DROP TABLE / TRUNCATE TABLE 145 Exercises 146 Columns 146.1 Add a Column 146.2 Alter the Characteristic of a Column 146.2.1 Change the Data Type 146.2.2 Change the DEFAULT Clause 146.2.3 Change the NOT NULL Clause 146.3 Drop a Column 147 Table Constraints 147.1 Add a Table Constraint 147.2 Alter a Table Constraint 147.3 Drop a Table Constraint 148 Exercises 149 Global Temporary Tables (GTT) 150 Local Temporary Tables (LTT) 151 Declared Local Temporary Tables (DLTT) 152 Implementation Hints 153 The Concept of Indexes 154 Basic Index 155 Multiple Columns 156 Functional Index 157 Unique Index 158 Drop an Index 159 Privileges 160 Object Types 161 Roles / Public 162 Grant Option 163 IN 164 ALL 165 ANY/SOME 166 EXISTS 167 Example Table 168 ROLLUP 169 CUBE 170 Syntax 171 Overall Description 172 Example Table 173 A First Query 174 Basic Window Functions 175 Determine Partition and Sequence 176 Determine the Frame 176.1 Terminology 176.2 ROWS 176.3 GROUPS 176.4 RANGE 176.5 Defaults 176.6 A Word of Caution 177 Exercises 178 Syntax 179 Example Table 180 Basic Queries 181 Notice the Level 182 Create Paths 183 Depth First / Breads First 184 Exercises 185 The Problem 186 Step 1: Evaluation of NULLs 186.1 Comparision Predicates, IS NULL Predicate 186.2 Other Predicates 4 sur 121 27/01/2016 00:25 Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... 186.3 Predefined Functions 186.4 Grouping 187 Step 2: Boolean Operations within 3VL 187.1 Inspection 187.2 NOT 187.3 AND, OR 188 Some Examples 189 Transaction Boundaries 189.1 Savepoints 190 Atomicity 191 Consistency 192 Isolation 192.1 Classification of Isolation Problems 192.2 Avoidance of Isolation Problems 193 Durability 194 Autocommit 195 References 196 Appendices 197 License 197.1 GNU Free Documentation License 198 0. PREAMBLE 199 1. APPLICABILITY AND DEFINITIONS 200 2. VERBATIM COPYING 201 3. COPYING IN QUANTITY 202 4. MODIFICATIONS 203 5. COMBINING DOCUMENTS 204 6. COLLECTIONS OF DOCUMENTS 205 7. AGGREGATION WITH INDEPENDENT WORKS 206 8. TRANSLATION 207 9. TERMINATION 208 10. FUTURE REVISIONS OF THIS LICENSE 209 11. RELICENSING 210 How to use this License for your documents It's a Translation and a Guide This Wikibook introduces the programming language SQL as defined by ISO/IEC. The standard — similar to most standard publications — is quite technical and neither easy to read nor understand. There is therefore a demand for a text document explaining the key features of the language. That is what this wikibook strives to do: present a readable, understandable introduction for everyone interested in the topic. Manuals and white papers by database vendors are mainly focused on technical aspects of their product. As they want to set themselves apart from each other, they tend to emphasize those aspects which go beyond the SQL standard and the products from other vendors. This is contrary to the wikibooks approach: we want to emphasize the common aspects. The main audience of this wikibook is, therefore, people who want to learn the language, either as a beginner or for someone with existing knowledge and some degree of experience looking for a recapitulation. What this Wikibook is not First of all, this wikibook is not a reference manual for the syntax of standard SQL or any of its implementations. Reference manuals usually consist of definitions and explanations for those definitions. By contrast, this wikibook tries to present concepts and basic commands through textual descriptions and examples. Of course some syntax will be demonstrated. On some pages there are additonal hints about slightly differences between the standard and special implementations. This wikibook is also not a complete tutorial. First, its focus is the standard and not any concrete implementation. When learning a computer language it is necessary to work with it and experience it personally. Hence, a concrete implementation is needed. And most of them differ more or less from the standard. Second, this wikibook is far away from reflecting the complete standard, e.g. the central part of the standard consists of about 18 MB text in more than 1,400 pages. But this wikibook can be used as a companion for learning about SQL. How to proceed 5 sur 121 27/01/2016 00:25 Structured Query Language/Standard Track Print - Wikibooks, open boo... https://en.wikibooks.org/w/index.php?title=Structured_Query_Language... For everyone new to SQL, it will be necessary to study the chapters and pages from beginning to end. For persons who have some experience with SQL or who are interested in a specific aspect, it is possible to navigate directly to any page. Knowledge about any other computer language is not necessary, but it will be helpful. This wikibook consists of descriptions, definitions, and examples. It should be read with care. Furthermore, it is absolutely necessary to personally do some experiments with data and data structures. Hence, access to a concrete database system where read-only and read-write tests can be done is necessary. For those tests, our example database or individually defined tables and data can be used.
Recommended publications
  • 9. SQL FUNDAMENTALS What Is SQL?
    ROHINI COLLEGE OF ENGINEERING & TECHNOLOGY 9. SQL FUNDAMENTALS What is SQL? • SQL stands for Structured Query Language • SQL allows you to access a database • SQL is an ANSI standard computer language • SQL can execute queries against a database • SQL can retrieve data from a database • SQL can insert new records in a database • SQL can delete records from a database • SQL can update records in a database • SQL is easy to learn SQL is an ANSI (American National Standards Institute) standard computer language for accessing and manipulating database systems. SQL statements are used to retrieve and update data in a database. • SQL works with database programs like MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase, etc. There are many different versions of the SQL language, but to be in compliance with the ANSI standard, they must support the same major keywords in a similar manner (such as SELECT, UPDATE, DELETE, INSERT, WHERE, and others). SQL Database Tables • A database most often contains one or more tables. Each table is identified by a name (e.g. "Customers" or "Orders"). Tables contain records (rows) with data. Below is an example of a table called "Persons": CS8492-DATABASE MANAGEMENT SYSTEMS ROHINI COLLEGE OF ENGINEERING & TECHNOLOGY SQL Language types: Structured Query Language(SQL) as we all know is the database language by the use of which we can perform certain operations on the existing database and also we can use this language to create a database. SQL uses certain commands like Create, Drop, Insert, etc. to carry out the required tasks. These SQL commands are mainly categorized into four categories as: 1.
    [Show full text]
  • Chapter 11 Querying
    Oracle TIGHT / Oracle Database 11g & MySQL 5.6 Developer Handbook / Michael McLaughlin / 885-8 Blind folio: 273 CHAPTER 11 Querying 273 11-ch11.indd 273 9/5/11 4:23:56 PM Oracle TIGHT / Oracle Database 11g & MySQL 5.6 Developer Handbook / Michael McLaughlin / 885-8 Oracle TIGHT / Oracle Database 11g & MySQL 5.6 Developer Handbook / Michael McLaughlin / 885-8 274 Oracle Database 11g & MySQL 5.6 Developer Handbook Chapter 11: Querying 275 he SQL SELECT statement lets you query data from the database. In many of the previous chapters, you’ve seen examples of queries. Queries support several different types of subqueries, such as nested queries that run independently or T correlated nested queries. Correlated nested queries run with a dependency on the outer or containing query. This chapter shows you how to work with column returns from queries and how to join tables into multiple table result sets. Result sets are like tables because they’re two-dimensional data sets. The data sets can be a subset of one table or a set of values from two or more tables. The SELECT list determines what’s returned from a query into a result set. The SELECT list is the set of columns and expressions returned by a SELECT statement. The SELECT list defines the record structure of the result set, which is the result set’s first dimension. The number of rows returned from the query defines the elements of a record structure list, which is the result set’s second dimension. You filter single tables to get subsets of a table, and you join tables into a larger result set to get a superset of any one table by returning a result set of the join between two or more tables.
    [Show full text]
  • Using the Set Operators Questions
    UUSSIINNGG TTHHEE SSEETT OOPPEERRAATTOORRSS QQUUEESSTTIIOONNSS http://www.tutorialspoint.com/sql_certificate/using_the_set_operators_questions.htm Copyright © tutorialspoint.com 1.Which SET operator does the following figure indicate? A. UNION B. UNION ALL C. INTERSECT D. MINUS Answer: A. Set operators are used to combine the results of two ormore SELECT statements.Valid set operators in Oracle 11g are UNION, UNION ALL, INTERSECT, and MINUS. When used with two SELECT statements, the UNION set operator returns the results of both queries.However,if there are any duplicates, they are removed, and the duplicated record is listed only once.To include duplicates in the results,use the UNION ALL set operator.INTERSECT lists only records that are returned by both queries; the MINUS set operator removes the second query's results from the output if they are also found in the first query's results. INTERSECT and MINUS set operations produce unduplicated results. 2.Which SET operator does the following figure indicate? A. UNION B. UNION ALL C. INTERSECT D. MINUS Answer: B. UNION ALL Returns the combined rows from two queries without sorting or removing duplicates. sql_certificate 3.Which SET operator does the following figure indicate? A. UNION B. UNION ALL C. INTERSECT D. MINUS Answer: C. INTERSECT Returns only the rows that occur in both queries' result sets, sorting them and removing duplicates. 4.Which SET operator does the following figure indicate? A. UNION B. UNION ALL C. INTERSECT D. MINUS Answer: D. MINUS Returns only the rows in the first result set that do not appear in the second result set, sorting them and removing duplicates.
    [Show full text]
  • SQL Version Analysis
    Rory McGann SQL Version Analysis Structured Query Language, or SQL, is a powerful tool for interacting with and utilizing databases through the use of relational algebra and calculus, allowing for efficient and effective manipulation and analysis of data within databases. There have been many revisions of SQL, some minor and others major, since its standardization by ANSI in 1986, and in this paper I will discuss several of the changes that led to improved usefulness of the language. In 1970, Dr. E. F. Codd published a paper in the Association of Computer Machinery titled A Relational Model of Data for Large shared Data Banks, which detailed a model for Relational database Management systems (RDBMS) [1]. In order to make use of this model, a language was needed to manage the data stored in these RDBMSs. In the early 1970’s SQL was developed by Donald Chamberlin and Raymond Boyce at IBM, accomplishing this goal. In 1986 SQL was standardized by the American National Standards Institute as SQL-86 and also by The International Organization for Standardization in 1987. The structure of SQL-86 was largely similar to SQL as we know it today with functionality being implemented though Data Manipulation Language (DML), which defines verbs such as select, insert into, update, and delete that are used to query or change the contents of a database. SQL-86 defined two ways to process a DML, direct processing where actual SQL commands are used, and embedded SQL where SQL statements are embedded within programs written in other languages. SQL-86 supported Cobol, Fortran, Pascal and PL/1.
    [Show full text]
  • “A Relational Model of Data for Large Shared Data Banks”
    “A RELATIONAL MODEL OF DATA FOR LARGE SHARED DATA BANKS” Through the internet, I find more information about Edgar F. Codd. He is a mathematician and computer scientist who laid the theoretical foundation for relational databases--the standard method by which information is organized in and retrieved from computers. In 1981, he received the A. M. Turing Award, the highest honor in the computer science field for his fundamental and continuing contributions to the theory and practice of database management systems. This paper is concerned with the application of elementary relation theory to systems which provide shared access to large banks of formatted data. It is divided into two sections. In section 1, a relational model of data is proposed as a basis for protecting users of formatted data systems from the potentially disruptive changes in data representation caused by growth in the data bank and changes in traffic. A normal form for the time-varying collection of relationships is introduced. In Section 2, certain operations on relations are discussed and applied to the problems of redundancy and consistency in the user's model. Relational model provides a means of describing data with its natural structure only--that is, without superimposing any additional structure for machine representation purposes. Accordingly, it provides a basis for a high level data language which will yield maximal independence between programs on the one hand and machine representation and organization of data on the other. A further advantage of the relational view is that it forms a sound basis for treating derivability, redundancy, and consistency of relations.
    [Show full text]
  • Relational Algebra and SQL Relational Query Languages
    Relational Algebra and SQL Chapter 5 1 Relational Query Languages • Languages for describing queries on a relational database • Structured Query Language (SQL) – Predominant application-level query language – Declarative • Relational Algebra – Intermediate language used within DBMS – Procedural 2 1 What is an Algebra? · A language based on operators and a domain of values · Operators map values taken from the domain into other domain values · Hence, an expression involving operators and arguments produces a value in the domain · When the domain is a set of all relations (and the operators are as described later), we get the relational algebra · We refer to the expression as a query and the value produced as the query result 3 Relational Algebra · Domain: set of relations · Basic operators: select, project, union, set difference, Cartesian product · Derived operators: set intersection, division, join · Procedural: Relational expression specifies query by describing an algorithm (the sequence in which operators are applied) for determining the result of an expression 4 2 The Role of Relational Algebra in a DBMS 5 Select Operator • Produce table containing subset of rows of argument table satisfying condition σ condition (relation) • Example: σ Person Hobby=‘stamps’(Person) Id Name Address Hobby Id Name Address Hobby 1123 John 123 Main stamps 1123 John 123 Main stamps 1123 John 123 Main coins 9876 Bart 5 Pine St stamps 5556 Mary 7 Lake Dr hiking 9876 Bart 5 Pine St stamps 6 3 Selection Condition • Operators: <, ≤, ≥, >, =, ≠ • Simple selection
    [Show full text]
  • Uniform Data Access Platform for SQL and Nosql Database Systems
    Information Systems 69 (2017) 93–105 Contents lists available at ScienceDirect Information Systems journal homepage: www.elsevier.com/locate/is Uniform data access platform for SQL and NoSQL database systems ∗ Ágnes Vathy-Fogarassy , Tamás Hugyák University of Pannonia, Department of Computer Science and Systems Technology, P.O.Box 158, Veszprém, H-8201 Hungary a r t i c l e i n f o a b s t r a c t Article history: Integration of data stored in heterogeneous database systems is a very challenging task and it may hide Received 8 August 2016 several difficulties. As NoSQL databases are growing in popularity, integration of different NoSQL systems Revised 1 March 2017 and interoperability of NoSQL systems with SQL databases become an increasingly important issue. In Accepted 18 April 2017 this paper, we propose a novel data integration methodology to query data individually from different Available online 4 May 2017 relational and NoSQL database systems. The suggested solution does not support joins and aggregates Keywords: across data sources; it only collects data from different separated database management systems accord- Uniform data access ing to the filtering options and migrates them. The proposed method is based on a metamodel approach Relational database management systems and it covers the structural, semantic and syntactic heterogeneities of source systems. To introduce the NoSQL database management systems applicability of the proposed methodology, we developed a web-based application, which convincingly MongoDB confirms the usefulness of the novel method. Data integration JSON ©2017 Elsevier Ltd. All rights reserved. 1. Introduction solution to retrieve data from heterogeneous source systems and to deliver them to the user.
    [Show full text]
  • IEEE Paper Template in A4 (V1)
    International Journal of Electrical Electronics & Computer Science Engineering Special Issue - NCSCT-2018 | E-ISSN : 2348-2273 | P-ISSN : 2454-1222 March, 2018 | Available Online at www.ijeecse.com Structural and Non-Structural Query Language Vinayak Sharma1, Saurav Kumar Jha2, Shaurya Ranjan3 CSE Department, Poornima Institute of Engineering and Technology, Jaipur, Rajasthan, India [email protected], [email protected], [email protected] Abstract: The Database system is rapidly increasing and it The most important categories are play an important role in all commercial-scientific software. In the current scenario every field work is related to DDL (Data Definition Language) computer they store their data in the database. Using DML (Data Manipulation Language) database helps to maintain the large records. This paper aims to summarize the different database and their usage in DQL (Data Query Language) IT field. In company database is more appropriate or more 1. Data Definition Language: Data Definition suitable to store the data. Language, DDL, is the subset of SQL that are used by a Keywords: DBS, Database Management Systems-DBMS, database user to create and built the database objects, Database-DB, Programming Language, Object-Oriented examples are deletion or the creation of a table. Some of System. the most Properties of DDL commands discussed I. INTRODUCTION below: CREATE TABLE The database system is used to develop the commercial- scientific application with database. The application DROP INDEX requires set of element for collection transmission, ALTER INDEX storage and processing of data with computer. Database CREATE VIEW system allow the database develop application. This ALTER TABLE paper deal with the features of Nosql and need of Nosql in the market.
    [Show full text]
  • Best Practices Managing XML Data
    ® IBM® DB2® for Linux®, UNIX®, and Windows® Best Practices Managing XML Data Matthias Nicola IBM Silicon Valley Lab Susanne Englert IBM Silicon Valley Lab Last updated: January 2011 Managing XML Data Page 2 Executive summary ............................................................................................. 4 Why XML .............................................................................................................. 5 Pros and cons of XML and relational data ................................................. 5 XML solutions to relational data model problems.................................... 6 Benefits of DB2 pureXML over alternative storage options .................... 8 Best practices for DB2 pureXML: Overview .................................................. 10 Sample scenario: derivative trades in FpML format............................... 11 Sample data and tables................................................................................ 11 Choosing the right storage options for XML data......................................... 16 Selecting table space type and page size for XML data.......................... 16 Different table spaces and page size for XML and relational data ....... 16 Inlining and compression of XML data .................................................... 17 Guidelines for adding XML data to a DB2 database .................................... 20 Inserting XML documents with high performance ................................ 20 Splitting large XML documents into smaller pieces ..............................
    [Show full text]
  • Chapter 2 – Object-Relational Views and Composite Types Outline
    Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 [email protected] Chapter 2 – Object-Relational Views and Composite Types Recent Developments for Data Models Outline Overview I. Object-Relational Database Concepts 1. User-defined Data Types and Typed Tables 2. Object-relational Views and Composite Types 3. User-defined Routines and Object Behavior 4. Application Programs and Object-relational Capabilities 5. Object-relational SQL and Java II. Online Analytic Processing 6. Data Analysis in SQL 7. Windows and Query Functions in SQL III. XML 8. XML and Databases 9. SQL/XML 10. XQuery IV. More Developments (if there is time left) temporal data models, data streams, databases and uncertainty, … 2 © Prof.Dr.-Ing. Stefan Deßloch Recent Developments for Data Models 1 The "Big Picture" Client DB Server Server-side dynamic SQL Logic SQL99/2003 JDBC 2.0 SQL92 static SQL SQL OLB stored procedures ANSI SQLJ Part 1 user-defined functions SQL Routines ISO advanced datatypes PSM structured types External Routines subtyping methods SQLJ Part 2 3 © Prof.Dr.-Ing. Stefan Deßloch Recent Developments for Data Models Objects Meet Databases (Atkinson et. al.) Object-oriented features to be supported by an (OO)DBMS ; Extensibility user-defined types (structure and operations) as first class citizens strengthens some capabilities defined above (encapsulation, types) ; Object identity object exists independent of its value (i.e., identical ≠ equal) ; Types and classes "abstract data types", static type checking class as an "object factory", extension (i.e., set of "instances") ? Type or class and view hierarchies inheritance, specialization ? Complex objects type constructors: tuple, set, list, array, … Encapsulation separate specification (interface) from implementation Overloading, overriding, late binding same name for different operations or implementations Computational completeness use DML to express any computable function (-> method implementation) 4 © Prof.Dr.-Ing.
    [Show full text]
  • IVOA Astronomical Data Query Language Version
    International Virtual Observatory Alliance IVOA Astronomical Data Query Language Version 2.0 IVOA Recommendation 30 Oct 2008 This version: 2.0 Latest version: http://www.ivoa.net/Documents/latest/ADQL.html Previous version(s): 2.0-20081028 Editor(s): Pedro Osuna and Inaki Ortiz Author(s): Inaki Ortiz, Jeff Lusted, Pat Dowler, Alexander Szalay, Yuji Shirasaki, Maria A. Nieto- Santisteban, Masatoshi Ohishi, William O’Mullane, Pedro Osuna, the VOQL-TEG and the VOQL Working Group. Abstract This document describes the Astronomical Data Query Language (ADQL). ADQL has been developed based on SQL92. This document describes the subset of the SQL grammar supported by ADQL. Special restrictions and extensions to SQL92 have been defined in order to support generic and astronomy specific operations. 1 Status of This Document This document has been produced by the VO Query Language Working Group. It has been reviewed by IVOA Members and other interested parties, and has been endorsed by the IVOA Executive Committee as an IVOA Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. IVOA's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability inside the Astronomical Community. Please note that version 1.0 was never promoted to Proposed Recommendation. A list of current IVOA Recommendations and other technical documents can be found at http://www.ivoa.net/Documents/.
    [Show full text]
  • On the Logic of SQL Nulls
    On the Logic of SQL Nulls Enrico Franconi and Sergio Tessaris Free University of Bozen-Bolzano, Italy lastname @inf.unibz.it Abstract The logic of nulls in databases has been subject of invest- igation since their introduction in Codd's Relational Model, which is the foundation of the SQL standard. In the logic based approaches to modelling relational databases proposed so far, nulls are considered as representing unknown values. Such existential semantics fails to capture the behaviour of the SQL standard. We show that, according to Codd's Relational Model, a SQL null value represents a non-existing value; as a consequence no indeterminacy is introduced by SQL null values. In this paper we introduce an extension of first-order logic accounting for predicates with missing arguments. We show that the domain inde- pendent fragment of this logic is equivalent to Codd's relational algebra with SQL nulls. Moreover, we prove a faithful encoding of the logic into standard first-order logic, so that we can employ classical deduction ma- chinery. 1 Relational Databases and SQL Null Values Consider a database instance with null values over the relational schema fR=2g, and a SQL query asking for the tuples in R being equal to themselves: 1 2 1 | 2 SELECT * FROM R ---+--- R : a b WHERE R.1 = R.1 AND R.2 = R.2 ; ) a | b b N (1 row) Figure 1. In SQL, the query above returns the table R if and only if the table R does not have any null value, otherwise it returns just the tuples not containing a null value, i.e., in this case only the first tuple ha; bi.
    [Show full text]