You are on page 1of 43

Database and Web Database

Systems
CT014-3-2

SQL: Data Definition Commands

Topic & Structure Lesson



SQL Data Types
Integrity Enhancement Feature
View
Advantages & Disadvantages of Views

CT014-3-2 Database and Web Database Systems

SQL: Data Definition Commands

Slide 2 (of 44)

Lesson Outcomes
At the end of this lesson you should be able
to:
•Explain the various SQL Data Types
•Write DDL Commands
•Explain and use Integrity Enhancement Features
•Explain what are Views
•Explain Advantages & Disadvantages of Views

CT014-3-2 Database and Web Database Systems

SQL: Data Definition Commands

Slide 3 (of 44)

Keywords




If you have mastered this topic, you
should be able to use the following terms
correctly in your assignments and exams:
Entity Integrity
Referential Integrity
Data Definition Commands
Views

CT014-3-2 Database and Web Database Systems

SQL: Data Definition Commands

Slide 5 (of 44)

ISO SQL Data Types CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 6 (of 44) .

– Domain constraints. – Entity integrity. – Enterprise constraints CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 7 (of 44) . – Referential integrity.Integrity Enhancement Feature • Consider five types of integrity constraints: – Required data.

‘F’)) CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 8 (of 44) .Integrity Enhancement Feature Required Data position VARCHAR(10) NOT NULL Domain Constraints (a) CHECK sex CHAR NOT NULL CHECK (sex IN (‘M’.

Integrity Enhancement Feature b) CREATE DOMAIN CREATE DOMAIN DomainName [AS] dataType [DEFAULT defaultOption] [CHECK (searchCondition)] For example: CREATE DOMAIN SexType AS CHAR CHECK (VALUE IN (‘M’. ‘F’)). sex SexType NOT NULL CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 9 (of 44) .

• Domains can DOMAIN: be removed using DROP DROP DOMAIN DomainName [RESTRICT | CASCADE] CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 10 (of 44) .Integrity Enhancement Feature • searchCondition can involve a table lookup: CREATE DOMAIN BranchNo AS CHAR(4) CHECK (VALUE IN (SELECT branchNo FROM Branch)).

IEF . propertyNo) • Can only have one PRIMARY KEY clause per table. • ISO standard supports FOREIGN KEY clause in CREATE and ALTER TABLE statements: PRIMARY KEY(staffNo) PRIMARY KEY(clientNo. non-null value for each row.Entity Integrity • Primary key of a table must contain a unique. Can still ensure uniqueness for alternate keys using UNIQUE: UNIQUE(telNo) CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 11 (of 44) .

• ISO standard supports definition of FKs with FOREIGN KEY clause in CREATE and ALTER TABLE: FOREIGN KEY(branchNo) REFERENCES Branch CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 12 (of 44) . if FK contains a value. • Referential integrity means that. that value must refer to existing row in parent table.Referential Integrity • FK is column or set of columns that links each row in child table containing foreign FK to row of parent table containing matching PK.IEF .

NO ACTION CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 13 (of 44) .SET NULL – SET DEFAULT .Referential Integrity • Any INSERT/UPDATE that attempts to create FK value in child table without matching candidate key value in parent is rejected. • Action taken that attempts to update/delete a candidate key value in parent table with matching rows in child is dependent on referential action specified using ON UPDATE and ON DELETE subclauses: – CASCADE .IEF .

Referential Integrity CASCADE: Delete row from parent and delete matching rows in child. Only valid if DEFAULT specified for FK columns NO ACTION: Reject delete from parent. Only valid if FK columns are NOT NULL.IEF . SET NULL: Delete row from parent and set FK column(s) in child to NULL. and so on in cascading manner. Default CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 14 (of 44) . SET DEFAULT: Delete row from parent and set each component of FK in child to specified default.

IEF .Referential Integrity FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL FOREIGN KEY (ownerNo) REFERENCES Owner ON UPDATE CASCADE CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 15 (of 44) .

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 16 (of 44) .Enterprise Constraints • Could use CHECK/UNIQUE in CREATE and ALTER TABLE. • Also have: CREATE ASSERTION AssertionName CHECK (searchCondition) • which is very similar to the CHECK clause.IEF .

IEF .Enterprise Constraints CREATE ASSERTION StaffNotHandlingTooMuch CHECK (NOT EXISTS (SELECT staffNo FROM PropertyForRent GROUP BY staffNo HAVING COUNT(*) > 100)) CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 17 (of 44) .

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 18 (of 44) .Quick Review Exercise Give some examples of SQL commands which can be used to enforce integrity constraints on data store in the database.

domains. views. and indexes to be created and destroyed.Data Definition • SQL DDL allows database objects such as schemas. • Main SQL DDL statements are: CREATE SCHEMA DROP SCHEMA CREATE/ALTER DOMAINDROP DOMAIN CREATE/ALTER TABLE DROP TABLE CREATE VIEW DROP VIEW • Many DBMSs also provide: CREATE INDEX CT014-3-2 Database and Web Database Systems DROP INDEX SQL: Data Definition Commands Slide 19 (of 44) . tables.

and character sets. and each catalog consists of set of schemas. • Objects in a schema can be tables. translations. • Schema is named collection of related database objects. • Each environment contains one or more catalogs. assertions.Data Definition • Relations and other database objects exist in an environment. All have same owner CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 20 (of 44) . domains. views. collations.

schema must be empty or operation fails. operation cascades to drop all objects associated with schema in order defined above. • With CASCADE. DROP SCHEMA fails.CREATE SCHEMA CREATE SCHEMA [Name | AUTHORIZATION CreatorId ] DROP SCHEMA Name [RESTRICT | CASCADE ] • With RESTRICT (default). If any of these operations fail. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 21 (of 44) .

]} {[FOREIGN KEY (listOfFKColumns) REFERENCES ParentTableName [(listOfCKColumns)]..…]} {[CHECK (searchCondition)] [.] {[UNIQUE (listOfColumns).]} [PRIMARY KEY (listOfColumns).CREATE TABLE CREATE TABLE TableName {(colName dataType [NOT NULL] [UNIQUE] [DEFAULT defaultOption] [CHECK searchCondition] [... [ON UPDATE referentialAction] [ON DELETE referentialAction ]] [.] [….…] }) CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 22 (of 44) .

CREATE TABLE • Creates a table with one or more columns of the specified dataType. • With NOT NULL. • Can specify a DEFAULT value for the column. system rejects any attempt to insert a null in the column. • Primary keys should always be specified as NOT NULL. • FOREIGN KEY clause specifies FK along with the referential action CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 23 (of 44) .

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 24 (of 44) . CREATE DOMAIN PNumber AS VARCHAR(5).Example . CREATE DOMAIN PRooms AS SMALLINT.2) CHECK(VALUE BETWEEN 0 AND 9999.CREATE TABLE CREATE DOMAIN OwnerNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner)). CREATE DOMAIN PRent AS DECIMAL(6. CREATE DOMAIN StaffNumber AS VARCHAR(5) CHECK (VALUE IN (SELECT staffNo FROM Staff)).99). CHECK(VALUE BETWEEN 1 AND 15).

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 25 (of 44) . rooms PRooms NOT NULL DEFAULT 4.). FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL ON UPDATE CASCADE …. …. PRIMARY KEY (propertyNo).CREATE TABLE CREATE TABLE PropertyForRent ( propertyNo PNumber NOT NULL.Example . DEFAULT 600. staffNo StaffNumber Constraint StaffNotHandlingTooMuch …. ownerNo OwnerNumber NOT NULL. branchNo BranchNumber NOT NULL. rent PRent NOT NULL.

Add a new table constraint. Drop a table constraint. Drop a column from a table.ALTER TABLE • • • • • • Add a new column to a table. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 26 (of 44) . Drop a default for a column. Set a default for a column.

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 27 (of 44) .Example . ALTER TABLE Staff ALTER sex SET DEFAULT ‘F’. ALTER TABLE Staff ALTER position DROP DEFAULT.ALTER TABLE Change Staff table by removing default of ‘Assistant’ for position column and setting default for sex column to female (‘F’).

CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 28 (of 44) .ALTER TABLE Remove constraint from PropertyForRent that staff not allowed to handle more than 100 properties at time.Example . Add new column to Client table. ALTER TABLE PropertyForRent DROP CONSTRAINT StaffNotHandlingTooMuch. ALTER TABLE Client ADD prefNoRooms PRooms.

SQL does not allow request. • With CASCADE.DROP TABLE DROP TABLE TableName [RESTRICT | CASCADE] e. if any other objects depend for their existence on continued existence of this table. SQL drops all dependent objects (and objects dependent on these objects). CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 29 (of 44) . DROP TABLE PropertyForRent.g. • Removes named table and all rows within it. • With RESTRICT.

at time of request. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 30 (of 44) .Views View Dynamic result of one or more relational operations operating on base relations to produce another relation. • Virtual relation that does not necessarily actually exist in the database but is produced upon request.

the view is stored as a temporary table. • With view materialization. which is maintained as the underlying base tables are updated. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 31 (of 44) .Views • Contents of a view are defined as a query on one or more base relations. • With view resolution. any operations on view are automatically translated into operations on relations from which it is derived.

SQL . CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 32 (of 44) . each column takes name of corresponding column in subselect.. • If omitted.]) ] AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION] • Can assign a name to each column in view. it must have same number of items as number of columns produced by subselect...CREATE VIEW CREATE VIEW ViewName [ (newColumnName [. • If list of column names is specified.

SQL .CREATE VIEW • List must be specified if there is any ambiguity in a column name. • WITH CHECK OPTION ensures that if a row fails to satisfy WHERE clause of defining query. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 33 (of 44) . • The subselect is known as the defining query. • Need SELECT privilege on all tables referenced in subselect and USAGE privilege on any domains used in referenced columns. it is not added to underlying base table.

Example .Create Horizontal View Create view so that manager at branch B003 can only see details for staff who work in his or her office. CREATE VIEW Manager3Staff AS SELECT * FROM Staff WHERE branchNo = ‘B003’. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 34 (of 44) .

Example . position. CREATE VIEW Staff3 AS SELECT staffNo. fName. sex FROM Staff WHERE branchNo = ‘B003’. lName. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 35 (of 44) .Create Vertical View Create view of staff details at branch B003 excluding salaries.

staffNo = p. PropertyForRent p WHERE s.branchNo. CREATE VIEW StaffPropCnt (branchNo. staffNo.Example .staffNo.staffNo GROUP BY s.staffNo. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 36 (of 44) . s. cnt) AS SELECT s.Grouped and Joined Views Create view of staff who manage properties for rent. COUNT(*) FROM Staff s. staff number. including branch number they work at.branchNo. s. and number of properties they manage.

Grouped and Joined Views CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 37 (of 44) .Example .

SQL . CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 38 (of 44) . • For example: DROP VIEW Manager3Staff.DROP VIEW DROP VIEW ViewName [RESTRICT | CASCADE] • Causes definition of view to be deleted from database.

SQL . any views defined on view being dropped.e. if any other objects depend for their existence on continued existence of view being dropped. • With RESTRICT (default). all related dependent objects are deleted. i. CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 39 (of 44) . command is rejected.DROP VIEW • With CASCADE.

Advantages of Views • • • • • • • Data independence Currency Improved security Reduced complexity Convenience Customization Data integrity CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 40 (of 44) .

Disadvantages of Views • Update restriction • Structure restriction • Performance CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 41 (of 44) .

Summary • • • • What are the ISO SQL Data Types Integrity Enhancement Feature Views List the advantages & disadvantages of Views CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 42 (of 44) .

Question and Answer Session Q&A CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 43 (of 44) .

DML CT014-3-2 Database and Web Database Systems SQL: Data Definition Commands Slide 44 (of 44) .Next Session • SQL .