+ All Categories
Home > Documents > HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009.

HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009.

Date post: 30-Dec-2015
Category:
Upload: roger-park
View: 234 times
Download: 0 times
Share this document with a friend
43
HAP 709 – Healthcare Databases SQL Data Manipulation Language (DML) Updated Fall, 2009
Transcript

HAP 709 – Healthcare Databases

SQL Data Manipulation Language (DML)

Updated Fall, 2009

SQL Components

SQL

DCL DDL DML

DBA Activities

Create UsersDelete UsersGrant privilegesImplement AccessSecurity

RDBMS Structure

Create/Delete DBs

Create/Delete TablesAlter Tables

Data I/O

Create Record

Read Record

Update Record

Delete Record

SQL manipulates entire column of data

No need to repeat the commands for each record

SQL is non-procedural

You do not need to tell the computer how to do the tasks. All you need to tell the

computer is what you want to see and the computer will figure out how to produce the

results you want to see

Typical Commands

• Details of commands are provided online. Here we review a select few commands

• Key words are reserved for command specifications. These words cannot be used as names for fields or tables.

Data Type Must be Specified

• Number– Integer, Small integer, Big integer, Numeric data (with

fraction), Decimal (with precision)

• String– Character, Large character, National character

• Boolean• Date/times

– Date, Time with and without time zone, Timestamp with and without time zone

• Intervals

Data Manipulation Commands

• Combined numeric values

• Calculate intervals among dates/times

• Process a series of Boolean statements

• Concatenate strings together

Logical Connectives

• Allows you to build complex predicates out of simple ones

• Set functions– Count, Max, Min, Sum, Avg, Stdev

• Sub-queries

Using SQL with Microsoft Access

• Open database and select queries from objects

• Select create query in design view• Add tables and close add tables button• Choose SQL view• Delete the select statement and enter

commands you want• When finished save and enter a name for

the query

INSERT INTO Syntax

INSERT INTO <myTable> VALUES(<Field1> <DataType>, <Field2> <DataType>,…);

INSERT INTO Syntax

INSERT INTO <myTable> VALUES(<Field1> <DataType>, <Field2> <DataType>,…);

INSERT INTO PAT VALUES(983883,'JOHN','MARTINEZ');

INSERT INTO in MS Access

Note: In MS Access the INSERT INTO is called an Append Query

UPDATE Statement (1)

UPDATE <myTable> SET<Field1> = <Value1> WHERE {condition};

UPDATE Statement (1)

UPDATE <myTable> SET<Field1> = <Value1> WHERE {condition};

UPDATE PAT SET PAT_FNM = 'JOHNNY' WHERE PAT_ID = 983883;

MS Access Example

Updating Multiple Records(1)

A new field needs to be populated after modification of the original table structure

UPDATE Statement (2)

UPDATE <myTable> {join} SET<Field1> = <Value1> WHERE {condition};

UPDATE Statement (2)

UPDATE <myTable> {join} SET<Field1> = <Value1> WHERE {condition};

UPDATE PAT INNER JOIN TEMP ON PAT.PAT_ID = TEMP.PAT_ID SET PAT.PAT_TITLE = TEMP.TITLE ;

Multiple Updates in MS Access(1)

Updating Multiple Records(2)

The medical procedure cost table needs to be reflect a 12.5% increase

UPDATE Statement (3)

UPDATE <myTable> SET<Field1> = <Value1> WHERE {condition};

UPDATE Statement (3)

UPDATE <myTable> SET<Field1> = <Value1> WHERE {condition};

UPDATE MED_PROCEDURE SET COST = 1.125 * COST ;

Multiple Updates in MS Access(2)

Deleting a Record

DELETE FROM <myTable> {condition};

Deleting a Record

DELETE FROM PAT WHERE PAT_ID = 983883;

DELETE FROM <myTable> {condition};

MS Access Example

Reading the Data: the SELECT Statement

SELECT {fields || *} FROM <myTable> {condition};

Reading the Data: the SELECT Statement

SELECT {fields || *} FROM <myTable> {condition};

SELECT PAT_LNM FROM PAT;

SELECT * FROM PAT;

SELECT MED_PROC_NM FROM MED_PROCEDURE WHERE COST > 20000;

MS Access

MS Access

MS Access

JoinsWho is the primary physician for patient Mary Lindfors?

Natural Join

SELECT PAT_FNM, PAT_LNM, CLNCIAN_NM FROM PAT, CLNCIANWHERE PAT.PAT_ID = CLNCIAN.PAT_IDAND PAT_FNM = 'MARY'AND PAT_LNM = 'LINDFORS';

Who is/are the primary physician(s) for patient Mary Lindfors?

MS Access

Outer Joins: RIGHT JOIN

SELECT PAT.PAT_FNM, PAT.PAT_LNM, CLNCIAN.CLNCIAN_NMFROM CLNCIAN RIGHT JOIN PAT ON CLNCIAN.PAT_ID = PAT.PAT_ID;

Shows all the records from PAT and those records from CLNCIAN where the PAT_ID values are equal in both tables

LEFT JOIN

SELECT PAT.PAT_FNM, PAT.PAT_LNM, CLNCIAN.CLNCIAN_NMFROM CLNCIAN LEFT JOIN PAT ON CLNCIAN.PAT_ID = PAT.PAT_ID;

Shows all the records from CLNCIAN and those records from PAT where the PAT_ID values are equal in both tables

Union Operator

• The tables must have the same number of columns

• Corresponding columns must all have identical data types and lengths

• Command syntaxSelect * From <First Table name>

Union

Select * From <Second Table name>;

Union of Two Tables

RecalledMedication in Use

Union of Two Tables

RecalledMedication in Use

Union of Two Tables

RecalledMedication in Use

Intersect

• Only rows of data that appear in both source tables are selected

• Command SyntaxSelect * From <Table name>

Intersect Corresponding (<Fieldname>, <Fieldname>, …)

Select * From <Second Table name>;

Except

• Return all rows that appear in first table but not in the second table

Select * From <Table name>

Except Corresponding (<Fieldname>, <Fieldname>, …)

Select * From <Second Table name>;

Take Home Lessons

It is possible to write your own SQL for data manipulation


Recommended