Schemas and Database Objects
58
the generated column. Or the computed values can be declared to be unique, using a UNIQUE constraint on the table.
The computed column cannot be overridden by user supplied values. When a row is updated and the column values
change, the generated columns are computed with the new values.
When a row is inserted into a table, or an existing row is updated, no value except DEFAULT can be specified for a
generated column. In the example below, data is inserted into the non-generated columns and the generated column
will contain 'Felix the Cat' or 'Pink Panther'.
CREATE TABLE t (id INTEGER PRIMARY KEY, 
firstname VARCHAR(20),
lastname VARCHAR(20), 
fullname VARCHAR(40) GENERATED ALWAYS AS (firstname || ' ' || lastname)) 
INSERT INTO t (id, firstname, lastname) VALUES (1, 'Felix', 'the Cat')
INSERT INTO t (id, firstname, lastname, fullname) VALUES (2, 'Pink', 'Panther', DEFAULT)
DEFAULT
default clause
A default clause can be used if GENERATED is not specified. If a column has a <default clause> then it is
possible to insert a row into the table without specifying a value for the column.
<default clause> ::= DEFAULT <default option>
<default option> ::= <literal> | <datetime value function> | USER | CURRENT_USER
| CURRENT_ROLE | SESSION_USER | SYSTEM_USER | CURRENT_CATALOG | CURRENT_SCHEMA
| CURRENT_PATH | NULL
The type of the <default option> must match the type of the column.
In PGS (PostgreSQL) compatibility mode, a NEXTVAL function can be used. Also, in MSS compatibility mode, the
default value can be enclosed in parentheses.
CONSTRAINT
constraint name and characteristics
<constraint name definition> ::= CONSTRAINT <constraint name>
<constraint characteristics> ::= <constraint check time> [ [ NOT ] DEFERRABLE
[ <constraint check time> ] ]
<constraint check time> ::= INITIALLY DEFERRED | INITIALLY IMMEDIATE
Specify the name of a constraint and its characteristics. By default the constraint is NOT  DEFERRABLE and
INITIALLY IMMEDIATE. This means the constraint is enforced as soon as a data change statement is executed. If
INITIALLY DEFERRED is specified, then the constraint is enforced when the session commits. The characteristics
must be compatible. The constraint check time can be changed temporarily for an SQL session. HyperSQL does not
support deferring constraint enforcement. This feature of the SQL Standard has been criticised because it allows a
session to read uncommitted data that violates database integrity constraints but has not yet been checked.
CONSTRAINT
table constraint definition
<table  constraint  definition>  ::=  [  <constraint  name  definition>  ]  <table
constraint> [ <constraint characteristics> ]
Pdf thumbnail viewer - application software cloud:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Pdf thumbnail viewer - application software cloud:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
Schemas and Database Objects
59
<table constraint> ::= <unique constraint definition> | <referential constraint
definition> | <check constraint definition>
Three kinds of constraint can be defined on a table: UNIQUE (including PRIMARY KEY), FOREIGN KEY and
CHECK. Each kind has its own rules to limit the values that can be specified for different columns in each row of
the table.
UNIQUE
unique constraint definition
<unique constraint definition> ::= <unique specification> <left paren> <unique
column list> <right paren> | UNIQUE ( VALUE )
<unique specification> ::= UNIQUE | PRIMARY KEY
<unique column list> ::= <column name list>
A unique constraint is specified on a single column or on multiple columns. On each set of columns taken together,
only one UNIQUE constraint can be specified. Each column of a PRIMARY KEY constraint has an implicit NOT
NULL constraint.
If UNIQUE( VALUE ) is specified, the constraint created on all columns of the table.
FOREIGN KEY
referential constraint definition
<referential constraint definition> ::= FOREIGN KEY <left paren> <referencing
columns> <right paren> <references specification>
<references specification> ::= REFERENCES <referenced table and columns> [ MATCH
<match type> ] [ <referential triggered action> ]
<match type> ::= FULL | PARTIAL | SIMPLE
<referencing columns> ::= <reference column list>
<referenced table and columns> ::= <table name> [ <left paren> <reference column
list> <right paren> ]
<reference column list> ::= <column name list>
<referential triggered action> ::= <update rule> [ <delete rule> ] | <delete
rule> [ <update rule> ]
<update rule> ::= ON UPDATE <referential action>
<delete rule> ::= ON DELETE <referential action>
<referential action> ::= CASCADE | SET NULL | SET DEFAULT | RESTRICT | NO ACTION
A referential  constraint allows  links  to  be  established between  the  rows of  two  tables. The  specified  list  of
<referencing  columns> corresponds one by one to the columns of the specified list of <referenced
columns> in another table (or sometimes in the same table). For each row in the table, a row must exist in the
referenced table with equivalent values in the two column lists. There must exist a single unique constraint in the
referenced table on all the <referenced columns>.
application software cloud:How to C#: Generate Thumbnail for Word
for DNN, C#.NET Winforms Document Viewer, C#.NET WPF Document Viewer. VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Generate Thumbnail for Word
www.rasteredge.com
application software cloud:How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Set Image Thumbnail in C#.NET. XImage.Raster SDK library, you can create an image viewer and view
www.rasteredge.com
Schemas and Database Objects
60
The [  MATCH  match  type  ] clause is optional and has an effect only on multi-column foreign keys and
only on rows containing at least a NULL in one of the <referencing columns>. If the clause is not specified,
MATCH SIMPLE is the default. If MATCH SIMPLE is specified, then any NULL means the row can exist (without
a corresponding row in the referenced table). If MATCH FULL is specified then either all the column values must be
NULL or none of them. MATCH PARTIAL allows any NULL but the non NULL values must match those of a row
in the referenced table. HyperSQL does not support MATCH PARTIAL.
Referential actions are specified with ON UPDATE and ON DELETE clauses. These actions take place when a row
in the referenced table (the parent table) has referencing rows in the referencing table and it is deleted or modified
with any SQL statement. The default is NO ACTION. This means the SQL statement that causes the DELETE or
UPDATE is terminated with an exception. The RESTRICT option is similar and works exactly the same without
deferrable constraints (which are not allowed by HyperSQL). The other three options, CASCADE, SET NULL and
SET DEFAULT all allow the DELETE or UPDATE statement to complete. With DELETE statements the CASCADE
option results in the referencing rows to be deleted. With UPDATE statements, the changes to the values of the
referenced columns are copied to the referencing rows. With both DELETE or UPDATE statement, the SET NULL
option results in the columns of the referencing rows to be set to NULL. Similarly, the SET DEFAULT option results
in the columns of the referencing rows to be set to their default values.
CHECK
check constraint definition
<check constraint definition> ::= CHECK <left paren> <search condition> <right
paren>
A CHECK constraint can exist for a TABLE or for a DOMAIN. The <search condition> evaluates to an SQL
BOOLEAN value for each row of the table. Within the <search condition> all columns of the table row can
be referenced. For all rows of the table, the <search condition> evaluates to TRUE or UNKNOWN. When a
new row is inserted, or an existing row is updated, the <search condition> is evaluated and if it is FALSE,
the insert or update fails.
A CHECK constraint for a DOMAIN is similar. In its <search condition>, the term VALUE is used to represents
the value to which the DOMAIN applies.
CREATE TABLE t (a VARCHAR(20) CHECK (a IS NOT NULL AND CHARACTER_LENGTH(a) > 2))
The search condition of a CHECK constraint cannot contain any function that is not deterministic. A check constraint is
a data integrity constraint, therefore it must hold with respect to the rest of the data in the database. It cannot use values
that are temporal or ephemeral. For example CURRENT_USER is a function that returns different values depending on
who is using the database, or CURRENT_DATE changes day-to-day. Some temporal expressions are retrospectively
deterministic and are allowed in check constraints. For example, (CHECK VALUE < CURRENT_DATE) is valid,
because CURRENT_DATE will not move backwards in time, but (CHECK VALUE > CURRENT_DATE) is not
acceptable.
If you want to enforce the condition that a date value that is inserted into the database belongs to the future (at the time
of insertion), or any similar constraint, then use a TRIGGER with the desired condition.
DROP TABLE
drop table statement
<drop table statement> ::= DROP TABLE [ IF EXISTS ] <table name> [ IF EXISTS ]
<drop behavior>
Destroy a table. The default drop behaviour is RESTRICT and will cause the statement to fail if there is any view,
routine or foreign key constraint that references the table. If <drop behavior> is CASCADE, it causes all schema
application software cloud:How to C#: Generate Thumbnail for PowerPoint
for DNN, C#.NET Winforms Document Viewer, C#.NET WPF Document Viewer. VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET How to C#: Generate Thumbnail for PowerPoint
www.rasteredge.com
application software cloud:VB.NET Image: Program for Creating Thumbnail from Documents and
multiple document and image formats, such as PDF, TIFF, GIF you have a demand of creating thumbnail in any in WinForms and Web Document Image Viewer Installation
www.rasteredge.com
Schemas and Database Objects
61
objects that reference the table to drop. Referencing views are dropped. In the case of foreign key constraints that
reference the table, the constraint is dropped, rather than the TABLE or DOMAIN that contains it.
Table Manipulation
Table manipulation statements change the attributes of tables or modify the objects such as columns and constraints.
SET TABLE CLUSTERED
set table clustered property
<set table clustered statement> ::= SET TABLE <table name> CLUSTERED ON <left
paren> <column name list> <right paren>
Set the row clustering property of a table. The <column name list> is a list of column names that must correspond to
the columns of an existing PRIMARY KEY, UNIQUE or FOREIGN KEY index, or to the columns of a user defined
index. This statement is only valid for CACHED or TEXT tables.
Tables rows are stored in the database files as they are created, sometimes at the end of the file, sometimes in the
middle of the file. After a CHECKPOINT DEFRAG or SHUTDOWN COMPACT, the rows are reordered according
to the primary key of the table, or if there is no primary key, in no particular order.
When several consecutive rows of a table are retrieved during query execution it is more efficient to retrieve rows that
are stored adjacent to one another. After executing this command, nothing changes until a CHECKPOINT DEFRAG
or SHUTDOWN COMPACT or SHUTDOWN SCRIPT is performed. After these operations, the rows are stored in
the specified clustered order. The property is stored in the database and applies to all future reordering of rows. Note
that if extensive inserts or updates are performed on the tables, the rows will get out of order until the next reordering.
SET TABLE TYPE
set table type
<set table type statement> ::= SET TABLE <table name> TYPE { MEMORY | CACHED }
Changes the storage type of an existing table between CACHED and MEMORY types.
Only a user with the DBA role can execute this statement.
SET TABLE writeability
set table write property
<set table read only statement> ::= SET TABLE <table name> { READ ONLY | READ
WRITE }
Set the writeability property of a table. Tables are writeable by default. This statement can be used to change the
property between READ ONLY and READ WRITE. This is a feature of HyperSQL.
SET TABLE SOURCE
set table source statement
<set table source statement> ::= SET TABLE <table name> SOURCE <file and options>
[DESC]
<file and  options>::= <doublequote>  <file path>  [<semicolon> <property>...]
<doublequote>
application software cloud:How to C#: Generate Thumbnail for Raster
for DNN, C#.NET Winforms Document Viewer, C#.NET WPF Document Viewer. VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET How to C#: Generate Thumbnail for Raster.
www.rasteredge.com
application software cloud:Create Thumbnail in Web Image Viewer | Online Tutorials
Web Image Viewer Installation; View and Display Images; Annotate & Redact Documents or Images; Create Thumbnail; RasterEdge OCR Engine; PDF Reading; Encode & Decode
www.rasteredge.com
Schemas and Database Objects
62
Set the text source for a text table. This statement cannot be used for tables that are not defined as TEXT TABLE.
Supported Properties
quoted = { true | false }
default is true. If false, treats double quotes as normal characters
all_quoted = { true | false }
default is false. If true, adds double quotes around all fields.
encoding = <encoding name>
character encoding for text and character fields, for example, encoding=UTF-8.
UTF-16 cannot be used.
ignore_first = { true | false }
default is false. If true ignores the first line of the file
cache_rows= <numeric value>
rows of the text file in the cache. Default is 1000 rows
cache_size = <numeric value>r
total size of the row in the cache. Default is 100 KB.
cache_scale= <numeric value>
and cache_size_scale = <numeric
value>
deprecated  properties,  replaced  by cached_rows  and cache_size  properties
above.
fs = <unquoted character>
field separator
vs = <unquoted character>
varchar separator
Special indicators for HyperSQL Text Table separators
\semi
semicolon
\quote
quote
\space
space character
\apos
apostrophe
\n
newline - Used as an end anchor (like $ in regular expressions)
\r
carriage return
\t
tab
\\
backslash
\u####
a Unicode character specified in hexadecimal
In the example below, the text source of the table is set to "myfile", the field separator to the pipe symbol, and the
varchar separator to the tilde symbol.
SET TABLE mytable SOURCE 'myfile;fs=|;vs=.;vs=~'
Only a user with the DBA role can execute this statement.
SET TABLE SOURCE HEADER
set table source header statement
<set table source header statement> ::= SET TABLE <table name> SOURCE HEADER
<header string>
application software cloud:C# Image: Quick to Navigate Document in .NET Web Viewer
To set the specific size for thumbnail image in Web to the target part of web viewer document by of the well-formed documents, like Word and PDF, will contain
www.rasteredge.com
application software cloud:How to C#: Overview of Using XImage.Raster
test. OR create a WinForms Viewer. Basic SDK Concept. Refer navigation. You may edit the tiff document easily. Create Thumbnail. See
www.rasteredge.com
Schemas and Database Objects
63
Set the header for the text source for a text table. If this command is used, the <header string> is used as the
first line of the source file of the text table. This line is not part of the table data. Only a user with the DBA role can
execute this statement.
SET TABLE SOURCE on-off
set table source on-off statement
<set table source on-off statement> ::= SET TABLE <table name> SOURCE { ON | OFF }
Attach or detach a text table from its text source. This command does not change the properties or the name of the file
that is the source of a text table. When OFF is specified, the command detaches the table from its source and closes
the file for the source. In this state, it is not possible to read or write to the table. This allows the user to replace the
file with a different file, or delete it. When ON is specified, the source file is read. Only a user with the DBA role
can execute this statement
ALTER TABLE
alter table statement
<alter table statement> ::= ALTER TABLE <table name> <alter table action>
<alter table action> ::= <add column definition> | <alter column definition>
| <drop column definition> | <add table constraint definition> | <drop table
constraint definition>
Change the definition of a table. Specific types of this statement are covered below.
ADD COLUMN
add column definition
<add column definition> ::= ADD [ COLUMN ] <column definition> [ BEFORE <other
column name> ]
Add a column to an existing table. The <column definition> is specified the same way as it is used in <table
definition>. HyperSQL allows the use of [ BEFORE <other column name> ] to specify at which position
the new column is added to the table.
If the  table  contains rows,  the new column  must have a <default  clause> or use one of the  forms of
GENERATED. The column values for each row is then filled with the result of the <default clause> or the
generated value.
DROP COLUMN
drop column definition
<drop column definition> ::= DROP [ COLUMN ] <column name> <drop behavior>
Destroy a column of a base table. The <drop behavior> is either RESTRICT or CASCADE. If the column is
referenced in a table constraint that references other columns as well as this column, or if the column is referenced
in a VIEW, or the column is referenced in a TRIGGER, then the statement will fail if RESTRICT is specified. If
CASCADE is specified, then any CONSTRAINT, VIEW or TRIGGER object that references the column is dropped
with a cascading effect.
ADD CONSTRAINT
add table constraint definition
Schemas and Database Objects
64
<add table constraint definition> ::= ADD <table constraint definition>
Add a constraint to a table. The existing rows of the table must conform to the added constraint, otherwise the statement
will not succeed.
DROP CONSTRAINT
drop table constraint definition
<drop table constraint definition> ::= DROP CONSTRAINT <constraint name> <drop
behavior>
Destroy a constraint on a table. The <drop behavior> has an effect only on UNIQUE and PRIMARY KEY
constraints. If such a constraint is referenced by a FOREIGN KEY constraint, the FOREIGN KEY constraint will be
dropped if CASCADE is specified. If the columns of such a constraint are used in a GROUP BY clause in the query
expression of a VIEW or another kind of schema object, and a functional dependency relationship exists between these
columns and the other columns in that query expression, then the VIEW or other schema object will be dropped when
CASCADE is specified.
ALTER COLUMN
alter column definition
<alter column definition> ::= ALTER [ COLUMN ] <column name> <alter column
action>
<alter column action> ::= <set column default clause> | <drop column default
clause> | <alter column data type clause> | <alter identity column specification>
|  <alter column  nullability>  | <alter  column name>  |  <add column  identity
specification> | <drop column identity specification>
Change a column and its definition. Specific types of this statement are covered below. See also the RENAME
statement above.
SET DEFAULT
set column default clause
<set column default clause> ::= SET <default clause>
Set the default clause for a column. This can be used if the column is not defined as GENERATED.
DROP DEFAULT
drop column default clause
<drop column default clause> ::= DROP DEFAULT
Drop the default clause from a column.
SET DATA TYPE
alter column data type clause
<alter column data type clause> ::= SET DATA TYPE <data type>
Change the declared type of a column. The latest SQL Standard allows only changes to type properties such as
maximum length, precision, or scale, and only changes that cause the property to enlarge. HyperSQL allows changing
the type if all the existing values can be cast into the new type without string truncation or loss of significant digits.
Schemas and Database Objects
65
alter column add identity generator
alter column add identity generator
<add column identity generator> ::= <identity column specification>
Adds an identity specification to the column. The type of the column must be an integral type and the existing values
must not include nulls. This option is specific to HyperSQL
ALTER TABLE mytable ALTER COLUMN id GENERATED ALWAYS AS IDENTITY (START WITH 20000)
alter column identity generator
alter identity column specification
<alter identity column specification> ::= <alter identity column option>...
<alter identity column option> ::= <alter sequence generator restart option> |
SET <basic sequence generator option>
Change the properties of an identity column. This command is similar to the commands used for changing the properties
of named SEQUENCE objects discussed earlier and can use the same options.
ALTER TABLE mytable ALTER COLUMN id RESTART WITH 1000
ALTER TABLE mytable ALTER COLUMN id SET INCREMENT BY 5
DROP GENERATED
drop column identity generator
<drop column identity specification> ::= DROP GENERATED
Removes the identity generator from a column. After executing this statement, the column values are no longer
generated automatically. This option is specific to HyperSQL
ALTER TABLE mytable ALTER COLUMN id DROP GENERATED
SET [ NOT ] NULL
alter column nullability
<alter column nullability> ::= SET [ NOT ] NULL
Adds or removes a NOT NULL constraint from a column. This option is specific to HyperSQL
View Creation and Manipulation
CREATE VIEW
view definition
<view definition> ::= CREATE VIEW <table name> <view specification> AS <query
expression> [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
<view specification> ::= [ <left paren> <view column list> <right paren> ]
Schemas and Database Objects
66
<view column list> ::= <column name list>
Define a view. The <query expression> is a SELECT or similar statement. The <view column list>
is the list of unique names for the columns of the view. The number of columns in the <view column list>
must match the number of columns returned by the <query expression>. If <view column list> is not
specified, then the columns of the <query expression> should have unique names and are used as the names
of the view column.
Some views are updatable. As covered elsewhere, an updatable view is based on a single table or updatable view.
For updatable views, the optional CHECK OPTION clause can be specified. If this option is specified, then if a row
of the view is updated or a new row is inserted into the view, then it should contain such values that the row would
be included in the view after the change. If WITH CASCADED CHECK OPTION is specified, then if the <query
expression> of the view references another view, then the search condition of the underlying view should also be
satisfied by the update or insert operation.
DROP VIEW
drop view statement
<drop view statement> ::= DROP VIEW [ IF EXISTS ] <table name> [ IF EXISTS ]
<drop behavior>
Destroy a view. The <drop behavior> is similar to dropping a table.
ALTER VIEW
alter view statement
<alter view statement>  ::= ALTER VIEW <table name>  <view specification> AS
<query expression> [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
Alter a view. The statement is otherwise identical to CREATE VIEW. The new definition replaces the old. If there
are database objects such as routines or views that reference the view, then these objects are recompiled with the new
view definition. If the new definition is not compatible, the statement fails.
Domain Creation and Manipulation
CREATE DOMAIN
domain definition
<domain definition> ::= CREATE DOMAIN <domain name> [ AS ] <predefined type>
[ <default clause> ] [ <domain constraint>... ] [ <collate clause> ]
<domain  constraint> ::=  [ <constraint  name definition>  ] <check  constraint
definition> [ <constraint characteristics> ]
Define a domain. Although a DOMAIN is not strictly a type in the SQL Standard, it can be informally considered as
a type. A DOMAIN is based on a <predefined type>, which is a base type defined by the Standard. It can have
a <default clause>, similar to a column default clause. It can also have one or more CHECK constraints which
limit the values that can be assigned to a column or variable that has the DOMAIN as its type.
CREATE DOMAIN valid_string AS VARCHAR(20) DEFAULT 'NO VALUE' CHECK (value IS NOT NULL AND
CHARACTER_LENGTH(value) > 2) 
ALTER DOMAIN
Schemas and Database Objects
67
alter domain statement
<alter domain statement> ::= ALTER DOMAIN <domain name> <alter domain action>
<alter domain action> ::= <set domain default clause> | <drop domain default
clause>  |  <add  domain  constraint  definition>  |  <drop  domain  constraint
definition>
Change a domain and its definition.
SET DEFAULT
set domain default clause
<set domain default clause> ::= SET <default clause>
Set the default value in a domain.
DROP DEFAULT
drop domain default clause
<drop domain default clause> ::= DROP DEFAULT
Remove the default clause of a domain.
ADD CONSTRAINT
add domain constraint definition
<add domain constraint definition> ::= ADD <domain constraint>
Add a constraint to a domain.
DROP CONSTRAINT
drop domain constraint definition
<drop domain constraint definition> ::= DROP CONSTRAINT <constraint name>
Destroy a constraint on a domain. If the <drop behavior> is CASCADE, and the constraint is a UNIQUE constraint
which is referenced by a FOREIGN KEY constraint on another table, then the FOREIGN KEY constraint is also
dropped.
DROP DOMAIN
drop domain statement
<drop domain statement> ::= DROP DOMAIN <domain name> <drop behavior>
Destroy a domain. If <drop behavior> is CASCADE, it works differently from most other objects. If a table
features a column of the specified DOMAIN, the column survives and inherits the DEFAULT CLAUSE, and the
CHECK CONSTRAINT of the DOMAIN.
Trigger Creation
CREATE TRIGGER
Documents you may be interested
Documents you may be interested