![](https://csdnimg.cn/release/download_crawler_static/1567223/bg10.jpg)
xvi LIST OF FIGURES
4.10 New friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.11 WHERE test for Sandy Gleason . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.12 Friends in New Jersey and Pennsylvania . . . . . . . . . . . . . . . . . . . . . . 32
4.13 Incorrectly mixing AND and OR clauses . . . . . . . . . . . . . . . . . . . . . . . 33
4.14 Correctly mixing AND and OR clauses . . . . . . . . . . . . . . . . . . . . . . . . 33
4.15 Selecting a range of values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.16 Firstname begins with D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.17 Regular expression sample queries . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.18 Complex regular expression queries . . . . . . . . . . . . . . . . . . . . . . . . 39
4.19 CASE example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.20 Complex CASE example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.21 DISTINCT prevents duplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.22 Function examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.23 Operator examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.24 SHOW and RESET examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.1 Examples of Aggregates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2 Aggregates and NULL values . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3 Aggregate with GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4 GROUP BY with two columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.5 HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.1 Qualified column names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
6.2 Joining tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.3 Creation of company tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.4 Insertion into company tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.5 Finding a customer name using two queries . . . . . . . . . . . . . . . . . . . . 64
6.6 Finding a customer name using one query . . . . . . . . . . . . . . . . . . . . . 64
6.7 Finding an order number for a customer name . . . . . . . . . . . . . . . . . . . 65
6.8 Three-table join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.9 Four-table join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.10 Employees who have taken orders for customers . . . . . . . . . . . . . . . . . 67
6.11 Joining customer and employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.12 Joining part and employee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.13 The statename table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.14 Using a customer code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.15 A one-to-many join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.16 Unjoined tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.17 Using table aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.18 Examples of self-joins using table aliases . . . . . . . . . . . . . . . . . . . . . . 74
6.19 Non-equijoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75