6_Basic Structured Query Language (SQL)
6_Basic Structured Query Language (SQL)
EMPLOYEE
Data Definition Language (DDL)
Ssn Name DNO
123 Ahmed 1
Data Manipulation Language (DML)
234 Ali 2
Structured Query Language (SQL) data definition language (DDL)
Basic SQL
SQL language
Considered one of the major reasons for the commercial success of relational
databases
SQL
Structured Query Language
Statements for data definitions, queries, and updates (both DDL and DML)
Core specification
Plus specialized extensions
The CREATE TABLE Command in SQL
DECIMAL(10,3)
precision
1 2 3 4 5 6 7
. 8 9 1
scale
Attribute Data Types and Domains in SQL
• Numeric data types
Numeric data types
Integer numbers INT INTEGER and SMALLINT
Floating-point (real) numbers FLOAT REAL, and DOUBLE PRECISION
DECIMAL(i, j) DEC(i, j) or NUMERIC(i, j)
' AB '
Attribute Data Types and Domains in SQL
• Character-string data types
Character-string data types
Fixed length CHAR(n) CHARACTER(n)
CHAR for one char as CHAR(1)
CHAR(1) 'A'
CHAR
Attribute Data Types and Domains in SQL
• Character-string data types
Character-string data types
Fixed length CHAR(n) CHARACTER(n)
CHAR for one char as CHAR(1)
CREATE TABLE
EMP (
Name CHAR(30),
StartDate DAT
); E
NAME StartDate
Ahmed 24-NOV-
Ali 22
Mohamed 20-DEC-21
14-JAN-23
Attribute Data Types and Domains in SQL
• TIMESTAMP data type
CREATE TABLE
EMP (
Name CHAR(30),
StartDate TIMESTAMP
);
NAME StartDate
Ahmed 04-NOV-21 05.56.38.626000
Attribute Data Types and Domains in SQL
Numeric data types
Integer numbers INT INTEGER and SMALLINT
Floating-point (real) numbers FLOAT REAL, and DOUBLE PRECISION
DECIMAL(i, j) DEC(i, j) or NUMERIC(i, j)
Character-string data types
Fixed length CHAR(n) CHARACTER(n)
CHAR for one char as CHAR(1)
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30),
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0),
MgerStartDate
DATE
);
Specifying Attribute
Constraints
• Default value of an attribute DEPARTMENT
• DEFAULT <value> Dname Dnumber MgrSSN
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30) DEFAULT
Dnumber DECIMAL(4,0), 'Research' ,
MgrSSN DECIMAL(10,0)
); DEFAULT 1
Specifying Attribute
Constraints
• NULL is not permitted for a particular attribute (NOT
NULL)
Dname Dnumber MgrSSN
DEPARTMENT
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30) NOT NULL,
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0) NOT
); NULL
Specifying Attribute
Constraints
• PRIMARY KEY clause
• Specifies one or more attributes that make up the primary key of a
relation
Dname Dnumber MgrSSN
DEPARTMENT
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30),
Dnumber DECIMAL(4,0) PRIMARY KEY,
MgrSSN DECIMAL(10,0)
);
Constraint: SYS_C004008
Specifying Attribute
Constraints
• PRIMARY KEY clause
• Specifies one or more attributes that make up the primary key of a
relation
Dname Dnumber MgrSSN
DEPARTMENT
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30),
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0),
PRIMARY KEY(Dnumber)
);
Constraint: SYS_C004008
Specifying Attribute
Constraints
• PRIMARY KEY clause
• Specifies one or more attributes that make up the primary key of a
relation
Dname Dnumber MgrSSN
DEPARTMENT
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30),
Dnumber
PRIMARY KEY(Dnumber),
DECIMAL(4,0),
MgrSSN DECIMAL(10,0)
);
Constraint: SYS_C004008
Specifying Attribute
Constraints
• PRIMARY KEY clause
• Specifies one or more attributes that make up the primary key of a
relation
Dname Dnumber MgrSSN
DEPARTMENT
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30) KEY,
Dnumber PRIMARY
MgrSSN DECIMAL(4,0) PRIMARY KEY,
); DECIMAL(10,0)
CREATE TABLE
DEPARTMENT
Dname ( VARCHAR(30),
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0),
PRIMARY KEY (Dname, Dnumber)
);
Specifying Attribute
Constraints
• UNIQUE clause
• Specifies alternate (secondary) keys (called CANDIDATE keys in the
relational model). DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30) UNIQUE,
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0)
);
Constraint: SYS_C004018
Specifying Attribute
Constraints
• UNIQUE clause
• Specifies alternate (secondary) keys (called CANDIDATE keys in the
relational model). DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30),
Dnumber DECIMAL(4,0),
MgrSSN DECIMAL(10,0),
UNIQUE(Dnumber)
);
Constraint: SYS_C004018
Specifying Attribute
Constraints
• CHECK
clause
DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30),
Dnumber INT CHECK > 0 AND Dnumber <
MgrSSN ( Dnumber 11),
); DECIMAL(10,0)
Constraint: SYS_C004012
Specifying Constraints on Tuples Using CHECK
• CHECK
clause
DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30),
Dnumber INT,
MgrSSN DECIMAL(10,0),
CHECK ( Dnumber > 0 AND Dnumber <
11)
);
Specifying Constraints on Tuples Using CHECK
• CHECK clause
CREATE TABLE
DEPARTMENT (
Dname VARCHAR(30),
Dnumber INT,
MgrSSN DECIMAL(10,0),
Date,
startDate
endDate ( startDate < Date,
CHECK
endDate)
);
Specifying Constraints on Tuples Using CHECK
• CHECK clause
CHECK ( Dnumber > 0 AND Dnumber
< 11) Logical comparison operators
Constraint: SYS_C004004
ERROR ORA-02290: check constraint (COMP.SYS_C004002) violated
Giving Names to Constraints
• Using the Keyword CONSTRAINT
• Name a constraint (unique name)
• Useful for later altering DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE DEPARTMENT
(
Dname VARCHAR(30),
Dnumber INT,
MgrSSN DECIMAL(10,0),
CONSTRAINT DNO
CHECK ( Dnumber > 0 AND Dnumber < 11)
);
Constraint name: DNO
Giving Names to Constraints
• Using the Keyword CONSTRAINT
• Name a constraint (unique name)
• Useful for later altering DEPARTMENT
Dname Dnumber MgrSSN
CREATE TABLE DEPT
DEPT
( Dname Dnumber MgrSSN
Dname VARCHAR(30),
Dnumber INT,
MgrSSN DECIMAL(10,0),
CONSTRAINT DNO
CHECK ( Dnumber > 0 AND Dnumber < 11)
);
FK2
FOREIGN KEY (MgrSSN) REFERENCES
The SQL DROP TABLE Statement
• The DROP TABLE statement is used to drop an existing table in a
database.
EMPLOYEE
Syntax Ssn Name DNO
DROP TABLE EMPLOYEE;
CREATE TABLE EMPLOYEE
(
Fname VARCHAR(20) NOT NULL,
VARCHAR(20) NOT
Lname PRIMARY
SsnINT NULL, KEY,
Bdate DATE
Dno , INT
);
INT,
PRIMARY KEY (Essn, Pno),
CONSTRAINT WORKS_ON_FK1
FOREIGN KEY (Essn)
REFERENCES EMPLOYEE(Ssn),
CONSTRAINT WORKS_ON_FK2
FOREIGN KEY (Pno)
REFERENCES
PROJECT(Pnumber)
);
CREATE TABLE DEPENDENT
(
Essn INT,
Dependent_name
VARCHAR(20), Relationship
VARCHAR(20),
PRIMARY KEY (Essn, Dependent_name),
CONSTRAINT DEPENDENT_FK1
FOREIGN KEY (Essn) REFERENCES
EMPLOYEE(Ssn)
);
Summary
Attribute Data Types and Domains in SQL
Numeric data types
Integer numbers INT INTEGER and SMALLINT
Floating-point (real) numbers FLOAT REAL, and DOUBLE PRECISION
DECIMAL(i, j) DEC(i, j) or NUMERIC(i, j)
Character-string data types
Fixed length CHAR(n) CHARACTER(n)
CHAR for one char as CHAR(1)