常用的SQL语句使用
将张三工资上涨500
UPDATE s_teacher SET money=money+500 WHERE emName=“张三”;
同时修改多个列的值,以逗号进行分隔 将张三职位改为经理,工资修改为10000
U[DATE s_teacher SER job=“经理”,money=10000 WHERE emName=“张三”;
模糊查询:
SELECT 列A,列B FROM 表 WHERE 列C LIKE 模式
通配符:“_”通配符,匹配任何单个字符 “%”通配符,匹配零个或多个任意字符
排序:
SELECT列A,列B,列C FROM 表 ORDER BY 列A;
ORDER BY 字句中升序使用asc,降序使用desc。 默认为升序。
多列排序:从高到低显示员工信息
SELECT *FROM t_employee ORDER BY money desc
实例:SELECT *FROM t_employee ORDER BY money desc ,joinDate asc.;
计算员工的年龄:
SELECT e.*,(year(now()) - year(bisthday)) age FROM t_employee e;、
查询过期商品
SELECT * FROM t_product WHERE DATE_ADD(p_createDate, INTERVAL (过期商品列) DAY) < NOW();
查询工龄在2年以上的员工:
SELECT * FROM t_employee where timestampdiff(year,joinDATE,now()) >=2;
if条件判断语句:单分支语句
SELECT s.*,if(score >=60,合格,不合格)appraise FROM t_student s;
多分支条件判断语句:
SELECT s.*,(case when score>=60 and score<80 then"中" when score>=80 and score <90 then“良”
when score>90 then "优" else“差”end)grede FROM t_student s;
常见聚合函数: 对一些数据进行统计查询 用到SQL提供的聚合函数
count()-------- 统计行的数量
统计相同的职位:
select count(*)from t_employee;
select count(distinct job)from t_employee;
count(*)统计所有的记录,count(列名)只统计非空列。
sum() -------- 获取单个列的合计值
计算数据总和:
SELECT SUM(要计算的列名) FROM t_product;
avg() --------- 获取单个列的平均值
SELECT AVG(p_price), 值=只统计非空数据 ) SUM(p_price)/COUNT(*) FROM t_product;所有数据做除
max() ---------获取单个列的最大值
min()----------获取单个列的最小值
SELECT MAX(p_price),MIN(p_price) FROM t_product;
分组查询:单列
-- 显示每个类别的商品有多少件
SELECT p_type,COUNT(*) FROM t_product GROUP BY p_type;
-- 显示价格在100元以下的商品,每个类别有多少件
SELECT p_type,COUNT(*) FROM t_product WHERE p_price<100 GROUP BY p_type;
多列分组查询:分组可实现多列分组 部门和学历各分一个组,当部门和学历一样时才分一组
select deptName,edu,count(*)eduNum FROM t_employee group by deptName,edu;
在分组查询中,查询列只能出现分组字段和聚合函数
where语句里不能执行聚合函数.
having字句:SQL提供了另外一个关键字Having来实现聚合函数的过滤,having字句是在group by 后执行的.
select 列A,聚合函数(聚合函数规范) FROM 表名 (或者使用where 过滤条件) group by 列A having 过滤条件
between and 表示一个范围搜索,大于等于下限,并且小于等于上限。
SELECT *FROM 表名 where money between 5000 and 10000 (5000到10000之间并且可以等于5000和一万)