未命名

基本查询

查询列

select name,age,email from tempdb1; #查询列名为:name和age,email 三个列名的数据从表名为tempdb1中查询

查询所有

select * from tempdb1; #查询所有列名

修改临时表

select name,money12 as '年薪' from tempdb1; #12和as(别名) 都是在临时表中生成,不影响原表内容

条件查询

去重

select distinct manager_id from tempdb1; #distinct去重,查询列表为manager_id的列的内容,并且去掉重复

select name,age from tempdb1 order by salary asc; #查询列名为name和age从表名tempdb1中查询,order by age asc 表示age按升序查询, desc是降序

筛选 where 和逻辑判断(and,or,not) (<,>,<=,>=,!=)

select name,id from db1 where id=10; #筛选只显示id=10的数据

select salary,commission_pct db1 where salary=10000 and commission_pct=0.3; #筛选显示出salary(工资)=10000并且commission_pct(提成)=0.3的数据 or--条件1,或者条件2 有满足的都可以显示 not--除了 当前条件的 都显示出来

select salary,commission_pct db1 where salary>10000 and salary<20000;

  where salary between 6000 and 10000;    #(区间查询) between (小) and (大)--大小不能乱,而 and 可以

null(值判断) is null , is not null

 where id is not null;    #id不为空的显示出来

枚举查询 in

  wher id in(70,80,100)    #显示出 id=70的,80的,90的数据

模糊查询 like

  where name like '张_';    #筛选'张'开头的数据 ,'张_' 几个下画线表示有几个字符,'张%' 表示任意长度

分支结构查询 case when 条件1 then 结果1 when 条件2 and 条件3 then 结果2 else 结果3 end

时间查询 select sysdate(); sysdate()--当前系统时间 curdate()--当前日期-- curtime()--当前时间 week(sysdate())--一年中的第几周 year('2020-1-1')--指年日期的年份 hour(curtime)--指定时间的小时值 select minute(curtime())--获取分钟值 select datediff('2020-41-1','2019-4-1');--指定日期这间相隔的天数--输出366 select adddate('2020-4-1',4);--计算date日期加上n天后的日期

字符串查询 拼接 select concat('my','s','ql');--字符串拼接--mysql select concat(firstname,lastname) as '姓名' from db1; 替换 select insert('这是一个数据库',3,2,'mysql')--从位置3开始,替换2个,改为mysql--这是mysql数据库

转大小写
select lower('MYSQL') -- mysql
  select upper('mysql') -- MYSQL

截取
select substring('javamysqloracle',5,5)--从第5位置开始截5个--输出mysql

骤合函数 select sum(salary) from db1;--求单列所有数据的和 select avg(salary) from db1;--求单列所有数据的平均值 select max(salary) from db1;--最大值 select min(salary) from db1;--最小值 select count(id) from db1;--求id的总数(值为null的会忽略)

分组查询

  查询各部门的总人数
  select count(commission_pct) from db1;

select department_id,count(employee_id) from db1;

group by department_id;

查询各部门的平均工资
select department_id,avg(salary)from db1;
group by department_id;

查询各个部门,各个岗位的总人数
select department_id,job_id,count(employee_id) from db1;
group by department_id, job_id;

分组过滤查询
select 列名 from 表名 where 条件 group by 分组列 having 过滤规则

例 统计部门的最高工资

select department_id, max(salary) from db1;
group by department_id    --确定分组依据id
having department_id in (60,70,90)    --过滤出部门编号是60,70,90的信息


限定查询
select 列名 表名 limit 起始行,查询行数

select * from db1 limit 0,5;  --   查询前五条 (0,5)从0行开始,查5条

limit典型应用
select * from limit 0,10;    第一页 从0开始查10条
select * from limit 10,10;    第二页 从10开始查10条
select * from limit 20,10;    第三页 从20条开始查10条
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。