数据库复杂的 SQL 语句总结

MySQL数据库

sql语句中写 if 判断语句

– 判断函数 判断表达式可以是子查询
– if(exp, v1, v2) 根据 exp 判断条件, true则返回 v1,false 则返回 v2。
– 判断条件中还可以加 or and 关键字

select 
IF( 1 > 2, true, false) as `is_biding`,
IF((select count(*) from edu_user where user_id = '0') > 0 OR s.id = '0', s.video_url,null ) as `s.video_url`
from edu_course s where s.id = 0

SQL中的case when then else end用法

SELECT country,
    SUM(CASE WHEN p.sex = '1' THEN p.population ELSE 0 END) AS '男',
    SUM(CASE WHEN p.sex = '2' THEN p.population ELSE 0 END) AS '女'
FROM
    t_b_population p
GROUP BY country;

sql 查询重复数据

查询 Person 表中重复的 Email
+----+---------+
| Id | Email   |
+----+---------+
| 1  | [email protected] |
| 2  | [email protected] |
| 3  | [email protected] |
+----+---------+
-- 方法一:
select Email from (select count(1) as t,Email from Person group by Email)r  where r.t>1;
-- 方法二:
select Email from Person group by Email having count(Email) > 1;

MySQL创建分配只读用户

语句中第一个 星 * 表示所有的库,第二个星表示所有的表这个可以指定单库单表。
% 号表示那个 IP 可以连接,这里可以限定连接的IP地址。
username及是连接是用的用户名,password则是密码。

GRANT SElECT ON *.* TO 'username'@'%' IDENTIFIED BY "password";

你可能感兴趣的:(mysql,数据库,sql)