Вы находитесь на странице: 1из 6

CONSTRAINTS

DOMAIN PRIMARY FOREIGN KEY

ADDING A CONSTRAINT TO A COLUMN


ALTER TABLE STUDENT ADD CONSTRAINT CHECKSNO CHECK (SNO<90); SQL> INSERT INTO STUDENT VALUES (90, 'RAM', '10-OCT-10'); INSERT INTO STUDENT VALUES (90, 'RAM', '10-OCT-10') * ERROR at line 1: ORA-02290: check constraint (SCOTT.CHECKSNO) violated

DROPING A CONSTRAINT
ALTER TABLE STUDENT DROP CONSTRAINT CHECKSNO;

ADDING PRIMARY KEY


SQL> ALTER TABLE STUDENT ADD PRIMARY KEY (SNO); Table altered.

DROPING PRIMARY KEY CONSTRAINT


SQL> ALTER TABLE STUDENT DROP PRIMARY KEY; Table altered.

ADDING FOREIGN KEY


SQL> CREATE TABLE TEACHER 2 ( TID INTEGER NOT NULL, 3 TNAME VARCHAR2(30) 4 ); Table created. SQL> SELECT * FROM TEACHER; TID ---------10 11 12 TNAME ----------------TEACHER-1 TEACHER-2 TEACHER-3

SQL> ALTER TABLE TEACHER ADD PRIMARY KEY (TID); Table altered.

SQL> ALTER TABLE TEACHER ADD PRIMARY KEY (TID); Table altered. SQL> ALTER TABLE STUDENT ADD TID INTEGER CONSTRAINT FK_TID REFERENCES TEACHER (TID); Table altered. SQL> DROP TABLE STUDENT; Table dropped. CREATE TABLE STUDENT( SNO INTEGER CONSTRAINT PK_SNO PRIMARY KEY, SNAME VARCHAR2(20) NOT NULL, DOB DATE NOT NULL, TID INTEGER CONSTRAINT FK_TID REFERENCES TEACHER (TID))

DROPPING FOREIGN KEY


SQL> ALTER TABLE STUDENT DROP CONSTRAINT FK_TID; Table altered.

================================================= VIEWS
( Logon as system with oracle password and grant the create view privilege to scott )

GRANT CREATE ANY INDEX, SELECT ANY TABLE TO scott; GRANT CREATE VIEW TO SCOTT; A view is, in essence, a virtual table. It does not physically exist. Rather, it is created by a query joining one or more tables.

CREATING A VIEW
The syntax for creating a VIEW is: CREATE VIEW view_name AS SELECT columns FROM table WHERE predicates; SQL> CREATE VIEW EMPVIEW AS SELECT ENO, ENAME FROM EMPLOYEE;

View created. SQL> SELECT * FROM EMPVIEW; ENO ---------1 2 3 4 5 6 ENAME -------------------EMP-01 EMP-02 MGR-03 EMP-04 EMP-05 MGR-06

6 rows selected. SQL> INSERT INTO EMPVIEW VALUES ( 7, 'EMP-07'); 1 row created. SQL> SELECT * FROM EMPLOYEE; ENO ---------1 2 3 4 5 6 7 ENAME MGRNO -------------------- ---------EMP-01 3 EMP-02 3 MGR-03 EMP-04 6 EMP-05 6 MGR-06 EMP-07

7 rows selected.

UPDATING A VIEW
You can update a VIEW without dropping it by using the following syntax: CREATE OR REPLACE VIEW view_name AS SELECT columns FROM table WHERE predicates;

DROPPING A VIEW
The syntax for dropping a VIEW is: DROP VIEW view_name;

=================================================

SYNONYMS
A synonym is an alternative name for objects such as tables, views, sequences, stored procedures, and other database objects.

CREATING A SYNONYM
create public synonym suppliers for app.suppliers; This first example demonstrates how to create a synonym called suppliers. Now, users of other schemas can reference the table called suppliers without having to prefix the table name with the schema named app. For example: select * from suppliers; If this synonym already existed and you wanted to redefine it, you could always use the or replace phrase as follows: create or replace public synonym suppliers for app.suppliers;

DROPPING A SYNONYM
It is also possible to drop a synonym drop public synonym suppliers; The public phrase allows you to drop a public synonym. If you have specified public, then you don't specify a schema.

================================================= SEQUENCE
In Oracle, you can create an autonumber field by using sequences. A sequence is an object in Oracle that is used to generate a number sequence. This can be useful when you need to create a unique number to act as a primary key. CREATE SEQUENCE sequence_name MINVALUE value MAXVALUE value START WITH value INCREMENT BY value CACHE value;

For example SQL>CREATE SEQUENCE supplier_seq MINVALUE 1 MAXVALUE 900 START WITH 1 INCREMENT BY 1 CACHE 20; Sequence created. SQL> CREATE TABLE SUPPLIER ( SUPPLIER_ID NUMBER(3), SUPPLIER_NAME VARCHAR2(30)); Table created. This would retrieve the next value from supplier_seq. The nextval statement needs to be used in an SQL statement. For example: SQL> INSERT INTO supplier (supplier_id, supplier_name) VALUES (supplier_seq.nextval, 'Kraft Foods'); 1 row created. SQL> SELECT * FROM SUPPLIER; SUPPLIER_ID SUPPLIER_NAME ----------- ----------------1 Kraft Foods

================================================= INDEX
An index is a performance-tuning method of allowing faster retrieval of records. An index creates an entry for each value that appears in the indexed columns. By default, Oracle creates B-tree indexes

CREATE AN INDEX
The syntax for creating a index is: SQL> CREATE INDEX EMPNO_IDX ON EMPLOYEE(ENO, ENAME); Index created.

ALTER AN INDEX
ALTER INDEX supplier_idx RENAME TO supplier_index_name;

DROP AN INDEX
DROP INDEX supplier_idx;

================================================= STORED PROCEDURES


SQL> ALTER TABLE SUPPLIER ADD STOCK INTEGER; Table altered. SQL> update supplier set stock = 0; 1 row updated. CREATE PROCEDURE IncreaseStock AS BEGIN UPDATE supplier SET stock = stock + 1; END; Procedure created. SQL> Execute IncreaseStock(); PL/SQL procedure successfully completed. SQL> select * from supplier; SUPPLIER_ID SUPPLIER_NAME STOCK ----------- ------------------------------ ---------1 Kraft Foods 1

=================================================

Вам также может понравиться