objectives in this lesson, you will learn to: create tables insert rows into tables delete tables

47
SQL/Lesson 5/Slide 1 of 46 Creating Tables and Enforcing Data Integrity Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables Create user-defined datatype List various types of data integrity Add the following constraints to tables: PRIMARY KEY UNIQUE FOREIGN KEY CHECK DEFAULT

Upload: twyla

Post on 22-Mar-2016

37 views

Category:

Documents


2 download

DESCRIPTION

Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables Create user-defined datatype List various types of data integrity Add the following constraints to tables: PRIMARY KEY UNIQUE FOREIGN KEY CHECK DEFAULT . Attributes . Data. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 1 of 46

Creating Tables and Enforcing Data Integrity

ObjectivesIn this lesson, you will learn to: Create tables Insert rows into tables Delete tables Create user-defined datatype List various types of data integrity Add the following constraints to tables:

PRIMARY KEY UNIQUE FOREIGN KEY CHECK DEFAULT

Page 2: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 2 of 46

Creating Tables and Enforcing Data Integrity

Creating a Table The details about a newspaper that publishes

advertisements for L & T Infotech. have to be stored in the database.

Attributes DataNewspaper Code 0001Newspaper Name Times of IndiaRegion MmbaiType of Newspaper GeneralContact Person Sunil PradhanHO Address MumbaiCity MumbaiState MaharashtraZip 400001

Country Code 009Fax (713)451-6797 Phone ( 022) 2878987

Page 3: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 3 of 46

Creating Tables and Enforcing Data Integrity

Your Job Draft the statement to create a table

Create the table in the database

Check whether the table has been created

Insert a row into the table

Page 4: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 4 of 46

Creating Tables and Enforcing Data Integrity

Draft the statement to create a table The CREATE TABLE Statement: Is used to create a table

Syntax:CREATE TABLE table_name

(column_name datatype [NULL | NOT NULL] [IDENTITY (SEED,INCREMENT)], column_name datatype …)

[ON {filegroup} | DEFAULT]

Page 5: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 5 of 46

Creating Tables and Enforcing Data IntegritySystem Data TypesBinary Binary

varbinaryimage

Used to store streams of binary information. Use image to store extremely large values > 8000 bytes

Character Charvarchartext

Stores Alphanumeric Data.Char is fixed type / others are variabletext : strings longer than 8000 chars.

Unicode Character

Ncharnvarcharntext

Unicode characters are twice the size of standard characters.

Date & Time

Datetimesmalldatetime

The difference between the two is the range of dates each can store & the accuracy of the time.

Exact Numeric

Decimalnumericmoneysmallmoney

All stores decimal numbers exactly.

Page 6: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 6 of 46

Creating Tables and Enforcing Data Integrity

Create the table in the database Action

In the Query Analyzer window, type the given CREATE TABLE statement

CREATE TABLE NewsPaper(cNewsPaperCode char(4) NOT NULL,cNewsPaperName char(20) NOT NULL,vRegion varchar(20),vTypeOfNewsPaper varchar(20),vContactPerson varchar(35),vHOAddress varchar(35),

Page 7: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 7 of 46

Creating Tables and Enforcing Data Integrity

Create the table in the database (Contd.)cCity char(20),

cState char(20),

cZip char(10),

cCountryCode char(3),

cFax char(15),

cPhone char(15))

Press F5 to execute the statement

Page 8: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 8 of 46

Creating Tables and Enforcing Data Integrity

Check whether the table has been created You can use the sp_help command to view the structure of

the table

Syntax

sp_help table_name

Action: In the Query Analyzer window, type:

sp_help Newspaper

Press F5 to execute

Page 9: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 9 of 46

Creating Tables and Enforcing Data Integrity

Insert a row into the table The INSERT Statement

After the table structure has been created, data can be inserted into the table. You can insert data into the table by using the INSERT command

Syntax

INSERT [INTO] table_name [column_list]

VALUES (values_list)

Page 10: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 10 of 46

