1、基础添加
insert into 表名 (字段名1,字段名2,字段名3)values (值1,值2,值3)
2、基础删除(根据主键删除)
delete from 表名
where u_id = #{uId}
3、基础修改(根据主键修改)
update student set u_name = #{uName},u_age={uAge},u_phone = #{uPhone}
where u_id = #{uId}
4、基础查询
select * from 表名 where 条件
5、条件过滤关键字 where
-- 查询工资在10000元以上的所有员工的全部信息
select * from 表名
where salary > 10000
6、并且 关键字 and
-- 查询100号部门10000元以上的所有工资的所有员工信息
select * from 表名
where salary >10000 and department_id=100
7、或者 关键字 or
select * from 表名
where salary >10000 and (department_id=90 or department_id=100)
8、取反 关键字 not
-- 查询不是100号部门的员工信息
select * from 表名
where department_id <> 100
9、关键字 null 的使用
-- 查询主管为null的员工
select * from 表名
where manager_id IS NULL
10、模糊查询关键字like
--查询电话号码以515开头的所有员工的信息
select * from 表名
where phone_number like '515%'
--查询电话号码中第二个字符为5的所有员工
select * from 表名
where phone_number like '_5%'
-- 查询电话以515开头并且第二段的最后一个数字为4的所有员工
select * from 表名
where phone_number like '515%4'
-- 查询工资在10000-20000之间的所有员工
select * from 表名
where salary >10000 and salary <20000
11、排序关键字order by 取前几位关键字limit m,n 升序关键字ASC 降序DESC
-- 查询工资最高的前三名员工的姓名和工资以及部门编号
select * from 表名
order by salary desc
limit 3
12、汇总函数 SUM AVG
SELECT SUM(salary) AS 总工资 FROM employees --求和
SELECT AVG(salary) AS 平均工资 FROM employees --求平均值
SELECT MAX(salary) AS 最高工资 FROM employees -- 求最大值
SELECT MIN(salary) AS 最低工资 FROM employees -- 求最小值
需求:查询每个部门的平均工资
SELECT department_id, AVG(salary) avg_salary
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id
13、多表联接的方式:1.内联接 inner join 2.左外联接 left join 3 右外联接 right join 4.全外联接 full join
三表联接查询:-- 需求:查询所有工资在10000以上这些员工的-- 姓名 电话 部门名称 工种标题
A表 left join B表 on A表字段=B表字段
left join C表 on A表字段=C表字段
where salary >10000
14、一些工具类的sql
SELECT NOW();--获取系统当前的日期时间
SELECT CURRENT_DATE();--获取系统当前的日期
SELECT CURRENT_TIME()--获取系统当前的时间
SELECT YEAR(NOW())--获取给定日期的年份
SELECT MONTH(NOW())--获取给定日期的月份
SELECT DAY(NOW())--获取给定日期的日
15、关键字having
15.1 、 having跟where的区别
首先having跟where都是条件过滤
where是在分组前对数据进行过滤
where后面不可以使用聚合
having后面可以使用聚合函数
having是在分组后对数据进行过滤
在分组的基础上可以使用having短语对分组的结果进行进一步的筛选,having 条件必须和group by 一起使用
在查询过程中执行顺序:from>where>group(含聚合)>having>order>select。
案例-- 需求:查询平均工资在10000以上的每个部门的平均工资
SELECT department_id, AVG(salary) avg_salary
FROM employees
WHERE department_id IS NOT NULL
GROUP BY department_id
HAVING avg_salary>=10000
16、union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认规则的排序;
union all: 对两个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;
更多推荐
基础sql语句的编写,学会这些sql语句的编写一般情况都够用,适合初学者
发布评论