Structured Query Language (SQL) - Cultural View of Technology
Structured Query Language (SQL) - Cultural View of Technology
Structured Query Language (SQL) - Cultural View of Technology
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>SQL</strong> 4<br />
Null and three-valued logic (3VL)<br />
The idea <strong>of</strong> Null was introduced into <strong>SQL</strong> to handle missing information in the relational model. The introduction <strong>of</strong><br />
Null (or Unknown) along with True and False is the foundation <strong>of</strong> three-valued logic. Null does not have a value<br />
(and is not a member <strong>of</strong> any data domain) but is rather a placeholder or “mark” for missing information. Therefore<br />
comparisons with Null can never result in either True or False but always in the third logical result, Unknown. [11]<br />
<strong>SQL</strong> uses Null to handle missing information. It supports three-valued logic (3VL) and the rules governing <strong>SQL</strong><br />
three-valued logic (3VL) are shown below (p and q represent logical states). [12] The word NULL is also a reserved<br />
keyword in <strong>SQL</strong>, used to identify the Null special marker.<br />
Additionally, since <strong>SQL</strong> operators return Unknown when comparing anything with Null, <strong>SQL</strong> provides two<br />
Null-specific comparison predicates: The IS NULL and IS NOT NULL test whether data is or is not Null. [13]<br />
Note that <strong>SQL</strong> returns only results for which the WHERE clause returns a value <strong>of</strong> True. I.e., it excludes results with<br />
values <strong>of</strong> False, but also those whose value is Unknown.<br />
p AND q p<br />
True False Unknown<br />
q True True False Unknown<br />
False False False False<br />
Unknown Unknown False Unknown<br />
p OR q p<br />
True False Unknown<br />
q True True True True<br />
False True False Unknown<br />
Unknown True Unknown Unknown<br />
p NOT p<br />
True False<br />
False True<br />
Unknown Unknown<br />
p = q p<br />
True False Unknown<br />
q True True False Unknown<br />
False False True Unknown<br />
Unknown Unknown Unknown Unknown<br />
Universal quantification is not explicitly supported by <strong>SQL</strong>, and must be worked out as a negated existential<br />
[14] [15] [16]<br />
quantification.<br />
There is also the " IS DISTINCT FROM " infixed comparison<br />
operator which returns TRUE unless both operands are equal or both are NULL. Likewise, IS NOT DISTINCT<br />
FROM is defined as "NOT ( IS DISTINCT FROM ")<br />
Data manipulation<br />
The Data Manipulation <strong>Language</strong> (DML) is the subset <strong>of</strong> <strong>SQL</strong> used to add, update and delete data:<br />
• INSERT adds rows (formally tuples) to an existing table, e.g.,:<br />
INSERT INTO My_table<br />
VALUES<br />
(field1, field2, field3)<br />
('test', 'N', NULL);<br />
• UPDATE modifies a set <strong>of</strong> existing table rows, e.g.,:<br />
UPDATE My_table<br />
SET field1 = 'updated value'<br />
WHERE field2 = 'N';<br />
• DELETE removes existing rows from a table, e.g.,:<br />
DELETE FROM My_table<br />
WHERE field2 = 'N';<br />
• TRUNCATE deletes all data from a table in a very fast way. It usually implies a subsequent COMMIT operation.