Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structured Query Language SQL-I

Similar presentations


Presentation on theme: "Structured Query Language SQL-I"— Presentation transcript:

1 Structured Query Language SQL-I
IST210 Structured Query Language SQL-I IST 210 Organization of Data

2 Content in today’s class
IST210 Content in today’s class Create table Insert data Delete table

3 Structured Query Language
IST210 Structured Query Language Structured Query Language Acronym: SQL Pronounced as “S-Q-L” [“Ess-Que-El”] Originally developed by IBM as the SEQUEL language in the 1970s SQL-92 is an ANSI national standard adopted in 1992 SQL:2008 is current standard

4 IST210 SQL Defined SQL is not a programming language, but rather a data sub-language SQL is comprised of A data definition language (DDL) Used to define database structures A data manipulation language (DML) Data definition and updating Data retrieval (Queries) There are other SQL functions not covered in this chapter Concurrency control [See Chapter 6] Transaction control [See Chapter 6]

5 SQL for Data Definition
IST210 SQL for Data Definition The SQL data definition statements include CREATE To create database objects ALTER To modify the structure and/or characteristics of database objects DROP To delete database objects

6 IST210 Running Example DEPARTMENT(DepartmentName, BudgetCode, OfficeNumber, Phone) EMPLOYEE(EmployeeNumber, FirstName, LastName, Department, Phone, ) PROJECT(ProjectID, ProjectName, Department, MaxHours, StartDate, EndDate) ASSIGNMENT(ProjectID, EmployeeNumber, HoursWorked)

7 IST210 Running Example

8 Running Example (cont.)
IST210 Running Example (cont.)

9 Create DEPARTMENT NOT NULL: null values are NOT allowed
IST210 Create DEPARTMENT NOT NULL: null values are NOT allowed If this attribute must have value, use NOT NULL By default, we allow NULL values unless the variable is a primary key Primary key: DepartmentName is a primary key Char(35) a string with length up to 35

10 IST210 Data Types

11 Connect to your SQL Server
IST210 Connect to your SQL Server Log on an IST Windows machine If not in the lab, use remote desktop Or in your browser: Run the SQL Server application Start  Application Development and Management Microsoft SQL Server 2014 SQL Server 2014 Management Studio Parameters Server Type: Database Engine Server Name: upsql Authentication: Windows Authentication Alternate Authentication (connect to the same database): SQL Server Authentication Get your SQL account: Hit “Connect” Navigate to your own database under the Databases folder (IMPORTANT!!!) Your database name is your PSU ID

12 Create a Table in SQL Server
IST210 Create a Table in SQL Server Click “New Query” on the upper-left corner Copy & Paste script in the next slide Click “Execute” Your PSU ID

