Database Programming Sections 9 – Constraints. Marge Hohly2 CONSTRAINT TYPES  NOT NULL Constraints  UNIQUE Constraints  PRIMARY KEY Constraints  FOREIGN.

Slides:



Advertisements
Similar presentations
Database Programming Sections 13. Marge Hohly  1. Which statements are True about the following sequence? The sequence was used to generate numbers.
Advertisements

9 Copyright © Oracle Corporation, All rights reserved. Creating and Managing Tables.
10 Copyright © Oracle Corporation, All rights reserved. Including Constraints.
Sections 10 – Constraints
SQL DDL constraints Restrictions on the columns and tables 1SQL DDL Constraints.
Database Constraints. Database constraints are restrictions on the contents of the database or on database operations Database constraints provide a way.
Oracle Data Definition Language (DDL)
4 Copyright © Oracle Corporation, All rights reserved. Displaying Data from Multiple Tables.
Dr. Chen, Oracle Database System (Oracle) 1 Chapter 4 Constraints Jason C. H. Chen, Ph.D. Professor of MIS School of Business Gonzaga University Spokane,
Database Design lecture 3_1 1 Database Design Lecture 3_1 Data definition in SQL.
Oracle Data Definition Language (DDL) Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
10 Copyright © 2009, Oracle. All rights reserved. Using DDL Statements to Create and Manage Tables.
1 Copyright © 2006, Oracle. All rights reserved. Using DDL Statements to Create and Manage Tables.
Copyright © 2004, Oracle. All rights reserved. Using DDL Statements to Create and Manage Tables.
Lecture 2: Using DDL Statements to Create and Manage Tables & Indexes
10 Copyright © Oracle Corporation, All rights reserved. Including Constraints.
SQL Basics. 5/27/2016Chapter 32 of 19 Naming SQL commands are NOT case sensitive SQL commands are NOT case sensitive But user identifier names ARE case.
SQL: DDL. SQL Statements DDL - data definition language –Defining and modifying data structures (metadata): database, tables, views, etc. DML - data manipulation.
11-1 Copyright  Oracle Corporation, All rights reserved. What Are Constraints? Constraints enforce rules at the table level. Constraints prevent.
Constraints cis 407 Types of Constraints & Naming Key Constraints Unique Constraints Check Constraints Default Constraints Misc Rules and Defaults Triggers.
Tables and Constraints Oracle PL/SQL. Datatypes The SQL Data Definition Language Commands (or DDL) enable us to create, modify and remove database data.
1 SQL - II Data Constraints –Applying data constraints Types of data constraints –I/O constraints The PRIMARY KEY constraints The FOREIGN KEY constraints.
Chapter 9 Constraints. Chapter Objectives  Explain the purpose of constraints in a table  Distinguish among PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK,
Oracle 11g: SQL Chapter 4 Constraints.
10 Copyright © Oracle Corporation, All rights reserved. Including Constraints.
Database Lab Lecture 1. Database Languages Data definition language ( DDL ) Data definition language –defines data types and the relationships among them.
Copyright  Oracle Corporation, All rights reserved. 11 Including Constraints.
CREATE TABLE CREATE TABLE statement is used for creating relations Each column is described with three parts: column name, data type, and optional constraints.
Chapter 4 Constraints Oracle 10g: SQL. Oracle 10g: SQL 2 Objectives Explain the purpose of constraints in a table Distinguish among PRIMARY KEY, FOREIGN.
Managing Constraints. 2 home back first prev next last What Will I Learn? Four different functions that the ALTER statement can perform on constraints.
9 Copyright © 2004, Oracle. All rights reserved. Using DDL Statements to Create and Manage Schema Objects.
INCLUDING CONSTRAINTS lecture5. Outlines  What are Constraints ?  Constraint Guidelines  Defining Constraint  NOT NULL constraint  Unique constraint.
11 Including Constraints Objectives At the end of this lesson, you will be able to: Describe constraints Create and maintain constraints At the.
Lecture5: SQL Overview, Oracle Data Type, DDL and Constraints Ref. Chapter6 Lecture4 1.
SQL CREATING AND MANAGING TABLES lecture4 1. Database Objects ObjectDescription TableBasic unit of storage; composed of rows and columns ViewLogically.
Defining NOT NULL and UNIQUE Constraints
2 Copyright © 2006, Oracle. All rights reserved. Managing Schema Objects.
Copyright © 2004, Oracle. All rights reserved. Lecture 2: Using DDL Statements to Create and Manage Tables & Indexes ORACLE.
Altering Tables and Constraints Database Systems Objectives Add and modify columns. Add, enable, disable, or remove constraints. Drop a table. Remove.
DDL and Views. Database Objects Logically represents subsets of data from one or more tables View Generates numeric valuesSequence Basic unit of storage;
Relational Database Management System(RDBMS) Structured Query Language(SQL)
At the end of this lesson, you will be able to: Describe constraints Create and maintain constraints.
Including Constraints. What Are Constraints? Constraints enforce rules at the table level. You can use constraints to do the following: – Enforce rules.
Database Programming Sections 9 & 10 – DDL Data Definition Language,
9 Copyright © 2006, Oracle. All rights reserved. Using DDL Statements to Create and Manage Tables (DDL 구문을 이용한 테이블의 생성과 관리 )
SQL Statements SELECT INSERTUPDATEDELETECREATEALTERDROPRENAMETRUNCATECOMMITROLLBACKSAVEPOINTGRANTREVOKE Data Retrieval Language (DRL) Data Retrieval Language.
Creating and Managing Tables. Database Objects ObjectDescription TableBasic unit of storage; composed of rows and columns ViewLogically represents subsets.
2 Copyright © 2009, Oracle. All rights reserved. Managing Schema Objects.
Fundamental of Database Systems
Managing Tables, Data Integrity, Constraints by Adrienne Watt
Using DDL Statements to Create and Manage Tables
Including Constraints
SQL: Schema Definition and Constraints Chapter 6 week 6
SQL Creating and Managing Tables
Using DDL Statements to Create and Manage Tables
SQL Creating and Managing Tables
SQL Creating and Managing Tables
Managing Schema Objects
DATABASE SQL= Structure Query Language مبادئ قواعد بيانات
CS122 Using Relational Databases and SQL
Oracle Data Definition Language (DDL)
Using DDL Statements to Create and Manage Tables
Using DDL Statements to Create and Manage Tables
CS122 Using Relational Databases and SQL
CS1222 Using Relational Databases and SQL
CS122 Using Relational Databases and SQL
IST 318 Database Administration
Instructor: Samia arshad
CS122 Using Relational Databases and SQL
Including Constraints
Presentation transcript:

