Top Banner
CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak www.cs.sjsu.edu/~mak
38

CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Dec 31, 2015

Download

Documents

Baldric Haynes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

CS 174: Web ProgrammingSeptember 21 Class Meeting

Department of Computer ScienceSan Jose State University

Fall 2015Instructor: Ron Mak

www.cs.sjsu.edu/~mak

Page 2: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

2

Data Independence

Goal: Loose coupling between applications and the data repository.

Manage complexity. Manage change.

Applications should not need to know:

Where the data is stored (location of the repository) How it is stored (file formats and organizations, etc.) Access mechanisms

Page 3: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

3

Back-End Data Repository Issues

Redundancy and inconsistency Multiple copies of data (good for backup) Different versions that don’t match (bad) Consistent updates and deletions

Access How to access data Timeliness

Disparity Data stored in multiple and scattered locations Data stored in different formats and media

Page 4: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

4

Back-End Data Repository Issues, cont’d

Concurrency Handle multiple clients accessing

and updating the data simultaneously.

Security Prevent unauthorized accesses and updates.

Integrity Data values must meet constraints .

Example: Minimum and maximum value ranges Data values must agree with each other.

Example: Medical records for a male patient should not include pregnancy data.

Page 5: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

5

Data Modeling

A data model describeswhat data an application works with and how the data is used.

Include data that will be persisted (written to and read from a data repository)in the data model.

For databases, objects are called entities.

Model entities and their relationships to each other. Similar to Java classes and their relationships.

Page 6: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

6

Data Modeling, cont’d

Conceptual data model

A high-level user-oriented description of the data. entities relationships among the entities who will use the data (access control) how it will be used

Visualize the model with a diagram that shows names, attributes, keys, and relations.

Logical data model

Create the relational data model (in our case).

Page 7: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

7

Data Modeling, cont’d

Physical data model

The database itself.

Page 8: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

8

Example Requirements

Student, teacher, and class entities and their attributes.

Student id name which teachers

Teacher id name which classes taught

Class class code subject name class room number

Page 9: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

9

Sample Queries

Which teachers does this student have?

What classes does this teacher teach?

Who is the teacher of this class?

Which students are in this class?

Which students are in each of the classes taught by this teacher?

Page 10: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

10

The Relational Data Model

Data element: values that are stored in the repository (i.e., the database)

Values are typed. A value can be null.

Entity: a group of data elements that together are meaningful for a person or an application

Similar to Java objects. Each data element is the value of

an attribute of the entity.

Page 11: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

11

The Relational Data Model, cont’d

Table: a conceptual two-dimensional structure that contains entities of a particular type. AKA relation

Each row (AKA record) contains the attribute values of one entity.

Each column (AKA field) holds an attribute value.

Table relation Row entity Rows and columns records and fields

Page 12: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

12

Logical Data Model Initial version

Id Name Class_code Subject Room

7003 Rogers, Tom 926 Java programming 101

7008 Thompson, Art 908 Data structures 114

7012 Lane, John 951 Software engineering 210

7012 Lane, John 974 Operating systems 109

7051 Flynn, Mabel 931 Compilers 222

John Lane teachestwo classes.

Each table has a primary key (PK) field whose value in each record uniquely identifies that record.

Id Name Teacher_id_1 Teacher_id_2 Teacher_id_3

1001

Doe, John 7003 7012 7008

1005

Novak, Tim 7012 7008 null

1009

Klein, Leslie null null null

1014

Jane, Mary 7051 null null

1021

Smith, Kim 7003 7012 7051

Student

Teacher

Student id name which teachers

Teacher id name which classes taught

Class class code subject name class room number

PK

PK

Page 13: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

13

Normalization

Relational tables need to be normalized.

Improve the stability of the model. More resilient to change.

Faster record insertions and updates. Improve data quality.

There are six normal forms, but we will only consider the first two.

Each normal form includes the lower normal forms. Example: A database in second normal form

is also in first normal form.

Page 14: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

14

First Normal Form (1NF)

Separate multi-valued data elements. Break the name fields into last name and first name fields.

Id Last First Teacher_id_1 Teacher_id_2 Teacher_id_3

1001 Doe John 7003 7012 7008

1005 Novak Tim 7012 7008 null

1009 Klein Leslie null null null

1014 Jane Mary 7051 null null

1021 Smith Kim 7003 7012 7051

Id Last First Class_code Subject Room

7003 Rogers Tom 926 Java programming 101

7008 Thompson Art 908 Data structures 114

7012 Lane John 951 Software engineering 210

7012 Lane John 974 Operating systems 109

7051 Flynn Mabel 931 Compilers 222

Student

Teacher

Id Name Teacher_id_1 Teacher_id_2 Teacher_id_3

1001

Doe, John 7003 7012 7008

1005

Novak, Tim 7012 7008 null

1009

Klein, Leslie null null null

1014

Jane, Mary 7051 null null

1021

Smith, Kim 7003 7012 7051Id Name Class_code Subject Room

