美文网首页
数据库高级查询

数据库高级查询

作者: 最后的夏t | 来源:发表于2018-09-19 09:53 被阅读0次

                                                                                            查询相关

1.判断某个属性为null时,用is null;

2.判断某个属性为非null时,用 is not null;

3.别名 :

selcet sname as '姓名',sal as '工资' from emp

  selcet sname '姓名',sal '工资' from emp

selcet sname 姓名,sal 工资 from emp

4.去掉重复的distinct,把distinct加到去掉重复的字段之前

查询所有的职位去掉重复的:

select distinct job from emp;

5.and 和java中的&&一样  or和java中||一样

6.查询工资为1500,5000,3000的员工信息

select * from emp where sal=1500||sal=3000||sal=5000;

select * from emp where sal in (1500,3000,5000);

7.between x and y 在x和y之间,包含x,y

查询工资在2000到4000之间的员工信息(包含2000和4000)

select * from emp where sal between 2000 and 4000;

查询工资小于2000,大于4000的员工信息

select * from emp where sal not between 2000 and 4000;

8.模糊查询 like

_ 代表单个未知字符            %代表0或多个未知字符

举例:

以a开头  a%            以a结尾  %a        包含a  %a%     

        倒数第三个字符是a  %a__    第二个字母是a最后字母是b    _a%b

        查询标题title中包含记事本的商品标题:

select title from t_item where title like '%记事本%';

查询标题title中不包含记事本的商品标题:

select title from t_item where title not like '%记事本%';

9.排序: 如果有条件写在条件的后面 没有条件写在表名的后面

默认是升序  desc降序    asc升序

查询员工姓名和工资按照工资降序排序:

select ename,sal from emp order by sal desc;

多字段排序: order by 属性 desc/asc,属性 desc/asc...

查询员工的姓名工资部门编号,按照部门编号降序如果编号相同按照工资升序排序

select ename,sal,deptno from emp order by deptno desc,sal asc;

分页查询:limit x,y 第一个参数代表跳过的条数,第二参数代表每页的数量.

每页10条,第一页: limit 0,10      每页5条第8页:  limit 5*7,8;

每页10条,第三页: limit 20,10      每页12条第3页: limit 2*12,12

limit 关键字通常写在sql语句的最后面

查询工资前三名的员工姓名和工资

select ename,sal from emp order by sal desc limit 0,3;

10.数值计算 + - * /  5%3等效mod(5,3)

查询所有的员工姓名,工资及年终奖(工资*5)

select ename,sal,sal*5 年终奖 from emp;

11.ifnull(x,y)函数

age=ifnull(x,y)如果x的值为null则赋值y,如果不为null,则赋值x

将emp表中奖金为null的全部改为0

update emp set comm = ifnull(comm,0);

12.聚合函数 对多行数据进行统计

求和: sum(求和的字段名) 

查询所有员工的工资总和

select sum(sal) from emp

平均值: avg(字段名)

查询10号部门的平均工资

select avg(sal) from emp where deptno=10;

最大值: max(字段名)

查询30号部门的最高工资

select max(sal) from emp where deptno=30;

最小值: min(字段名)

查询dell商品中最便宜的商品价格

select min(price) from t_item where title like '%dell%';

统计数量:count(字段名/*)

查询工资大于等于3000的员工数量

select count(*) from emp where sal>=3000;

13.日期相关函数

select 函数  ,可以执行函数

获取当前的年月日时分秒  now()  select now();

获取当前年月日 curdate()

获取当前时分秒 curtime()

提取时间分量 年 月 日 时 分 秒

select extract(year from now());

select extract(month from now());

select extract(day from now());

select extract(hour from now());

select extract(minute from now());

select extract(second from now());

                                                                                            日期格式化函数

(标准格式转为非标准格式):date_format(日期,format) 

format:  %Y四位年  %y两位年

  %m两位月  %c一位月

  %d日

  %H 24小时  %h 小时

  %i 分      %s秒

把now()格式改成  年月日时分秒

select date_format(now(),'%Y年%m月%d日%H时%i分%s秒');

(非标准格式转为标准格式):str_to_date(非标准时间,fromat)

        14.08.2008 08:00:00转为标准格式

select str_to_date('14.08.2018 08:00:00','%d.%m.%Y %H:%i:%s');

14.字符串相关函数

    1.字符串拼接 concat(s1,s2);

查询员工姓名和工资,要求工资以元为单位

select ename,concat(sal,'元') from emp; 

    2.获取字符串的长度 char_length(str)

查询员工姓名和名字的长度

select ename,char_length(ename) from emp;

    3.获取字符串在另一个字符串出现的位置 instr(str,substr) || locate(substr,str)

    4.插入字符串 insert(str,start,length,newstr)

select insert('sdgjhashdaj',2,3,'xiao');

结果:sxiaohashdaj

    5.去空白 trim(str)

    6.截取字符串 left(str,start)从左边截  rigth(str,start)从右边截

                  substring(str,start,length)

    7.重复repeat(str,count)

select repeat('ab',2);

结果: abab

    8.replace(str,odl,new)

    9.反转 reverse(str)

select reverse('abc');

结果: cba

15.数学相关函数

    1.向下取整    floor(num)

select floor(3.58);

结果:3

    2.四舍五入  round(num)

select round(2.33);

结果:2

      四舍五入    round(num,m)  m代表小数位数

select round(23.889,2);

结果:23.89

    3.非四舍五入  truncate(num,m)  m代表小数位数

select truncate(23.889,2);

结果:23.88

    4.随机数  rand 0-1的随机数

select floor(rand()*9);

结果:8

相关文章

  • Models and Databases 4.search

    文本查询 使用contains icontains 数据库高级比较方式 使用PGSQL 基于文档的查询 全文搜索:...

  • SQL 查询命令

    一 数据库基本操作 二 高级查询 1. 新建表结构 2. 聚合查询 3. 多表查询 4. 连接查询 关于INNER...

  • 数据库高级查询

    查询相关 1.判断某个属性为null时,用is null; 2.判断某个属性为非null时,用 is not nu...

  • 数据库 - 高级查询

    导入SQL文件: window系统 window把文件放在d/E/F盘根目录 关键字: source 格式: so...

  • 法律调研

    一、要有专业的法律数据库。如北大法宝、法律信息数据库; 二·、掌握高级查询技巧。如加“and”、"not"、'or...

  • 数据库知识点

    数据库知识点 数据库相关概念 mysql安装与使用 navicat的使用 SQL语言的查询(重点) 高级(了解) ...

  • mybatis的mapper特殊字符转移以及动态SQL条件查询

    前言 我们知道在项目开发中之前使用数据库查询,都是基于jdbc,进行连接查询,然后是高级一点jdbcTemplat...

  • 数据库:SQL高级查询,分页查询

    分页查询: 一般的分页查询使用简单的 limit 子句就可以实现。 LIMIT 子句可以被用于指定 SELECT ...

  • python——数据库高级查询

    分组,姓名:每个人的总分 查询科目名称和平均分 查询未删除科目的名称,最高分,平均分 自关联 从sql文件导入数据...

  • 数据库高级查询2

    分组查询(group by) 分组查询: 1.查询每个部门的最高工资 select deptno,max(sal)...

网友评论

      本文标题:数据库高级查询

      本文链接:https://www.haomeiwen.com/subject/cvmbnftx.html