Josef Troch (troch@mail.ru)
4.3.2002 (poslední změna 7.3.2002)
Datový typ | Krátký popis | Příklad výrazu tohoto typu |
---|---|---|
CHAR(size) | Znakový řetězec pevné délky size bytů (max 2000, min 1, implicitně 1). | 'nějaký řetězec' |
NCHAR(size) | Znakový řetězec pevné délky size znaků či bytů - záleží na nastavení národní znakové sady (size se musí vejít do 2000 bajtů, min i implicitně 1 znak či byte). | 'nějaký řetězec' |
VARCHAR2(size) | Znakový řetězec proměnné délky s maximální délkou size bytů, size musí být zadáno (max 4000, min 1). | 'nějaký řetězec' |
NVARCHAR2(size) | Znakový řetězec proměnné délky s maximální délkou size znaků či bytů - záleží na nastavení národní znakové sady, size musí být zadáno (size se musí vejít do 4000 bajtů, min 1 znak či byte). | 'nějaký řetězec' |
LONG | Znakový řetězec proměnné délky s maximální délkou 2GB bytů. | 'nějaký řetězec' |
NUMBER(p, s) | Číslo celé či reálné (fixed point či floating point) - s přesností (precision) p a měřítkem (scale) s. Detaily viz níže. | 327 1.1895E12 |
DATE | Datum a čas mezi 1.1.4712 př. n. l. a 31.12.4712 n. l. | 16-JAN-99 TO_DATE('01-01-1997', 'MM-DD-YYYY') |
RAW(size) | Binární data pevné délky size bytů (max. 2000 bytes) - tato musí být uvedena. | |
LONG RAW | Binární data proměnné délky až 2 GB. | |
ROWID | Hexadecimalní řetězec representující jednoznačnou adresu řádku v tabulce. | |
MLSLABEL, CLOB, NCLOB, BLOB, BFILE | Méně významné datové typy - binární label operač. systému, character large object + varianta více bytů na znak, binární large object, odkaz na velký binární soubor mimo DB. |
ANSI, DB/2 či SQL/DS datový typ | Oracle datový typ | Poznámka |
---|---|---|
CHARACTER(n) CHAR(n) |
CHAR(n) | |
CHARACTER VARYING(n) CHAR VARYING(n) VARCHAR(n) |
VARCHAR(n) | VARCHAR(n) není ANSI datový typ - jen DB/2 a SQL/DS. |
NATIONAL CHARACTER(n) NATIONAL CHAR(n) NCHAR(n) |
NCHAR(n) | |
NATIONAL CHARACTER VARYING(n) NATIONAL CHAR VARYING(n) NCHAR VARYING(n) |
NVARCHAR2(n) | |
LONG VARCHAR(n) | LONG | LONG VARCHAR(n) není ANSI datový typ - jen DB/2 a SQL/DS. |
NUMERIC(p,s)DECIMAL(p,s) | NUMBER(p,s) | Implicitní hodnota s je zde 0. |
INTEGER INT SMALLINT |
NUMBER(38) | |
FLOAT(b) DOUBLE PRECISION REAL |
NUMBER | FLOAT(b) - floating point číslo s počtem platných binárních číslic p,
nezadáme-li p, použije se 126 (38 desítkově). DOUBLE PRECISION - floating point číslo s počtem platných binárních číslic 126 (38 desítkově). REAL - floating point číslo s počtem platných binárních číslic 63 (18 desítkově). |
CREATE [GLOBAL TEMPORARY] TABLE [schema.]jmenoTabulky (jmenoSloupce typ [DEFAULT vyraz] [*integritniOmezeni], jmenoSloupce typ ....... , ..... [*integritniOmezeniTabulky] );
CREATE TABLE zamestnanci (cisloZam NUMBER(4) UNIQUE, jmeno VARCHAR2(40) NOT NULL, funkce VARCHAR2(9), nastoupil DATE, plat NUMBER(7,2) DEFAULT 5000, cisloOddeleni CONSTRAINT mojeOmezeni REFERENCES oddeleni(cisloOddeleni) );
CREATE TABLE obchody (ico NUMBER(15) NOT NULL, adresa VARCHAR2(50) NOT NULL, zbozi VARCHAR2(20) NOT NULL, ks_na_sklade NUMBER (5) DEFAULT 0 CHECK (ks_na_sklade >= 0), cena_kusu NUMBER (7,2), ks_prodano NUMBER (5) DEFAULT 0 CHECK (ks_prodano >= 0), );
DROP TABLE [schema.]jmenoTabulky [CASCADE CONSTRAINTS];
DROP TABLE obchody;
DROP TABLE zamestnanci CASCADE CONSTRAINTS;
ALTER TABLE [schema.]jmenoTabulky prikaz1 prikaz2 .... ;Kde prikaz může být:
ALTER TABLE obchody ADD (CONSTRAINT check_pocet_ks CHECK (ks_na_sklade + ks_prodano <= 20000) );
ALTER TABLE obchody DROP (ks_prodano) CASCADE CONSTRAINTS;
ALTER TABLE zamestnanci DROP (nastoupil, funkce, plat);
ALTER TABLE zamestnanci ADD (posledniVyplata NUMBER(7,2), rodneCislo NUMBER(15) PRIMARY KEY);
ALTER TABLE zamestnanci MODIFY (posledniVyplata NUMBER(9,2));
ALTER TABLE obchody MODIFY (ks_na_sklade DEFAULT 10);
ALTER TABLE zamestnanci DROP PRIMARY KEY CASCADE;
ALTER TABLE zamestnanci DROP CONSTRAINT mojeOmezeni;
ALTER TABLE zamestnanci DROP UNIQUE (cisloZam);
INSERT INTO [schema.]jmenoTabulky [(sloupec1, sloupec2, ...)] VALUES (vyraz1, vyraz2, ....)
INSERT INTO obchody VALUES (4864316850, 'ACDO s. r. o., Kozi 3 , Olomouc', 'Rum 40%', 453, 8.56E2, 5689);
INSERT INTO zamestnanci (cisloZam, jmeno, cisloOddeleni) VALUES (7890, 'Antonin Zeleny', 43);
INSERT INTO (SELECT cisloZam, jmeno, cisloOddeleni FROM zamestnanci) VALUES (7890, 'Antonin Zeleny', 43);
INSERT INTO bonus SELECT ename, job, sal, comm FROM emp WHERE comm > 0.25 * sal OR job IN ('PRESIDENT', 'MANAGER');
DELETE FROM [schema.]jmenoTabulky [WHERE podminka];
DELETE FROM zamestnanci;
DELETE FROM zamestnanci WHERE funkce = 'vrátný' AND plat > 10000;
DELETE FROM (SELECT * FROM zamestnanci) WHERE funkce = 'vrátný' AND plat > 10000;