7003 Rogers, Tom 926 Java programming 101

7008 Thompson, Art 908 Data structures 114

7012 Lane, John 951 Software engineering 210

7012 Lane, John 974 Operating systems 109

7051 Flynn, Mabel 931 Compilers 222

Page 15: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

15

First Normal Form, cont’d Move repeating data elements

to a new table.Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Student_id Teacher_id

1001 7003

1001 7012

1001 7008

1005 7012

1005 7008

1014 7051

1021 7003

1021 7012

1021 7051

Linkingtable

Id Last First Class_code Subject Room

7003 Rogers Tom 926 Java programming 101

7008 Thompson Art 908 Data structures 114

7012 Lane John 951 Software engineering 210

7012 Lane John 974 Operating systems 109

7051 Flynn Mabel 931 Compilers 222

Student

Teacher

Student_Teacher

Id Last First Teacher_id_1 Teacher_id_2 Teacher_id_3

1001 Doe John 7003 7012 7008

1005 Novak Tim 7012 7008 null

1009 Klein Leslie null null null

1014 Jane Mary 7051 null null

1021 Smith Kim 7003 7012 7051

Page 16: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

16

Problem!

Suppose Prof. Lane decides he doesn’t want to teach Operating Systems anymore and we delete that row.

What other information do we lose as a result? We lose the fact that the class is taught in Room 109.

The problem arises because the Teacher table really contains two separate sets of data: teacher data and class data.

Id Last First Class_code Subject Room

7003 Rogers Tom 926 Java programming 101

7008 Thompson Art 908 Data structures 114

7012 Lane John 951 Software engineering 210

7012 Lane John 974 Operating systems 109

7051 Flynn Mabel 931 Compilers 222

Teacher

Page 17: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

17

Second Normal Form (2NF)

Keep related data together (cohesiveness).

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Class_code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Teacher Class

Primary key (PK)

Primary key (PK) Foreign key (FK)

How would you do this relation with a linking table?

Page 18: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

18

Final Database Structure

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Teacher

Student

Class

Student_Class John Doe takes Java programming, software engineering, and data structures.

Page 19: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

19

Final Database Structure, cont’d

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Teacher

Student

Class

Student_Class The Java Programming class

has John Doe and Kim Smith.

Page 20: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

20

Final Database Structure, cont’d

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Teacher

Student

Class

Student_Class

Mabel Flynn teaches compilers.

Page 21: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

21

Entity-Relationship (ER) Diagrams

Data modeling diagrams are called Entity-Relationship (ER) diagrams.

Use an ER diagram (ERD) to visualize your conceptual data model.

Very similar in concept to UML diagrams.

There are several styles of ER diagrams. One style is crow’s feet diagrams.

Page 22: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

22

One-to-Many Relationship

One (each) teacher teaches 0, 1, or many classes.

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

one zero

one

many

Database cardinality is only0, 1, or many (more than 1).

Teacher Class

minimum

maximum

Page 23: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

23

Many-to-Many Relationship

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Key Student_id Class_code

1 1001 926

2 1001 951

3 1001 908

4 1005 974

5 1005 908

6 1014 931

7 1021 926

8 1021 974

9 1021 931

Student Class

Student_Class

A student has 0, 1 or many classes.

A class has 1 or many students.

Class

Student

Student-Class

Page 24: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

24

Complete Entity Diagram

code (PK)teacher_id (FK)

subjectroom

Class

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Class

Page 25: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

25

SQL

Structured Query Language (SQL)

An industry standard But has many proprietary extensions

Language for managing data in a relational database.

Create and drop (delete) databases Create, alter, and drop tables of a database Retrieve, insert, update, and delete data

in the tables.

Page 26: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

26

SQL Query Examples

What is the class code of the

Java programming class?Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Class

SELECT code FROM class WHERE subject = 'Java programming'

+------+| code |+------+| 926 |+------+

Source tables

Desired fields

Selection criteria

Page 27: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

27

SQL Query Examples, cont’d

Who is teaching Java programming?

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

ClassTeacher

SELECT first, last FROM teacher, classWHERE id = teacher_id AND subject = 'Java programming'

+-------+--------+| first | last |+-------+--------+| Tom | Rogers |+-------+--------+

Selecting from multiple tablesis called a join.

Page 28: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

28

SQL Query Examples, cont’d

What subjects does John Lane teach?

SELECT code, subjectFROM teacher, classWHERE last = 'Lane' AND first = 'John'AND id = teacher_id

+------+----------------------+| code | subject |+------+----------------------+| 951 | Software engineering || 974 | Operating systems |+------+----------------------+

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

ClassTeacher

Demo

Page 29: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

29

SQL Query Examples, cont’d Who is taking Java programming?

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

SELECT id, last, firstFROM student, class, student_classWHERE subject = 'Java programming'AND code = class_code AND id = student_id

+------+-------+-------+| id | last | first |+------+-------+-------+| 1001 | Doe | John || 1021 | Smith | Kim |+------+-------+-------+

Class

Student_Class

Student

