Creates a database consisting of several operating system files.
CREATE DATABASE db-name … [ [ TRANSACTION ] { LOG ON [ log-file-name ] [ MIRROR mirror-file-name ] } ] … [ CASE { RESPECT | IGNORE } ] … [ PAGE SIZE catalog-page-size ] … [ COLLATION collation-label[( collation-tailoring-string ) ] ] … [ ENCRYPTED {algorithm-key-spec | OFF } ] … [ BLANK PADDING ON ] … [ JCONNECT { ON | OFF } ] … [ IQ PATH iq-file-name ] … [ IQ SIZE iq-file-size ] … [ IQ PAGE SIZE iq-page-size ] … [ BLOCK SIZE block-size ] … [ IQ RESERVE sizeMB ] … [ TEMPORARY RESERVE sizeMB ] … [ MESSAGE PATH message-file-name ] … [ TEMPORARY PATH temp-file-name ] … [ TEMPORARY SIZE temp-db-size ] … [ DBA USER userid ] … [ DBA PASSWORD password ] … [ SYSTEM PROCEDURE AS DEFINER {ON | OFF} ] file-name: db-name | log-file-name | mirror-file-name | iq-file-name | message-file-name | temp-file-name catalog-page-size (bytes): { 4096 | 8192 | 16384 | 32768 } iq-page-size (bytes): { 65536 | 131072 | 262144 | 524288 } block-size (bytes): { 4096 | 8192 | 16384 | 32768 } collation-label: string collation-tailoring-string: keyword=value collation-tailoring-string: keyword=value algorithm-key-spec: ON | [ ON ] KEY key [ ALGORITHM AES-algorithm ] | [ ON ] ALGORITHM AES-algorithm KEY key | [ ON ] ALGORITHM ‘SIMPLE’ AES-algorithm: ‘AES’ | ‘AES256’ | ‘AES_FIPS’ | ‘AES256_FIPS’ key: quoted string
You can choose the collation from a list of supported collations. For SQL Anywhere databases created on an SAP Sybase IQ server, the collation can also be the Unicode Collation Algorithm (UCA). If UCA is specified, also specify the ENCODING clause. SAP Sybase IQ does not support any of the UCA-based collations for IQ databases. If a UCA-based collation is specified in the CREATE DATABASE statement for a database, the server returns the error UCA collation is not supported and database creation fails. A collation sequence cannot be changed after the database is created.
Optionally, you can specify collation tailoring options (collation-tailoring-string) for additional control over the sorting and comparing of characters. These options take the form of keyword=value pairs, assembled in parentheses, following the collation name.
Collation tailoring options for SAP Sybase IQ contains the supported keyword, allowed alternate forms, and allowed values for the collation tailoring option (collation-tailoring-string) for an SAP Sybase IQ database.
Keyword | Collation | Alternate Forms | Allowed Values |
---|---|---|---|
CaseSensitivity | All supported collations | CaseSensitive, Case |
|
Simple encryption is equivalent to obfuscation. The data is unreadable, but someone with cryptographic expertise could decipher the data. For simple encryption, specify the CREATE DATABASE clause ENCRYPTED ON ALGORITHM ‘SIMPLE’, ENCRYPTED ALGORITHM ‘SIMPLE’, or specify the ENCRYPTED ON clause without specifying an algorithm or key.
Strong encryption is achieved through the use of a 128-bit algorithm and a security key. The data is unreadable and virtually undecipherable without the key. For strong encryption, specify the CREATE DATABASE clause ENCRYPTED ON ALGORITHM with a 128-bit or 256-bit AES algorithm and use the KEY clause to specify an encryption key. You should choose a value for your key that is at least 16 characters long, contains a mix of uppercase and lowercase, and includes numbers, letters, and special characters.
This encryption key is required each time you start the database.
If you omit the IQ PATH clause, specifying any of these options generates an error: IQ SIZE, IQ PAGE SIZE, BLOCK SIZE, MESSAGE PATH, TEMPORARY PATH, and TEMPORARY SIZE.
IQ PAGE SIZE | IQ SIZE Default | TEMPORARY SIZE Default | Minimum Explicit IQ SIZE | Minimum Explicit TEMPORARY SIZE |
---|---|---|---|---|
65536 | 4096000 | 2048000 | 4MB | 2MB |
131072 | 8192000 | 4096000 | 8MB | 4MB |
262144 | 16384000 | 8192000 | 16MB | 8MB |
524288 | 32768000 | 16384000 | 32MB | 16MB |
ON means that pre-16.0 privileged system procedures execute with the privileges of the definer. 16.0 or later privileged system procedures execute with the privileges of the invoker.
CREATE DATABASE 'C:\\s1\\data\\mydb' BLANK PADDING ON IQ PATH 'C:\\s1\\data' IQ SIZE 2000 IQ PAGE SIZE 131072
CREATE DATABASE '/s1/data/bigdb' IQ PATH '/dev/md/rdsk/bigdb' MESSAGE PATH '/s1/data/bigdb.iqmsg' TEMPORARY PATH '/dev/md/rdsk/bigtmp'
CREATE DATABASE 'company' IQ PATH '\\\\.\\E:' JCONNECT OFF IQ SIZE 40
CREATE DATABASE 'marvin.db' BLANK PADDING ON CASE RESPECT COLLATION 'ISO_BINENG' IQ PATH '/filesystem/marvin.main1' IQ SIZE 6400 IQ PAGE SIZE 262144 TEMPORARY PATH '/filesystem/marvin.temp1' TEMPORARY SIZE 3200 ENCRYPTED ON KEY 'is!seCret' ALGORITHM 'AES'
Creates a database with the supplied name and attributes. The IQ PATH clause is required for creating the SAP Sybase IQ database; otherwise, you create a standard SQL Anywhere database.
When SAP Sybase IQ creates a database, it automatically generates four database files to store different types of data that constitute a database. Each file corresponds to a dbspace, the logical name by which SAP Sybase IQ identifies database files:
db-name.db is the file that holds the catalog dbspace, SYSTEM. It contains the system tables and stored procedures describing the database and any standard SQL Anywhere database objects you add. If you do not include the .db extension, SAP Sybase IQ adds it. This initial dbspace contains the catalog store, and you can later add dbspaces to increase its size. It cannot be created on a raw partition.
db-name.iq is the default name of the file that holds the main data dbspace, IQ_SYSTEM_MAIN, which contains the IQ tables and indexes. You can specify a different file name with the IQ PATH clause. This initial dbspace contains the IQ store.
The administrator can allow user tables to be created in IQ_SYSTEM_MAIN, especially if these tables are small, important tables. However, it is more common that immediately after creating the database, the administrator creates a second main dbspace, revokes create privilege in dbspace IQ_SYSTEM_MAIN from all users, grants create privilege on the new main dbspace to selected users, and sets PUBLIC.default_dbspace to the new main dbspace.
db-name.iqtmp is the default name of the file that holds the initial temporary dbspace, IQ_SYSTEM_TEMP. It contains the temporary tables generated by certain queries. The required size of this file can vary depending on the type of query and amount of data. You can specify a different name using the TEMPORARY PATH clause. This initial dbspace contains the temporary store.
db-name.iqmsg is the default name of the file that contains the messages trace dbspace, IQ_SYSTEM_MSG. You can specify a different file name using the MESSAGE PATH clause.
In addition to these files, a database has a transaction log file (db-name.log), and might have a transaction log mirror file.
File names and the CREATE DATABASE statement:
In Windows, if you specify a path, any backslash characters (\) must be doubled if they are followed by an n or an x. This prevents them being interpreted as a newline character (\n) or as a hexadecimal number (\x), according to the rules for strings in SQL. It is safer to always double the backslash. For example:
CREATE DATABASE 'c:\\sybase\\mydb.db' LOG ON 'e:\\logdrive\\mydb.log' JCONNECT OFF IQ PATH 'c:\\sybase\\mydb' IQ SIZE 40
The catalog store file (db-name.db) is created relative to the working directory of the server.
The IQ store, temporary store, and message log files are created in the same directory as, or relative to, the catalog store.
Relative path names are recommended.
Symbolic links to raw devices can have meaningful names, while the actual device name syntax can be obscure.
A symbolic name might eliminate problems restoring a database file that was moved to a new directory since it was backed up.
ln -s /disk1/company/iqdata/company.iq company_iq_store
Once you create this link, you can specify the symbolic link in commands like CREATE DATABASE or RESTORE instead of the fully qualified path name.
When you create a database or a dbspace, the path for every dbspace file must be unique. If your CREATE DATABASE command specifies the identical path and file name for these two stores, you receive an error.
Character strings inserted into tables are always stored in the case they are entered, regardless of whether the database is case-sensitive or not. If the string Value is inserted into a character data type column, the string is always stored in the database with an uppercase V and the remainder of the letters lowercase. SELECT statements return the string as Value. If the database is not case-sensitive, however, all comparisons make Value the same as value, VALUE, and so on. The SAP Sybase IQ server may return results in any combination of lowercase and uppercase, so you cannot expect case-sensitive results in a database that is case-insensitive (CASE IGNORE).
CREATE TABLE tb (id int NOT NULL, string VARCHAR(30) NOT NULL); INSERT INTO tb VALUES (1, ‘ONE’); SELECT * FROM tb WHERE string = ‘oNe’;
The result of the SELECT can be “oNe” (as specified in the WHERE clause) and not necessarily “ONE” (as stored in the database).
SELECT * FROM tb WHERE string = ‘One’;can be “One” and the result of:
SELECT * FROM tb WHERE string = ‘ONe’;can be “ONe”.
DBAand password:
sql
In new databases, all passwords are case-sensitive, regardless of the case-sensitivity of the database. The user ID is unaffected by the CASE RESPECT setting.
When you start a database, its page size cannot be larger than the page size of the current server. The server page size is taken from the first set of databases started or is set on the server command line using the -gp command line option.
Command line length for any statement is limited to the catalog page size. The 4KB default is large enough in most cases; however, in a few cases, a larger PAGE SIZE value is needed to accommodate very long commands, such as RESTORE commands that reference numerous dbspaces. A larger page size might also be needed to execute queries involving large numbers of tables or views.
Because the default catalog page size is 4KB, this is a problem only when the connection is to a database such as utility_db, which has a page size of 1024. This restriction may cause RESTORE commands that reference numerous dbspaces to fail. To avoid the problem, make sure the length of SQL command lines is less than the catalog page size.
Alternatively, start the engine with -gp 32768 to increase catalog page size.
Automatic commit
SQL—Vendor extension to ISO/ANSI SQL grammar.
Sybase—Adaptive Server Enterprise provides a CREATE DATABASE statement, but with different options.
The account under which the server is running must have write permissions on the directories where files are created.