You are on page 1of 19

1

CSC371-DATABASE SYSTEMS I
LECTURE-4 (LAB)
2

PREVIOUS LECTURE REVIEW


• SQL Data Types
• String data types:
• Numeric data types:
• Date and Time data types:
• Changes in Table structure
3

• CREATE TABLE Staff (


CREATE TABLE
staffNo int,
fName varchar(255),
lName varchar(255),
position varchar(255),
gender char ,
DOB date,
salary money,
);
4

AGENDA
• SQL Constraints
5

SQL CONSTRAINTS

• Used to specify rules for data in a table.


• Specify at the time of table creation
• Can alter if there is any change
6

SQL CONSTRAINTS
• NOT NULL - Ensures that a column cannot have a NULL value
• UNIQUE - Ensures that all values in a column are different
• PRIMARY KEY - A combination of a NOT NULL and UNIQUE.
Uniquely identifies each row in a table
• DEFAULT - Sets a default value for a column when no value is
specified
• FOREIGN KEY - Uniquely identifies a row/record in another table
• CHECK - Ensures that all values in a column satisfies a specific
condition
• INDEX - Used to create and retrieve data from the database very
quickly
7

SQL NOT NULL CONSTRAINT


• CREATE TABLE Staff ( • ALTER TABLE Staff
staffNo int NOT NULL, MODIFY gender char NOT
fName varchar(255), NULL;
lName varchar(255),
position varchar(255),
gender char ,
DOB date,
salary money
);
8

SQL UNIQUE CONSTRAINT

• SQL Server Unique Constraint • MySQL Unique Constraint

• CREATE TABLE Staff (


• CREATE TABLE Staff (
staffNo int NOT NULL,
staffNo int NOT NULL fName varchar(255),
UNIQUE,
lName varchar(255),
fName varchar(255), position varchar(255),
lName varchar(255), gender char ,
position varchar(255), DOB date,
gender char , salary money,
UNIQUE (StaffNo)
DOB date,
salary money, );
); •
9

TO NAME A UNIQUE CONSTRAINT


• CREATE TABLE Staff (
staffNo int NOT NULL UNIQUE,
fName varchar(255),
lName varchar(255),
position varchar(255),
gender char ,
DOB date,
salary money,
CONSTRAINT UC_Staff UNIQUE (StaffNo)

);

10

SQL UNIQUE CONSTRAINT ON ALTER TABLE

• For Single Column


• ALTER TABLE Staff
ADD UNIQUE (staffNo);

• For Multiple Column


• ALTER TABLE Staff
ADD CONSTRAINT UC_Staff UNIQUE (staffNo,fName);
11

DROP A UNIQUE CONSTRAINT

• SQL Server • MySQL

• ALTER TABLE Staff • ALTER TABLE Staff


DROP CONSTRAINT UC_Staff; DROP INDEX UC_Staff;
12

SQL PRIMARY KEY CONSTRAINT


• MS SQL Server • MySQL

• CREATE TABLE Staff ( • CREATE TABLE Staff (


staffNo int NOT NULL staffNo int NOT NULL,
PRIMARY KEY, fName varchar(255),
fName varchar(255), lName varchar(255),
lName varchar(255), position varchar(255),
position varchar(255), gender char ,
gender char , DOB date,
DOB date, salary money,
salary money PRIMARY KEY (staffNo)
); );
13

PRIMARY KEY CONSTRAINT ON


MULTIPLE COLUMNS
• CREATE TABLE Staff (
staffNo int NOT NULL,
fName varchar(255),
lName varchar(255),
position varchar(255),
gender char ,
DOB date,
salary money,
CONSTRAINT PK_Staff PRIMARY KEY (staffNo,fName)
);
14

SQL PRIMARY KEY ON ALTER


TABLE
• ALTER TABLE Staff
ADD PRIMARY KEY (staffNo);

• ALTER TABLE Staff


ADD CONSTRAINT PK_Staff PRIMARY KEY (staffNo,fName);
15

DROP A PRIMARY KEY CONSTRAINT

• MS SQL SERVER • MySQL

• ALTER TABLE Staff • ALTER TABLE Staff


DROP CONSTRAINT PK_Staff; DROP PRIMARY KEY;
16

SQL DEFAULT CONSTRAINT


• CREATE TABLE Staff (
staffNo int NOT NULL CREATE TABLE Orders (
ID int NOT NULL,
PRIMARY KEY,
OrderNumber int NOT NULL,
fName varchar(255), OrderDate date DEFAULT GETDATE()
);
lName varchar(255),
position varchar(255)
DEFAULT ‘Supervisor',
gender char ,
DOB date,
salary money
);
17

SQL DEFAULT ON ALTER TABLE


• SQL Server:
• ALTER TABLE Staff
ADD CONSTRAINT df_Position DEFAULT ‘Supervisor' FOR
Position;

• MySQL:
• ALTER TABLE Staff
ALTER Position SET DEFAULT ‘Supervisor';
18

DROP A DEFAULT CONSTRAINT

• SQL Server:
• ALTER TABLE Staff
ALTER COLUMN Position DROP DEFAULT;

• MySQL:
• ALTER TABLE Staff
ALTER Position DROP DEFAULT;
19

SUMMARY
• SQL Constraints
• NOT NULL
• Primary Key
• Unique
• Default

You might also like