Page 30: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

30

SQL Query Examples, cont’d

What classes is John Doe taking?

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

SELECT code, subjectFROM student, class, student_classWHERE last = 'Doe' AND first = 'John'AND id = student_id AND code = class_code

+------+----------------------+| code | subject |+------+----------------------+| 908 | Data structures || 926 | Java programming || 951 | Software engineering |+------+----------------------+

ClassStudent

Student_Class

Page 31: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

31

SQL Query Examples, cont’d Who are John Lane’s students

and in which subjects?

Id Last First

1001 Doe John

1005 Novak Tim

1009 Klein Leslie

1014 Jane Mary

1021 Smith Kim

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming 101

931 7051 Compilers 222

951 7012 Software engineering 210

974 7012 Operating systems 109

Student_id Class_code

1001 926

1001 951

1001 908

1005 974

1005 908

1014 931

1021 926

1021 974

1021 931

SELECT student.first, student.last, subjectFROM student, teacher, class, student_classWHERE teacher.last = 'Lane' AND teacher.first = 'John'AND teacher_id = teacher.idAND code = class_code AND student.id = student_idORDER BY subject, student.last

+-------+-------+----------------------+| first | last | subject |+-------+-------+----------------------+| Tim | Novak | Operating systems || Kim | Smith | Operating systems || John | Doe | Software engineering |+-------+-------+----------------------+

Id Last First

7003 Rogers Tom

7008 Thompson Art

7012 Lane John

7051 Flynn Mabel

Teacher StudentClass

Student_Class

Page 32: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

32

SQL to Create and Drop a Database

Create examples:

Drop examples:

CREATE DATABASE school3;

CREATE DATABASE IF NOT EXISTS school3;

DROP DATABASE school3;

DROP DATABASE IF EXISTS school3;

Page 33: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

33

CREATE TABLE class( code INT PRIMARY KEY, teacher_id INT NOT NULL, subject VARCHAR(32) NOT NULL, room INT NOT NULL);

SQL to Create a Table

First we create a new database and connect to it:

Create the Class table:

CREATE DATABASE school3;USE school3;

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming

101

931 7051 Compilers 222

951 7012 Software engineering

210

974 7012 Operating systems

109

Page 34: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

34

Database Record Insert, Update, and Delete

There are SQL statements to insert, update, and delete records. See the SQL tutorial.

INSERT INTO teacher (id, last, first)VALUES (7088, 'Mak', 'Ron'), (7090, 'Wilson', 'Brian')

UPDATE teacherSET first = 'Ronald'WHERE first = 'Ron'

DELETE FROM teacherWHERE id = 7090

This can updatemultiple records!

Page 35: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

35

SQL to Add Rows

Add rows to the Class table:

Code Teacher_id Subject Room

908 7008 Data structures 114

926 7003 Java programming

101

931 7051 Compilers 222

951 7012 Software engineering

210

974 7012 Operating systems

109

INSERT INTO class (code, teacher_id, subject, room)VALUES (908, 7008, 'Data structures', 114), (926, 7003, 'Java programming', 101), (931, 7051, 'Compilers', 222), (951, 7012, 'Software engineering', 210), (978, 7012, 'Operating systems', 109);

Page 36: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

36

SQL Script create_school.sql

DROP DATABASE IF EXISTS school3;CREATE DATABASE school3;USE school3;

CREATE TABLE class( code INT PRIMARY KEY, teacher_id INT NOT NULL, subject VARCHAR(32) NOT NULL, room INT NOT NULL,);

INSERT INTO class (code, teacher_id, subject, room)VALUES (908, 7008, 'Data structures', 114),

(926, 7003, 'Java programming', 101),(931, 7051, 'Compilers', 222),(951, 7012, 'Software engineering', 210),

(978, 7012, 'Operating systems', 109);

Page 37: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

37

SQL Script create_school.sql, cont’d

CREATE TABLE contact_info( id INT PRIMARY KEY, email_address VARCHAR(32) NOT NULL);

INSERT INTO contact_info (id, email_address)VALUES (1, '[email protected]'),

(2, '[email protected]'),(3, '[email protected]'),(4, '[email protected]'),(5, '[email protected]'),(6, '[email protected]'),(7, '[email protected]'),(8, '[email protected]'),(9, '[email protected]');

Page 38: CS 174: Web Programming September 21 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak mak.

Computer Science Dept.Spring 2015: February 17

CS 174: Web Programming© R. Mak

38

SQL Script create_school.sql, cont’d

CREATE TABLE teacher( id INT PRIMARY KEY, last VARCHAR(32) NOT NULL, first VARCHAR(32) NOT NULL, contact_id INT REFERENCES contact_info(id));

INSERT INTO teacher (id, last, first, contact_id)VALUES (7003, 'Rogers', 'Tom', 6),

(7008, 'Thompson', 'Art', 7),(7012, 'Lane', 'John’, 8),(7051, 'Flynn', 'Mabel', 9);

Use the MySQL source command:

source create_school.sql