Learning SQL by Alan Beaulieu The following errata were *corrected* in the 4/07 reprint. This page was updated April 11, 2007. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification ############################################## (xi) Section: "Conventions Used in This Book"; italics removed from the term "UPPERCASE" ############################################## (12) Section: "What's in Store"; 1st sentence; special emphasis of the" -> special emphasis on the" ############################################## {21} Table 2-5, range for HH (hours); 01 to 24 -> 00 to 23 ############################################## {21} Table 2-5, range for MI (minutes); 01 to 60 -> 00 to 59 ############################################## {47} 1st paragraph; e.dept_id = d.dept_id -> employee.dept_id = department.dept_id ############################################## (50) 3rd paragraph; If you want to your result set in a particular... -> If you want your result set in a particular... ############################################## {58} the sentence: ...I am looking for nonterminated employees who are either nontellers or who began working for the bank in 2003 or later. -> ...I am looking for nonterminated employees who are both nontellers and began working for the bank in 2003 or later. ############################################## {59} WHERE clause at top of page: changed to: WHERE end_date IS NULL AND title != 'Teller' AND start_date >= '2003-01-01' ############################################## (77) 2nd paragraph; value of 1 in it's dept_id column... -> value of 1 in its dept_id column... ############################################## {83} the sentence; The first subquery, which starts on line 3 and is given the alias e, finds all inexperienced tellers -> The first subquery, which starts on line 3 and is given the alias e, finds all experienced tellers ############################################## (83) 2nd paragraph; First, the account table is joined to the inexperienced teller subquery... -> First, the account table is joined to the experienced teller subquery... ############################################## (113) 2nd paragraph, 2nd sentence; The fourth comparison also 0yields, -> The fourth comparison also yields 0, ############################################## (116) Last paragraph, 1st sentence; ...replaced with the string 'hello' Oracle Database... -> ...replaced with the string 'hello'. Oracle Database... ############################################## (137) Last row, under Min(); Return -> Returns ############################################## {142} 2nd paragraph; Throughout the paragraph, "data.num" was used as an argument for the aggregate functions. This was changed to "val" instead. ############################################## {151} 2nd SELECT statement on the page; FROM account a -> FROM account ############################################## (186) Paragraph continued from page 185; Therefore, when using outer joins (both inner and outer), make sure you think carefully about whether to specify a left or right outer join. -> Therefore, when using outer joins, make sure you think carefully about whether to specify a left or right outer join. ############################################## [193] MySQL example, line 1; SELECT a.account_id, a.cust_id, b.name -> SELECT a.account_id, a.cust_id, a.open_branch_id, b.name ############################################## (219) 1st row; of rows larger then -> of rows larger than ############################################## {220} SHOW INDEX statement; Key_name: dept_name_uidx -> Key_name: dept_name_idx ############################################## (230) 2nd paragraph; While neither SQL Server or Oracle Database generate an... -> While neither SQL Server nor Oracle Database generates an... ############################################## (244) 4th paragraph, 1st sentence; Earlier in the chapter, I showed you how write queries... -> Earlier in the chapter, I showed you how to write queries... ############################################## {256} app C, example 6-3, 2nd query; SELECT fname, name -> SELECT fname, lname ############################################## (262) 5th line of solution for Exercise 9-4; WHERE b. branch_id = e.assigned_branch_id) branch_name -> WHERE b.branch_id = e.assigned_branch_id) branch_name ##############################################