Database Programming Sections 9 – Constraints

Marge Hohly2 CONSTRAINT TYPES  NOT NULL Constraints  UNIQUE Constraints  PRIMARY KEY Constraints  FOREIGN KEY Constraints  CHECK Constraints

Marge Hohly3 Defining CONSTRAINTS  What are constraints? Database rules  Constraints always have a name Given by you/DBA when constraint is created (preferred method because names are meaningful) Given by the system when constraint is created (names are not meaningful)

Marge Hohly4 Defining CONSTRAINTS  Two Ways to Define Constraints during Table Creation Table-Level  NOT NULL cannot be defined at the table- level  If the word CONSTRAINT is used in the CREATE TABLE statement, the constraint must be given a name  Composite-key constraints must be defined at the table-level Column-Level  NOT NULL must be defined at the Column- Level

Column Level Constraint  Refers to a single column  CREATE TABLE clients (client_number NUMBER(4) CONSTRAINT clients_client_num_pk PRIMARY KEY, first_name VARCHAR2(14) NOT NULL, last_name VARCHAR2(13));  Primary key defined at the column level  SYS_Cn (where n is a unique integer) NOT NULL constraint Marge Hohly5

Composite key constraint  Composite defined at Table level  CREATE TABLE clients ( client_number NUMBER(4) NOT NULL, first_name VARCHAR2(20), last_name VARCHAR2(20) phone VARCHAR2(20) VARCHAR2(10) NOT NULL, CONSTRAINT clients_phone_ _uk UNIQUE ( ,phone)); Marge Hohly6

