用 SQL 进行数据驱动决策
Tim Verdonck
Professor Statistics and Data Science
选择所有来自意大利的客户:
SELECT *
FROM customers
WHERE country = 'Italy';
|customer_id | name | country | gender | date_of_birth | date_account_start|
|------------|-------------------|---------|--------|---------------|-------------------|
| 53 | Teresio Panicucci | Italy | male | 1999-07-21 | 2018-11-06 |
| 54 | Demetrio Palermo | Italy | male | 1997-10-10 | 2018-10-17 |
| 55 | Facino Milano | Italy | male | 1973-05-23 | 2018-01-02 |
=<><<=>>=BETWEEN 运算符IN 运算符IS NULL 与 IS NOT NULL 运算符选择 genre 不是 Drama 的 movies 全部列。
SELECT *
FROM movies
WHERE genre <> 'Drama';
选择租赁价格大于等于 2 的 movies 全部列。
SELECT *
FROM movies
WHERE renting_price >= 2;
选择 customers 中开户日期在 2018-01-01 到 2018-09-30 之间的所有列。
SELECT *
FROM customers
WHERE date_account_start BETWEEN '2018-01-01' AND '2018-09-30';
选择国籍为 USA 或 Australia 的所有演员。
SELECT *
FROM actors
WHERE nationality IN ('USA', 'Australia')
从 renting 中选择 rating 为 NULL 的所有列。
SELECT *
FROM renting
WHERE rating IS NULL
从 renting 中选择 rating 不为 NULL 的所有列。
SELECT *
FROM renting
WHERE rating IS NOT NULL
选择来自意大利且开户日期在 2018-01-01 到 2018-09-30 之间的客户姓名和开户日期(AND)。
SELECT name, date_account_start FROM customers WHERE country = 'Italy' AND date_account_start BETWEEN '2018-01-01' AND '2018-09-30';| name | date_account_start | |--------------------|--------------------| | Facino Milano | 2018-01-02 | | Mario Lettiere | 2018-01-30 | | Rocco Buccho | 2018-02-27 | | Cristoforo Mancini | 2018-01-12 |
选择来自意大利,或开户日期在 2018-01-01 到 2018-09-30 之间的客户姓名和开户日期(OR)。
SELECT name, date_account_start
FROM customers
WHERE country = 'Italy'
OR date_account_start BETWEEN '2018-01-01' AND '2018-09-30';
| name | country | date_account_start |
|-----------------------|-------- |--------------------|
| Rowanne Couperus | Belgium | 2018-08-26 |
| Annelous Sneep | Belgium | 2018-05-12 |
| Jaëla van den Dolder | Belgium | 2018-02-08 |
| ... | ... | ... |
按评分对查询结果排序。
SELECT *
FROM renting
WHERE rating IS NOT NULL
ORDER BY rating;
| renting_id | customer_id | movie_id | rating | date_renting |
|------------|-------------|----------|--------|--------------|
| 552 | 28 | 56 | 1 | 2017-03-27 |
| 558 | 41 | 19 | 3 | 2019-01-13 |
| 444 | 120 | 59 | 3 | 2018-08-10 |
| 200 | 86 | 46 | 3 | 2018-08-26 |
| 234 | 104 | 28 | 4 | 2018-10-04 |
按评分降序排序结果。
SELECT *
FROM renting
WHERE rating IS NOT NULL
ORDER BY rating DESC;
| renting_id | customer_id | movie_id | rating | date_renting |
|------------|-------------|----------|--------|--------------|
| 243 | 7 | 5 | 10 | 2019-01-11 |
| 18 | 36 | 39 | 10 | 2019-03-20 |
| 396 | 7 | 40 | 10 | 2018-09-11 |
| 487 | 61 | 48 | 10 | 2017-08-14 |
| 476 | 78 | 42 | 10 | 2018-07-04 |
用 SQL 进行数据驱动决策