Download Create a new database called STUDENT2 and using the SQL code

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Case Study 2: MS SQL SERVER 2005 – Management Studio – Create tables via SQL Script
STUDENTS2 EXAMPLE
MS SQL SERVER 2005
Management Studio – Create tables via SQL Script
STUDENTS2 Database EXAMPLE
The following guide shows how to convert an entity relationship diagram (ERD) for
students2 to a SQL database using SQL script.
SQL Coding Exercises
SQL Schema
Exercise 1 – Translating ERD to SQL Schema.
CONSTRAINTS
Exercise 2 – Checking the Primary and Foreign Key Constraints
Exercise 3 – Unique Constraints
INSERT
Exercise 4 – Inserting Rows of Data
MODEL SOLUTIONS
Solution - Exercise 1 – Translating ERD to SQL Schema.
Script file : students2.schema.sql
Solution - Exercise 2 – Checking the Primary and Foreign Key
Constraints
Script file : students2.schema.sql
Solution - Exercise 3 – Unique Constraints
Script file : students2.constraints.schema.sql
Solution - Exercise 4 – Inserting Rows of Data
Script file : students2.insert.schema.sql
Mansha Nawaz
STUDENTS2 EXAMPLE
Case Study 2: 1
Case Study 2: MS SQL SERVER 2005 – Management Studio – Create tables via SQL Script
STUDENTS2 EXAMPLE
SQL Schema
Exercise 1 – Translating ERD to SQL Schema.
Create a new database called STUDENT2 and using the SQL
code from student1 write the SQL code (schema) to create a
STUDENT2 database based on the STUDENT2 ERD provided
below.
a.
Generate the tables for the above students2 erd and choose suitable
data types, widths and constraints, including NULL/NOT NULL.
b.
In Query Analyser create, save and run a script file/files using SQL
statements to create the tables with appropriate primary key and foreign key
constraints.
c.
Check the structure of the tables. If any of the structures are incorrect,
either delete the table using the DROP command and create it again or use
the ALTER command to change the structure.
NB: If a table is referenced by a foreign key constraint, you will need to break the
relationship (the joining lines) before you can drop the table.
Mansha Nawaz
STUDENTS2 EXAMPLE
Case Study 2: 2
Case Study 2: MS SQL SERVER 2005 – Management Studio – Create tables via SQL Script
STUDENTS2 EXAMPLE
CONSTRAINTS
Exercise 2 – Checking the Primary and Foreign Key
Constraints
You should have the following primary and foreign key constraints. If you
don’t, alter the table structures accordingly.
a. Module: a primary key constraint on Moduleno.
b. StudentModule: a composite primary key constraint on Studentno and
Moduleno, a foreign key constraint on Studentno and a foreign key constraint
on Moduleno.
c. CourseModule: a composite primary key constraint on Courseno and
Moduleno, a foreign key constraint on Courseno and a foreign key constraint on
Moduleno.
Exercise 3 – Unique Constraints
Create and run a script file/files to:
a. Alter the Tutor table, adding a UNIQUE constraint on Email. What will this
do?
b. Alter the Student table, adding a UNIQUE constraint on Email.
c. Alter the Tutor table again, adding a CHECK constraint to ensure that only
the following job titles are permitted: Lecturer, Senior Lecturer, Principal
Lecturer and Reader. (Hint: use IN).
d. Look at all the table structures and contents. Are there any other constraints
you could sensibly add? If so, do so.
e. Use the system stored procedure sp_help to view all your constraint
definitions and names.
INSERT
Exercise 4 – Inserting Rows of Data
Create and run a script file/files to:
1. Insert the rows of data into the tables
Mansha Nawaz
STUDENTS2 EXAMPLE
Case Study 2: 3
Case Study 2: MS SQL SERVER 2005 – Management Studio – Create tables via SQL Script
STUDENTS2 EXAMPLE
2. Check the rows of data in the tables. If the data are incorrect, use the
UPDATE statement to make the necessary changes. Use SQL Server’s Help
facility if you’re not sure of the syntax of the UPDATE statement.
Mansha Nawaz
STUDENTS2 EXAMPLE
Case Study 2: 4
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
MODEL SOLUTIONS
Solution - Exercise 1 – Translating ERD to SQL Schema.
Script file : students2.schema.sql
IF OBJECT_ID('TutorStudent') IS NOT NULL
ALTER TABLE TutorStudent DROP CONSTRAINT TutorStudentFK
IF OBJECT_ID('TutorStudent') IS NOT NULL
ALTER TABLE TutorStudent DROP CONSTRAINT StudentTutorFK
IF OBJECT_ID('CourseStudent') IS NOT NULL
ALTER TABLE CourseStudent DROP CONSTRAINT CourseStudentFK
IF OBJECT_ID('CourseStudent') IS NOT NULL
ALTER TABLE CourseStudent DROP CONSTRAINT StudentCourseFK
IF OBJECT_ID('StudentModule') IS NOT NULL
ALTER TABLE StudentModule DROP CONSTRAINT StudentModuleFK
IF OBJECT_ID('StudentModule') IS NOT NULL
ALTER TABLE StudentModule DROP CONSTRAINT ModuleStudentFK
IF OBJECT_ID('CourseModule') IS NOT NULL
ALTER TABLE CourseModule DROP CONSTRAINT CourseModuleFK
IF OBJECT_ID('CourseModule') IS NOT NULL
ALTER TABLE CourseModule DROP CONSTRAINT ModuleCourseFK
GO
IF OBJECT_ID('Student') IS NOT NULL
DROP TABLE Student
CREATE TABLE Student
(Studentno CHAR(9) NOT NULL
CONSTRAINT StudentPK PRIMARY KEY,
Title VARCHAR(6) NULL,
Fname VARCHAR(15) NOT NULL,
Surname VARCHAR(15) NOT NULL,
DOB DATETIME NULL,
Email CHAR(20) NULL,
Telno VARCHAR(12) NULL)
GO
IF OBJECT_ID('Course') IS NOT NULL
DROP TABLE Course
CREATE TABLE Course
(Courseno TINYINT NOT NULL
CONSTRAINT CoursePK PRIMARY KEY,
Coursename VARCHAR(25) NOT NULL,
Coursetype CHAR(3) NOT NULL)
GO
IF OBJECT_ID('Course') IS NOT NULL
DELETE FROM Course
GO
IF OBJECT_ID('Tutor') IS NOT NULL
DROP TABLE Tutor
CREATE TABLE Tutor
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
5
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
(Tutorno INT
CONSTRAINT TutorPK PRIMARY KEY,
Title VARCHAR(6) NULL,
Fname VARCHAR(15) NOT NULL,
Surname VARCHAR(15) NOT NULL,
Email VARCHAR(30) NULL,
Roomno CHAR(4) NULL,
Telext CHAR(4) NULL,
Job VARCHAR(20) NULL,
Salary INT NULL)
GO
IF OBJECT_ID('TutorStudent') IS NOT NULL
DROP TABLE TutorStudent
CREATE TABLE TutorStudent
(Tutorno INT
CONSTRAINT TutorStudentFK FOREIGN KEY
REFERENCES Tutor(Tutorno),
Studentno CHAR(9)
CONSTRAINT StudentTutorFK FOREIGN KEY
REFERENCES Student(Studentno),
CONSTRAINT TutorStudentPK PRIMARY KEY
(Tutorno, Studentno))
GO
IF OBJECT_ID('CourseStudent') IS NOT NULL
DROP TABLE CourseStudent
CREATE TABLE CourseStudent
(Courseno TINYINT
CONSTRAINT CourseStudentFK FOREIGN KEY
REFERENCES Course(Courseno),
Studentno CHAR(9)
CONSTRAINT StudentCourseFK FOREIGN KEY
REFERENCES Student(Studentno),
Studymode CHAR(2) NOT NULL,
CONSTRAINT CourseStudentPK PRIMARY KEY
(Courseno, Studentno))
GO
IF OBJECT_ID('Module') IS NOT NULL
DROP TABLE Module
CREATE TABLE Module
(Moduleno CHAR(6)
CONSTRAINT ModulePK PRIMARY KEY,
Modulename VARCHAR(35) NOT NULL,
Modulelevel TINYINT NOT NULL)
GO
IF OBJECT_ID('StudentModule') IS NOT NULL
DROP TABLE StudentModule
CREATE TABLE StudentModule
(Studentno CHAR(9)
CONSTRAINT StudentModuleFK FOREIGN KEY
REFERENCES Student(Studentno),
Moduleno CHAR(6)
CONSTRAINT ModuleStudentFK FOREIGN KEY
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
6
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
REFERENCES Module(Moduleno),
CONSTRAINT StudentModulePK PRIMARY KEY
(Studentno, Moduleno))
GO
IF OBJECT_ID('CourseModule') IS NOT NULL
DROP TABLE CourseModule
CREATE TABLE CourseModule
(Courseno TINYINT
CONSTRAINT CourseModuleFK FOREIGN KEY
REFERENCES Course(Courseno),
Moduleno CHAR(6)
CONSTRAINT ModuleCourseFK FOREIGN KEY
REFERENCES Module(Moduleno),
CONSTRAINT CourseModulePK PRIMARY KEY
(Courseno, Moduleno))
GO
Solution - Exercise 2 – Checking the Primary and Foreign Key Constraints
Script file : students2.schema.sql
Review SQL constraint commands in script file
Solution - Exercise 3 – Unique Constraints
Script file : students2.constraints.schema.sql
ALTER TABLE Tutor
ADD CONSTRAINT Unq_Tutor_Email
UNIQUE (Email);
ALTER TABLE Student
ADD CONSTRAINT Unq_Student_Email
UNIQUE (Email);
ALTER TABLE Tutor
ADD CONSTRAINT Tutor_Job_Check
CHECK
(Job IN('Lecturer', 'Senior Lecturer', 'Principal Lecturer', 'Reader'));
GO
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
7
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
Solution - Exercise 4 – Inserting Rows of Data
Script file : students2.insert.schema.sql
INSERT INTO Student VALUES
('HND102345', 'Ms', 'Freda', 'Bloggs', '02/26/1980', '[email protected]', '01642-345678')
INSERT INTO Student VALUES
('HND103456', 'Mrs', 'Greta', 'Davies', '01/13/1979', '[email protected]', '01642-456789')
INSERT INTO Student VALUES
('BSC205112', 'Ms', 'Jayne', 'Orrells', '06/09/1982', '[email protected]', '01642-567890')
INSERT INTO Student VALUES
('BSC204113', 'Mr', 'Jack', 'Lee', '11/11/1981', '[email protected]', '01642-334655')
INSERT INTO Student VALUES
('BSC206114', 'Mr', 'Ralph', 'Harries', '02/24/1926', '[email protected]', '01642-344509')
INSERT INTO Student VALUES
('BSC207233', 'Ms', 'Sue', 'Peters', '05/16/1981', '[email protected]', '01642-945778')
INSERT INTO Course VALUES
(20, 'Computing', 'HND')
INSERT INTO Course VALUES
(30, 'Computing', 'BSC')
INSERT INTO Course VALUES
(40, 'Electronics', 'HND')
INSERT INTO Course VALUES
(50, 'Electronics', 'BSC')
INSERT INTO Course VALUES
(60, 'Virtual Reality', 'HND')
INSERT INTO Course VALUES
(70, 'Virtual Reality', 'BSC')
INSERT INTO Course VALUES
(80, 'Computer Science', 'HND')
INSERT INTO Course VALUES
(90, 'Computer Science', 'BSC')
INSERT INTO Tutor VALUES
(109874, 'Mr', 'Himi', 'Gupta', '[email protected]',
'A109', '3556', 'Lecturer', 22000)
INSERT INTO Tutor VALUES
(768881, 'Ms', 'Francoise', 'Green', '[email protected]',
'A108', '7823', 'Lecturer', 24000)
INSERT INTO Tutor VALUES
(129001, 'Ms', 'Jane', 'Marshall', '[email protected]',
'A109', '3557', 'Senior Lecturer', 28000)
INSERT INTO Tutor VALUES
(345771, 'Mrs', 'Carole', 'Brown', '[email protected]',
'A110', '2419', 'Principal Lecturer', 38000)
INSERT INTO Tutor VALUES
(120991, 'Dr', 'Graham', 'Garvey', '[email protected]',
'A111', '6509', 'Principal Lecturer', 36000)
INSERT INTO Tutor VALUES
(903456, 'Mr', 'Mike', 'Marshall', '[email protected]',
'A106', '3451', 'Senior Lecturer', 27500)
INSERT INTO Tutor VALUES
(891297, 'Dr', 'Sharon', 'Onley', '[email protected]',
'A107', '6241', 'Senior Lecturer', 27000)
INSERT INTO Tutor VALUES
(367189, 'Mr', 'Steven', 'Dubois', '[email protected]',
'A112', '7735', 'Lecturer', 21000)
INSERT INTO TutorStudent VALUES
(129001, 'HND103456')
INSERT INTO TutorStudent VALUES
(345771, 'BSC206114')
INSERT INTO TutorStudent VALUES
(891297, 'BSC204113')
INSERT INTO TutorStudent VALUES
(891297, 'BSC205112')
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
8
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
INSERT INTO TutorStudent VALUES
(129001, 'HND102345')
INSERT INTO TutorStudent VALUES
(768881, 'BSC207233')
INSERT INTO CourseStudent VALUES
(20, 'HND102345', 'FT')
INSERT INTO CourseStudent VALUES
(40, 'HND103456', 'FT')
INSERT INTO CourseStudent VALUES
(30, 'BSC205112', 'DL')
INSERT INTO CourseStudent VALUES
(30, 'BSC204113', 'WL')
INSERT INTO CourseStudent VALUES
(50, 'BSC206114', 'PT')
INSERT INTO CourseStudent VALUES
(50, 'BSC207233', 'FT')
INSERT INTO Module VALUES
('AIHND1', 'Artificial Intelligence',1)
INSERT INTO Module VALUES
('ITHND1', 'Information Technology',1)
INSERT INTO Module VALUES
('CAHND1', 'Computer Applications', 1)
INSERT INTO Module VALUES
('AIBSC2', 'Artificial Intelligence', 2)
INSERT INTO Module VALUES
('VBBSC2', 'Visual Basic', 2)
INSERT INTO Module VALUES
('DBBSC2', 'Database Design and Implementation', 2)
INSERT INTO Module VALUES
('ITBSC2', 'Information Technology', 2)
INSERT INTO Module VALUES
('CABSC2', 'Computer Applications', 2)
INSERT INTO Module VALUES
('VRBSC3', 'Virtual Reality', 3)
INSERT INTO Module VALUES
('OSBSC3', 'Operating Systems', 3)
INSERT INTO Module VALUES
('NTBSC3', 'Networking Technology', 3)
INSERT INTO Module VALUES
('IABSC3', 'Internet Applications', 3)
INSERT INTO Module VALUES
('JPBSC3', 'Java Programming', 3)
INSERT INTO StudentModule VALUES ('HND102345', 'AIHND1')
INSERT INTO StudentModule VALUES ('HND102345', 'ITHND1')
INSERT INTO StudentModule VALUES ('HND103456', 'AIHND1')
INSERT INTO StudentModule VALUES ('HND103456', 'CAHND1')
INSERT INTO StudentModule VALUES ('BSC205112', 'AIBSC2')
INSERT INTO StudentModule VALUES ('BSC204113', 'VBBSC2')
INSERT INTO StudentModule VALUES ('BSC206114', 'VBBSC2')
INSERT INTO StudentModule VALUES ('BSC206114', 'DBBSC2')
INSERT INTO StudentModule VALUES ('BSC206114', 'ITBSC2')
INSERT INTO StudentModule VALUES ('BSC206114', 'CABSC2')
INSERT INTO StudentModule VALUES ('BSC207233', 'VBBSC2')
INSERT INTO StudentModule VALUES ('BSC207233', 'CABSC2')
INSERT INTO CourseModule VALUES (20, 'AIHND1')
INSERT INTO CourseModule VALUES (20, 'ITHND1')
INSERT INTO CourseModule VALUES (20, 'CAHND1')
INSERT INTO CourseModule VALUES (30, 'AIBSC2')
INSERT INTO CourseModule VALUES (30, 'VBBSC2')
INSERT INTO CourseModule VALUES (30, 'DBBSC2')
INSERT INTO CourseModule VALUES (30, 'ITBSC2')
INSERT INTO CourseModule VALUES (30, 'CABSC2')
INSERT INTO CourseModule VALUES (40, 'AIHND1')
INSERT INTO CourseModule VALUES (40, 'ITHND1')
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
9
MS SQL – QUERY ANALYSER – STUDENTS2 Database MODEL SOLUTION
INSERT INTO CourseModule VALUES (40, 'CAHND1')
INSERT INTO CourseModule VALUES (50, 'AIBSC2')
INSERT INTO CourseModule VALUES (50, 'VBBSC2')
INSERT INTO CourseModule VALUES (50, 'DBBSC2')
INSERT INTO CourseModule VALUES (50, 'ITBSC2')
INSERT INTO CourseModule VALUES (50, 'CABSC2')
INSERT INTO CourseModule VALUES (60, 'AIHND1')
INSERT INTO CourseModule VALUES (60, 'ITHND1')
INSERT INTO CourseModule VALUES (60, 'CAHND1')
INSERT INTO CourseModule VALUES (70, 'AIBSC2')
INSERT INTO CourseModule VALUES (70, 'VBBSC2')
INSERT INTO CourseModule VALUES (70, 'DBBSC2')
INSERT INTO CourseModule VALUES (70, 'ITBSC2')
INSERT INTO CourseModule VALUES (70, 'CABSC2')
INSERT INTO CourseModule VALUES (80, 'CABSC2')
INSERT INTO CourseModule VALUES (90, 'VRBSC3')
INSERT INTO CourseModule VALUES (90, 'OSBSC3')
INSERT INTO CourseModule VALUES (90, 'NTBSC3')
INSERT INTO CourseModule VALUES (90, 'IABSC3')
INSERT INTO CourseModule VALUES (90, 'JPBSC3')
GO
MS SQL – QUERY ANALYSER STUDENTS2 SOLUTIONS by Mansha Nawaz
10
Related documents