7 Defining CONSTRAINTS  Table-Level Constraints – at the bottom EXAMPLE: CREATE TABLE copy_employees( employee_id NUMBER(6), first_name VARCHAR2(20), job_id VARCHAR2(10), CONSTRAINT cemp_emp_id_pk PRIMARY KEY(employee_id), CONSTRAINT cemp_job_id_fk FOREIGN KEY(job_id) REFERENCES jobs(job_id), CONSTRAINT cemp_first_name_uk UNIQUE (first_name), CONSTRAINT cemp_emp_id_ck CHECK (employee_id<=999999)); Note: The words “Foreign Key” are Used at the table level

Marge Hohly8 NAMING at TABLE LEVEL  Constraint naming format table_col_type  CONSTRAINT constraint_name TYPE OF CONSTRAINT(column_name) CONSTRAINT cemp_emp_id_pk PRIMARY KEY(employee_id) CONSTRAINT cemp_emp_id_lname_pk PRIMARY KEY(employee_id,last_name )  CONSTRAINT constraint_name TYPE OF CONSTRAINT(column_name) REFERENCES othertablename(column_name) CONSTRAINT cemp_job_id_fk FOREIGN KEY(job_id) REFERENCES copy_jobs(job_id),

Marge Hohly9 NAMING at COLUMN LEVEL  Column-level assigning a Constraint Name:  System Named: column_name datatype() TYPE OF CONSTRAINT employee_id NUMBER(6) PRIMARY KEY  User Named: column_name datatype() CONSTRAINT constraint name TYPE OF CONSTRAINT employee_id NUMBER(6) CONSTRAINT c2emp_emp_id_pk PRIMARY KEY  Foreign Key: column_name datatype() CONSTRAINT constraint_name TYPE OF CONSTRAINT (column it is on) REFERENCES othertablename(column_name)

Marge Hohly10 Defining CONSTRAINTS  Column-Level constraints Example: CREATE TABLE copy2_employees( employee_id NUMBER(6) CONSTRAINT c2emp_emp_id_pk PRIMARY KEY, CONSTRAINT c2emp_emp_id_ck CHECK(employee_id<=999999), first_name VARCHAR2(20) CONSTRAINT c2emp_first_name_nn NOT NULL, last_name VARCHAR2(20) CONSTRAINT c2emp_last_name_nn NOT NULL, address VARCHAR2(20) CONSTRAINT c2emp_address_ck NOT NULL, job_id VARCHAR2(10) CONSTRAINT c2emp_job_id_fk REFERENCES copy_jobs(job_id));

NOT NULL Constraint  Requires that every row has a value for the NOT NULL column  Named with _nn suffix Marge Hohly11

UNIQUE constraint  No two rows have the same value  Every value in the column or set of columns (a composite key) are unique  Names with _uk as a suffix  If a composite unique key must be defined at Table-level  Column-level unique constraint is defined a column level Marge Hohly12

Primary Key Constraints  Primary key constraint is a column or set of columns that is uniquely identifies each row in a table  Must satisfy both conditions: No column that is part of the primary key can contain a null value. A table can have only one primary key.  Named with _pk suffix Marge Hohly13

Foreign Key(Referential Integrity) constraints  CREATE TABLE clients (client_number NUMBER(4) CONSTRAINT clients_client_num_pk PRIMARY KEY, first_name VARCHAR2(14), last_name VARCHAR2(13), department_id VARCHAR2(4,0), CONSTRAINT clients_dept_id_fk FOREIGH KEY(department_id) REFERENCES departments(department_id));  Names _fk suffix Marge Hohly14

Foreign Key syntax  Column-level song_id NUMBER(5) CONSTRAINT d_track_list_song_id_fk REFERENCES d_songs(id)  Table-level CONSTRAINT d_track_list_song_id_fk FOREIGN KEY(song_id) REFERENCES d_songs(id) Marge Hohly15

DELETE CASCADE option  Used when defining the foreign key enables the dependent rows in the child table to be deleted when a row in the parent table is deleted.  Without this you can not delete the parent record if there are any rows in the child table with the key value.  Use either on definition of FK ON DELETE CASCADE or ON DELETE SET NULL Marge Hohly16