Creating Tables and Enforcing Data Integrity

Insert a row into the table (Contd.) Action:

In the Query Analyzer, type the INSERT statement given below:

INSERT Newspaper

VALUES('0001', 'Times of India', ‘Mumbai', 'General', ‘Sunil Pradhan',

'4723 Dadar', ‘Mumbai', ‘Mumbai', '77015-4568', '001', '(713)451-6797', '(713)451-6850')

Press F5 to execute

Page 11: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 11 of 46

Creating Tables and Enforcing Data Integrity

Ex: Creating a Table You want to store the details about the colleges that L&T

infotech visits for recruitment. A sample row is given below:

The college code and name cannot be left blank.

Attribute DataCollege Code 0002College Name VJTI CollegeCollege AddressCity MumbaiState MaharashtraZipPhone

Page 12: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 12 of 46

Creating Tables and Enforcing Data Integrity

Deleting a Table Remove the Newspaper table from the database.

Page 13: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 13 of 46

Creating Tables and Enforcing Data Integrity

Task List Draft the statement to remove a table from the database

Remove the Newspaper table from the database

Verify that the table has been removed from the database

Page 14: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 14 of 46

Creating Tables and Enforcing Data Integrity

Draft the statement to remove a table from the database

The DROP TABLE Statement

Used to remove the table from the database

Syntax

DROP TABLE table_name

DROP TABLE Newspaper

Page 15: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 15 of 46

Creating Tables and Enforcing Data Integrity

Verify that the table has been removed from the database Type the following command to view the table structure:

sp_help Newspaper

Action

In the Query Analyzer window, type:

sp_help Newspaper

Press F5 to execute

Page 16: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 16 of 46

Creating Tables and Enforcing Data Integrity

Wait a while… Draft the statement to remove the College table from the

database.

Page 17: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 17 of 46

Creating Tables and Enforcing Data Integrity

User-Defined Datatypes

Creating a User-Defined DatatypeA user-defined datatype is created using

the sp_addtype system stored procedureSyntax

sp_addtype name, [system_data_type][, 'null_type']

Page 18: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 18 of 46

Creating Tables and Enforcing Data Integrity

User-Defined Datatypes (Contd.)

Dropping a User-Defined DatatypeA user-defined datatype can be dropped

using the sp_droptype system stored procedure

Syntax

sp_droptype type

Page 19: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 19 of 46

Creating Tables and Enforcing Data Integrity

Creating User-defined Datatypes

The Reservation and the Cancellation tables do not have the same datatype for the Passenger Name attribute. Create a user-defined datatype called typPCode that can be used to create the Reservation and the Cancellation table.

Page 20: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 20 of 46

Creating Tables and Enforcing Data Integrity

Identify the inconsistency in the table structures

User-defined datatypes

Can be used to remove the inconsistency in table structures which arises when two attributes that should have the same system datatype use different system datatypes.

Page 21: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 21 of 46

Creating Tables and Enforcing Data Integrity

Identify the system-defined datatype that can be converted to a user-defined datatype

Result:

The system-defined datatype of both attributes should be varchar(30)

Page 22: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 22 of 46

Creating Tables and Enforcing Data Integrity

Create a user-defined datatype

Action: In the Query Analyzer window, type:

sp_addtype typPCode, ‘Varchar(30)' Execute the query by clicking the Execute Query

button

Page 23: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 23 of 46

Creating Tables and Enforcing Data Integrity

Verify that the datatype has been created The sp_help system stored procedure gives specific

information about the object specified

Syntax

sp_help datatype_name Action:

In the Query Analyzer window, type:

sp_help typPCode Press F5 to execute

Page 24: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 24 of 46

Creating Tables and Enforcing Data Integrity

Create the table NewsAd with the new datatype Action:

In the Query Analyzer window, type:CREATE TABLE Reservation(……, cPassengerName typPCode NOT NULL, ……………..,……………….)

Press F5 to execute

Page 25: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 25 of 46

Creating Tables and Enforcing Data Integrity

