Oracle 10g Cheat Sheet: 1 ER Model
Oracle 10g Cheat Sheet: 1 ER Model
0..3
4.1 Modify Tables
PatientPhoneNumber ALTER TABLE physician DROP COLUMN salary;
uniqueId {PK}
patientId {FK} ALTER TABLE physician ADD salary NUMBER(8,2);
phoneNumber
phoneType
1
8.4 Common String Functions
UPDATE physician INITCAP() Capitalize the first letter
SET salary = salary*1.2 LENGTH()
WHERE physician_id = ’S01’; UPPER()
LOWER()
ROLLBACK; SUBSTR() e.g. SUBSTR(zip,1,5)
-- undo uncommitted changes TRIM() Remove leading and trailing spaces
Example:
5.1 Delete Records
SELECT LENGTH(TRIM(’ count me ’)) FROM dual;
DELETE patient WHERE patient_id = ’389029113’;
-- 8
DELETE physician; 8.5 Common Conversion Functions
TO_NUMBER()
6 Work with Views TO_CHAR(input,format)
TO_DATE(input,format)
CREATE OR REPLACE VIEW rich_physician AS
SELECT * FROM physician WHERE salary > 100000; 8.6 Common Date Format
DD-MON-YYYY (default) e.g. 01-JAN-2007
SELECT * FROM rich_physician; MM/DD/YYYY e.g. 01/01/2007
DROP VIEW rich_physician; DAY, MONTH DDTH e.g. SUNDAY, JANUARY 04TH
DY, Month DDth e.g. SUN, January 04th
HH:MI:SS AM e.g. 01:30:23 PM
7 Work with Sequences HH24:MI e.g. 13:30
CREATE SEQUENCE seq_appt_id Example:
START WITH 1000000000
MAXVALUE 9999999999 SELECT TO_CHAR(sysdate,’MM/DD/YYYY HH:MI:SS A.M.’)
INCREMENT BY 1; FROM dual;
-- 03/05/2007 01:31:17 A.M.
INSERT INTO appointment
VALUES (seq_appt_id.NEXTVAL, ...); 9 Query a Single Table
-- how many female patients have PCP?
DROP SEQUENCE seq_appt_id; SELECT COUNT(*) FROM patient
WHERE gender = ’F’ AND pcp_id IS NOT NULL;
8 Data Manipulation
-- average physician salary, rounded to 1 decimal
8.1 Comparison Operators SELECT ROUND(AVG(salary),1) FROM physician;
=, >, <, >=, <=
<> Not equal to -- full name of those born in April
IS NULL -- || is used to concatenate strings
IS NOT NULL SELECT name_last || ’, ’ || name_first
LIKE Pattern match in strings FROM patient WHERE TO_CHAR(dob,’MON’) = ’APR’;
2
FROM appointment
-- first name starts with ’A’ GROUP BY patient_id
SELECT name_first FROM patient )
WHERE name_first LIKE ’A%’; );
9.2 GROUPING
-- average physician salary by gender
SELECT gender, AVG(salary) FROM physician
GROUP BY gender;