SQL Action Commands: Murach, Chapter 7
SQL Action Commands: Murach, Chapter 7
SQL Action Commands: Murach, Chapter 7
Murach, Chapter 7
Insert Syntax
(external source)
Insert Syntax
(internal source)
New Employee
INSERT INTO tblEmployee ( EID, FirstName, LastName, JobTitle, AnnualSalary, Active, Supervisor, Password, SSN, Gender, DOB, Phone) VALUES ( 'JM7021', 'Jennifer', 'MacDougal', 'Assistant Manager', 97500, 'Y', 'C123', 'JennyMac', '458-03-7182', 'F', '11/28/1969', '(512) 555-2341')
Referential integrity and validation rules automatically checked. Secondary indices automatically updated.
New Employee
INSERT INTO tblFamily ( FID, FirstName, LastName, EID, Relationship, Gender, DOB ) VALUES ( 'FW9473', 'Mark', 'MacDougal', 'JM7021', 'Spouse', 'M', '6/10/1969' ) INSERT INTO tblFamily ( FID, FirstName, LastName, EID, Relationship, Gender, DOB ) VALUES ( 'FJ3911', 'Allison', 'MacDougal', 'JM7021', 'Child', 'F', '3/5/1997' ) Referential integrity and validation rules automatically checked. Secondary indices automatically updated.
(physical table)
INSERT INTO tblWorkedIn2010 ( EID, FullName ) SELECT EID, FirstName + ' ' + LastName FROM tblEmployee WHERE EID IN ( SELECT Distinct EID FROM tblPaycheck WHERE YEAR(PayDate) = 2010 )
(virtual table)
CREATE VIEW qryWorkedIn2010 AS SELECT EID, FirstName + ' ' + LastName AS FullName FROM tblEmployee WHERE EID IN ( SELECT Distinct EID FROM tblPaycheck WHERE YEAR(PayDate) = 2010 )
(virtual table)
CREATE VIEW qryWorkedLastYear AS SELECT EID, FirstName + ' ' + LastName AS FullName FROM tblEmployee WHERE EID IN ( SELECT Distinct EID FROM tblPaycheck WHERE YEAR(PayDate) = YEAR(GetDate()) - 1 )
Update Syntax
UPDATE table SET replacement statements WHERE row condition
New Address
UPDATE SET tblEmployee Street = '6423 Fulton Blvd', Apt = Null, City = 'Austin', State = 'Tx', Zip = '78751', Phone = '(512) 555-2017' EID = 'JM7021'
WHERE
Referential integrity and validation rules automatically checked. Secondary indices automatically updated.
Promote Employees
UPDATE SET WHERE AND AND tblEmployee JobTitle = 'Senior Sales Representative', AnnualSalary = ROUND(1.03 * AnnualSalary, 2) Active = 'Y' JobTitle = 'Sales Representative' AnnualSalary >= 52000
Referential integrity and validation rules automatically checked. Secondary indices automatically updated.
What is wrong with this simplistic approach? And, can you fix it?
Delete Syntax
DELETE table WHERE row condition
Stanley Andrews
DELETE tblPaycheck WHERE EID = 'RD9000' OR EID = 'JG0742' OR EID = 'FH0441' OR EID = 'HL0255' DELETE tblPaycheck WHERE EID IN ( SELECT EID FROM tblEmployee WHERE Active = 'N' )
(Children First)
Paycheck Archival
DECLARE @Cutoff AS DateTime SET @Cutoff = '12/31/2009'
INSERT INTO tblPaycheckArchive ( ArchiveDate, CheckNumber, PayDate, EID, GrossAmount, NetAmount) SELECT GetDate(), CheckNumber, PayDate, EID, GrossAmount, NetAmount FROM tblPaycheck WHERE PayDate <= @Cutoff
DELETE tblPaycheck WHERE PayDate <= @Cutoff