Data Integrity Data integrity ensures the consistency and correctness of

data stored in a database. It is broadly classified into the following four categories: Entity integrity Domain integrity Referential integrity User-defined integrity

Entity Integrity Ensures that each row can be uniquely identified by an

attribute called the primary key

Page 26: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 26 of 46

Creating Tables and Enforcing Data Integrity

Data Integrity (Contd.) Domain Integrity

Ensures that only a valid range of values is allowed to be stored in a column

Referential Integrity

Ensures that the values of the foreign key match with the value of the corresponding primary key

User-Defined Integrity

Refers to a set of rules specified by a user, which do not belong to the entity, domain, and referential integrity categories

Page 27: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 27 of 46

Creating Tables and Enforcing Data Integrity

Wait a while...Which integrity ensures that the values in

the foreign key match with the value of the corresponding primary key?

Page 28: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 28 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints Constraints are created to ensure data integrity

Constraints define rules that must be followed to maintain consistency and correctness of data

A constraint can either be created at the time of creating a table or can be added later

Constraints can be enforced at two levels:

Column level

Table level

Page 29: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 29 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.) A constraint can be created using either of the following

statements: CREATE TABLE statement

CREATE TABLE table_namecolumn_name CONSTRAINT constraint_name constraint_type [,CONSTRAINT constraint_name constraint_type]

ALTER TABLE statementALTER TABLE table_name[WITH CHECK | WITH NOCHECK]ADD CONSTRAINT constraint_name constraint_type

Page 30: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 30 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.)

Dropping ConstraintsA constraint can be dropped using the ALTER TABLE statement in the Query Analyzer Syntax

ALTER TABLE table_name

DROP CONSTRAINT constraint_name

Page 31: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 31 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.) Types of Constraints

The PRIMARY KEY ConstraintIs defined on a column or a set of columns

whose values uniquely identify rows in a tableEnsures entity integrity

Syntax

[CONSTRAINT constraint_name PRIMARY KEY

Page 32: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 32 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.)

The UNIQUE ConstraintIs used to enforce uniqueness on non-primary

key columnsMultiple UNIQUE constraints can be created

on a table Syntax

[CONSTRAINT constraint_name UNIQUE

Page 33: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 33 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.)

The FOREIGN KEY ConstraintIs used to remove the inconsistency in two

tables when data in one table depends on data in another table

Syntax[CONSTRAINT constraint_name FOREIGN KEY (col_name [, col_name [, …]])REFERENCES table_name (column_name [,

column_name [, …]])]

Page 34: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 34 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.)

The CHECK ConstraintEnforces domain integrity by restricting the

values to be inserted in a columnSyntax

[CONSTRAINT constraint name] CHECK (expression)

Page 35: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 35 of 46

Creating Tables and Enforcing Data Integrity

Creating Constraints (Contd.)The DEFAULT Constraint

It is used to assign a constant value to a columnOnly one DEFAULT constraint can be created

for a columnThe column cannot be an IDENTITY column

Syntax

[CONSTRAINT constraint_name] DEFAULT (constant_expression | NULL)

Page 36: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 36 of 46

Creating Tables and Enforcing Data Integrity

Wait a while…Which constraint enforces domain integrity

by restricting the value to be inserted in a column?

Page 37: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 37 of 46

Creating Tables and Enforcing Data Integrity

CREATE TABLE DEMO

CREATE TABLE employee

(

empno int Identity (1,1) Constraint pkeno Primary Key,

ename varchar(20) Constraint ckEname NOT NULL,

deptno int CONSTRAINT fkdno FOREIGN KEY REFERENCES dept (deptno),

city char(10) CONSTRAINT ckDefa DEFAULT ('Andheri'),

basic money CONSTRAINT ckchk CHECK (basic >= 5000)

)

Page 38: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 38 of 46

Creating Tables and Enforcing Data Integrity

TABLE Level Constraint