ON DELETE CASCADE option  Column-level song_id NUMBER(5) CONSTRAINT d_track_list_song_id_fk REFERENCES d_songs(id) ON DELETE CASCADE  Table-level CONSTRAINT d_track_list_song_id_fk FOREIGN KEY(song_id) REFERENCES d_songs(id) ON DELETE CASCADE  Could use ON DELETE SET NULL also Marge Hohly17

CHECK constraints  Explicitly defines a condition that must be met  Condition must be either TRUE or unknown(due to a null)  May refer to values in any column in the table, but not columns in other tables Marge Hohly18

CHECK constraint Marge Hohly19

Marge Hohly20

Marge Hohly21

Marge Hohly22 Adding Constraints AFTER Table is created:  First, create a table that does not already have constraints: CREATE TABLE copy3_employees( employee_id NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(20), department_id NUMBER(4));

Marge Hohly23 Adding Constraints AFTER Table is created:  Secondly, add the constraints: ALTER TABLE copy3_employees ADD CONSTRAINT emp3_emp_id_pk PRIMARY KEY(employee_id); ALTER TABLE copy3_employees ADD CONSTRAINT emp3_emp_id_fk FOREIGN KEY(department_id) REFERENCES copy_departments(department_id);

Marge Hohly24 Adding Constraints AFTER Table is created:  NOTE!!! For NOT NULL constraints, use the MODIFY keyword in the ALTER TABLE statement instead of ADD ALTER TABLE copy3_employees MODIFY (first_name CONSTRAINT emp3_first_name_nn NOT NULL);  NOT NULL constraints can only be added if the column does not already contain null values

Marge Hohly25 Miscellaneous Constraint Information...  If the word CONSTRAINT is used in a CREATE TABLE statement, the constraint must be given a name  Constraints that contain more than one column are called composite key constraints and must be specified at the table level by placing a comma between the column names  There is no limit to the number of CHECK CONSTRAINTS that can be specified for a column

Marge Hohly26 Miscellaneous FK Constraints Information...  Another name for FOREIGN KEY CONSTRAINTS is REFERENCIAL INTEGRITY CONSTRAINTS  When specifying FOREIGN KEY CONSTRAINTS, the table that contains the PRIMARY KEY is called the PARENT TABLE. The table that contains the FOREIGN KEY CONSTRAINT is called the CHILD TABLE.

Marge Hohly27 DISABLING CONSTRAINTS  Constraints can be disabled Examples:  ALTER TABLE copy3_employees DISABLE CONSTRAINT emp3_emp_id_pk;  ALTER TABLE copy3_employees DISABLE CONSTRAINT emp3_emp_id_pk CASCADE; This will cause any FOREIGN KEY that references this primary key to also be disabled.

Marge Hohly28 ENABLING CONSTRAINTS  EXAMPLES: ALTER TABLE copy3_employees ENABLE CONSTRAINT emp3_emp_id_pk; Note: This does not enable the foreign key in the child tables

Marge Hohly29 DROPPING CONSTRAINTS  Examples : ALTER TABLE table_name DROP CONSTRAINT TYPE (column_name)[CASCADE]; ALTER TABLE table_name DROP CONSTRAINT name[CASCADE]; ALTER TABLE c_clients DROP PRIMARY KEY CASCADE;

Marge Hohly30 Viewing Constraint  Use the DESCRIBE command to confirm its existence.  DESCRIBE can only verify is the NOT NULL constraint.  NOT NULL constraint appears in the data dictionary as a CHECK constraint.  Use a query of the USER_CONSTRAINTS table to view all constraints on your table.  SELECT constraint_name, constraint_type FROM user_constraints WHERE TABLE_NAME ='table_name';  SELECT constraint_name, constraint_type FROM user_constraints WHERE TABLE_NAME ='COPY3_EMPLOYEES‘;

Marge Hohly31 QUERY THE DATA DICTIONARY SELECT constraint_name, constraint_type, table_name, status FROM user_constraints;  Types: P = Primary Key R = Foreign Key (Referential) C = Check (Includes NOT NULL) U = Unique

Marge Hohly32 Viewing Constraint  SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = 'EMPLOYEES';

Marge Hohly33 Viewing Constraints