SQL-SELECT基本操作

1、SELECT语句
SELECT *
FROM web_events;
SELECT channel,account_id
FROM web_events;
 
2、LIMIT 限制条件
SELECT *
FROM web_events
LIMIT 15;
##仅返回前15条数据,缩减查询的时间
 
3、ORDER BY
1)单个排序
SELECT id, occurred_at, total_amt_usd
FROM orders
ORDER BY occurred_at
LIMIT 10;
# ORDER BY 在FROM和LIMIT之间
SELECT id, occurred_at, total_amt_usd
FROM orders
ORDER BY occurred_at DESC
LIMIT 10;
#DESC表示降序
 
2)多个排序——先出现先起作用
SELECT *
FROM orders
ORDER BY occurred_at DESC, total_amt_usd DESC
LIMIT 5;
SELECT *
FROM orders
ORDER BY occurred_at, total_amt_usd
LIMIT 10;
 
4、WHERE(需要放在ORDER BY 和WHERE 之前)
1)与数字数据一起使用
SELECT *
FROM orders
WHERE gloss_amt_usd >= 1000
LIMIT 5;
2)与非数字数据一起使用
SELECT name, website, primary_poc
FROM accounts
WHERE name = 'Exxon Mobil';
##不等于
WHERE name != 'Exxon Mobil';
 
5、算术运算符
SELECT id, account_id, standard_amt_usd/standard_qty AS unit_price
FROM orders
LIMIT 10;
##除法中分母为0要如何解决?
 
6、逻辑运算符:LIKE、IN、NOT、AND&BETWEEN、OR
    1)LIKE:可用于进行类似于使用 WHERE 和 = 的运算,但是这用于你可能 不 知道自己想准确查找哪些内容的情况。
SELECT name
FROM accounts
WHERE name LIKE 'C%';  #通配符(%),比如'%one%'/'%s'
 
  2)IN :用于执行类似于使用 WHERE 和 = 的运算,但用于多个条件的情况。
SELECT *
FROM web_events
WHERE channel IN ('organic', 'adwords');
 
  3)NOT:这与 IN 和 LIKE 一起使用,用于选择 NOT LIKE 或 NOT IN 某个条件的所有行。
SELECT name, primary_poc, sales_rep_id
FROM accounts
WHERE name NOT IN ('Walmart', 'Target', 'Nordstrom');
SELECT name
FROM accounts
WHERE name NOT LIKE '%one%';
 
  4)AND & BETWEEN:可用于组合所有组合条件必须为真的运算。
SELECT *
FROM web_events
WHERE channel IN ('organic', 'adwords') AND occurred_at BETWEEN '2016-01-01' AND '2017-01-01'
ORDER BY occurred_at DESC;
#为什么是2017-1-1?是因为 对于单纯的日期数据而言(只包含年月日不包含时间的数据,比如 '2016-12-31'),其默认时间为日期当天的 00:00:00(也就是午夜时分),而 BETWEEN 通常是不包含端点在内的。
 
  5)OR:可用于组合至少一个组合条件必须为真的运算。
SELECT *
FROM accounts
WHERE (name LIKE 'C%' OR name LIKE 'W%')
           AND ((primary_poc LIKE '%ana%' OR primary_poc LIKE '%Ana%')
           AND primary_poc NOT LIKE '%eana%');
#注意多条逻辑语句组合时括号()的使用
 

猜你喜欢

转载自www.cnblogs.com/kimmywang/p/10835698.html