CREATE TABLE employee( empno int Identity (1,1) , ename varchar(20) , deptno int , city char(10) , basic money , Constraint pkeno Primary Key (empno), CONSTRAINT fkdno FOREIGN KEY (deptno) REFERENCES dept

(deptno), CONSTRAINT ckchk CHECK (basic >= 5000))

Page 39: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 39 of 46

Creating Tables and Enforcing Data Integrity

Using Constraints Create the Employee table with the following data

integrity rules:The cEmpCode attribute should be the primary

keyThe cPhone attribute should be of the format

([0-9][0-9] [0-9])[0-9][0-9][0-9][0-9][0-9][0-9][0-9])The cCountryCode attribute should be 009 by

default

Page 40: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 40 of 46

Creating Tables and Enforcing Data Integrity

Identify how to enforce data integrity You can enforce data integrity by using constraints Result:

For the Employee table: The phone number format can be given using the

CHECK constraint The country code can be given using the DEFAULT

constraint The Employee code can be made the primary key

using the PRIMARY KEY constraint

Page 41: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 41 of 46

Creating Tables and Enforcing Data Integrity

Draft the statement to create a table

CREATE TABLE Employee

(cEmpCode char(6) CONSTRAINT pkECode PRIMARY KEY,

cEmpName char(20) NOT NULL,

cCountryCode char(3) CONSTRAINT defCountryCode DEFAULT(‘009’),

cPhone char(15) CONSTRAINT chkPhone

CHECK(cPhone LIKE('([0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')))

Page 42: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 42 of 46

Creating Tables and Enforcing Data Integrity

Ex: Using Constraints Create the College table with the following data integrity rules:

cCollegeCode should be the primary key

The phone number should be of the format ([0-9][0-9][0-9])[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]

cCity should be “Mumbai” by default Create the CampusRecruitment table so that it satisfies the

following data integrity rules: The cCampusRecruitmentCode column should be the

primary key The cCollegeCode column should be the foreign key

Page 43: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 43 of 46

Creating Tables and Enforcing Data Integrity

ALTER TABLE to specify constraints.

ALTER TABLE tableNameADD CONSTRAINT cNamePRIMARY KEY (fieldName)

ALTER TABLE tableNameADD CONSTRAINT cNameFOREIGN KEY (fName)REFERENCES refTable(fName)

Page 44: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 44 of 46

Creating Tables and Enforcing Data Integrity

ALTER TABLE tableNameADD CONSTRAINT cNameUNIQUE ( fName)

ALTER TABLE tableNameADD CONSTRAINT cNameCHECK (condition)

ALTER TABLE tableNameADD CONSTRAINT cNameDEFAULT (value) FOR fName

Page 45: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 45 of 46

Creating Tables and Enforcing Data Integrity

SummaryIn this lesson, you learned that:

A table is a database object used to store data

A table can be created using the CREATE TABLE statement

The INSERT statement is used to insert data into the table

The DROP TABLE statement is used to delete the table

A user-defined datatype is created by a user and is based on a system datatype

A user-defined datatype is created using the sp_addtype system stored procedure

Page 46: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 46 of 46

Creating Tables and Enforcing Data Integrity

Summary (Contd.) A user-defined datatype can be dropped using the sp_droptype

system stored procedure sp_help provides information about a database object or a user-

defined datatype Data integrity ensures the completeness, accuracy, and

reliability of data contained in the database Data integrity can be classified as entity integrity, domain

integrity, referential integrity, and user-defined integrity

Data integrity can be enforced through constraints

Constraints are rules that can be specified at either the table-level or the column-level

Page 47: Objectives In this lesson, you will learn to: Create tables Insert rows into tables Delete tables

SQL/Lesson 5/Slide 47 of 46

Creating Tables and Enforcing Data Integrity

Summary (Contd.) A constraint can be created using either the CREATE TABLE

or the ALTER TABLE statements A constraint can be dropped with the ALTER TABLE

statement or by dropping the table Constraints are classified as PRIMARY, FOREIGN, UNIQUE,

CHECK, and DEFAULT