Oracle PL/SQL/Constraints/Constraint Types

Материал из SQL эксперт
Перейти к: навигация, поиск

Constraint types: not null

SQL> --Constraint types
SQL> --There are five integrity constraints in Oracle.
SQL> --Not Null
SQL>
SQL> create table myTable (
  2    a number not null,
  3    b number     null,
  4    c number
  5  );
Table created.
SQL>
SQL> insert into myTable values (   1, null, null);
1 row created.
SQL> insert into myTable values (   2,    3,    4);
1 row created.
SQL> insert into myTable values (null,    5,    6);
insert into myTable values (null,    5,    6)
                            *
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SYS"."MYTABLE"."A")

SQL>
SQL> drop table myTable;
Table dropped.
SQL>



Contraint type: Unique

SQL> --Unique Key
SQL>
SQL>
SQL> create table myTable (
  2    a number unique,
  3    b number
  4  );
Table created.
SQL>
SQL> desc myTable;
 Name                                                                                                  Null?    Type
 ----------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------
 A                                                                                                      NUMBER
 B                                                                                                      NUMBER
SQL>
SQL> -- if a column is not explicitely defined as not null, nulls can be inserted multiple times:
SQL>
SQL> insert into myTable values (4,   5);
1 row created.
SQL> insert into myTable values (2,   1);
1 row created.
SQL> insert into myTable values (9,   8);
1 row created.
SQL> insert into myTable values (6,   9);
1 row created.
SQL> insert into myTable values (null,9);
1 row created.
SQL> insert into myTable values (null,9);
1 row created.
SQL>
SQL> select * from myTable;
         A          B
---------- ----------
         4          5
         2          1
         9          8
         6          9
                    9
                    9
6 rows selected.
SQL>
SQL> drop table myTable;
Table dropped.
SQL>