13 CREATE TABLE DEPARTMENT( DepartmentName Char(35) NOT NULL PRIMARY KEY,
IST210 CREATE TABLE DEPARTMENT( DepartmentName Char(35) NOT NULL PRIMARY KEY, BudgetCode Char(30) NOT NULL, OfficeNumber Char(15) NOT NULL, Phone Char(12) NOT NULL );

14 View the Result Right click Tables Click “Refresh”
IST210 View the Result Right click Tables Click “Refresh” Right click table DEPARTMENT Click “Design”

15 IST210 Create EMPLOYEE Table IDENTITY(x,y): Surrogate key. Start from x, increment by y Default value for Department Allow NULL values Can be omitted UNIQUE: requires unique value for Varchar(100) and Char(100) both defines a string with length up to 35 Varchar(35) the storage is the actual length Char(35) the storage is fixed 35 Define Foreign Key

16 Referential Integrity
IST210 Referential Integrity Two operations in the main table: UPDATE DELETE Two corresponding operations in the foreign key table: CASCADE Affect the primary key as well as the foreign keys NO ACTION (by default) Cannot be changed/deleted unless a record is NOT referred by any other table at all

17 ON UPDATE CASCADE/NO ACTION
IST210 ON UPDATE CASCADE/NO ACTION Original data Update “Human Resources” to “HR” CASCADE NO ACTION Error message! The operation is NOT allowed! (But it is fine to change the name of Accounting, because no Employee belongs to department Accounting.)

18 ON DELETE CASCADE/NO ACTION
IST210 ON DELETE CASCADE/NO ACTION Original data Delete “Human Resources” CASCADE NO ACTION Error message! The operation is NOT allowed! (But it is fine to delete Accounting, because no Employee belongs to department Accounting.) Julie is deleted!!!

19 CREATE TABLE EMPLOYEE(
EmployeeNumber Int NOT NULL IDENTITY (1, 1) PRIMARY KEY, FirstName Char(25) NOT NULL, LastName Char(25) NOT NULL, Department Char(35) NOT NULL DEFAULT 'Human Resources', Phone Char(12) NULL, VarChar(100) NOT NULL UNIQUE, CONSTRAINT EMP_DEPART_FK FOREIGN KEY(Department) REFERENCES DEPARTMENT(DepartmentName) ON UPDATE CASCADE ); IST210 Copy and paste the SQL script Select only the new script you just pasted and click Execute

20 In-class exercise: Create PROJECT Table
IST210 In-class exercise: Create PROJECT Table Requirements: ProjectID is a surrogate key, starting from 1000, increment 100 Use Numeric(8,2) for MaxHours, which means 8 decimal digits, and 2 decimal digits to the right of the decimal point. E.g.: Set MaxHours as 100 by default Use DateTime for StartDate and EndDate Make Update Cascade and Delete No Action

21 Create Assignment Table
IST210 Create Assignment Table A composite primary key

22 CREATE TABLE ASSIGNMENT ( ProjectID Int NOT NULL,
IST210 CREATE TABLE ASSIGNMENT ( ProjectID Int NOT NULL, EmployeeNumber Int NOT NULL, HoursWorked Numeric(6,2) NULL, CONSTRAINT ASSIGNMENT_PK PRIMARY KEY (ProjectID, EmployeeNumber), CONSTRAINT ASSIGN_PROJ_FK FOREIGN KEY (ProjectID) REFERENCES PROJECT (ProjectID) ON UPDATE NO ACTION ON DELETE CASCADE, CONSTRAINT ASSIGN_EMP_FK FOREIGN KEY (EmployeeNumber) REFERENCES EMPLOYEE (EmployeeNumber) ON DELETE NO ACTION );

23 Order to Create Tables ASSIGNMENT is dependent on PROJECT and EMPLOYEE
IST210 Order to Create Tables ASSIGNMENT is dependent on PROJECT and EMPLOYEE PROJECT is dependent on DEPARTMENT EMPLOYEE is dependent on DEPARTMENT So we need to create DEPARTMENT first; then EMPLOYEE and PROJECT; Lastly, ASSIGNMENT

24 Insert Data to Department Table
IST210 Insert Data to Department Table One to one mapping INSERT INTO DEPARTMENT VALUES('Administration', 'BC ', 'BLDG01-300', ' ');

25 Insert Data to Department Table
IST210 Insert Data to Department Table INSERT INTO DEPARTMENT VALUES('Legal', 'BC ', 'BLDG01-200', ' '); INSERT INTO DEPARTMENT VALUES('Accounting', 'BC ', 'BLDG01-100', ' '); INSERT INTO DEPARTMENT VALUES('Finance', 'BC ', 'BLDG01-140', ' '); INSERT INTO DEPARTMENT VALUES('Human Resources', 'BC ', 'BLDG01-180', ' '); INSERT INTO DEPARTMENT VALUES('Production', 'BC ', 'BLDG02-100', ' '); INSERT INTO DEPARTMENT VALUES('Marketing', 'BC ', 'BLDG02-200', ' '); INSERT INTO DEPARTMENT VALUES('InfoSystems', 'BC ', 'BLDG02-270', ' ');

26 View the Result (Software)
IST210 View the Result (Software)

27 Insert Data to Employee Table
IST210 Insert Data to Employee Table EmployeeNumber is a surrogate key, no need to insert EmployeeNumber Department is a foreign key, so we need to make sure it does exist in the DEPARTMENT table INSERT INTO EMPLOYEE VALUES( 'Mary', 'Jacobs', 'Administration', ' ',

28 Insert Data to Employee Table
IST210 Insert Data to Employee Table What if no phone number information for this employee? (When we define EMPLOYEE table, we allow phone number to be NULL) We need to specify the table and corresponding columns INSERT INTO EMPLOYEE(FirstName, LastName, Department, ) VALUES('James', 'Nestor', 'InfoSystems', OR INSERT INTO EMPLOYEE VALUES('James', 'Nestor', 'InfoSystems', NULL,

29 Insert Data to Employee Table
IST210 Insert Data to Employee Table INSERT INTO EMPLOYEE VALUES( 'Rosalie', 'Jackson', 'Administration', ' ', 'Richard', 'Bandalone', 'Legal', ' ', 'Tom', 'Caruthers', 'Accounting', ' ', 'Heather', 'Jones', 'Accounting', ' ', 'Mary', 'Abernathy', 'Finance', ' ', 'George', 'Smith', 'Human Resources', ' ', 'Tom', 'Jackson', 'Production', ' ', 'George', 'Jones', 'Production', ' ', 'Ken', 'Numoto', 'Marketing', ' ', 'Rick', 'Brown', 'InfoSystems', ' ',

30 In-Class Exercise: Insert Data to Project Table
IST210 In-Class Exercise: Insert Data to Project Table

31 IST210 Edit Data (Software) See the effects of DELETE/UPDATE CASCADE/NO ACTION

32 Delete Data (Software)
IST210 Delete Data (Software) See the effects of DELETE/UPDATE CASCADE/NO ACTION

33 Delete Table (Software)
IST210 Delete Table (Software) Caution! All data in that table will be deleted!

34 Drop Tables Wrong order!!! Employee is dependent on Department
IST210 Drop Tables Wrong order!!! Employee is dependent on Department Must delete Employee before deleting Department Correct order! The reverse order of the order we create these tables

35 Assignment 3-1 Assignment 3 is divided into two parts
IST210 Assignment 3-1 Assignment 3 is divided into two parts Part 1 (40 points) is on course website now, and is due in a week (no late submission!) How to access SQL? Come and work in the classroom Use remote desktop (if working outside of IST) Requires SQL programming, so start early!


Download ppt "Structured Query Language SQL-I"

Similar presentations


Ads by Google