导入*.sql数据到数据库

  • windows系统

    ​ source d:/tables.sql;

  • Linux系统

    source /home/soft/桌面/tables.sql;

  • 导入完成后 测试查询

    1. show tables; 查询出两个表 empdept
    2. select * from emp; 里面会有一堆数据

is null 和 is not null

  • 当查询字段的值为空值时 不能用等号进行判断,使用is

    1. 1. 查询没有上级领导的员工信息;
    2. select * from emp where manager is null;
    3. 2. 查询有上级领导的员工信息;
    4. select * from emp where manager is not null;

别名 --select查询 as

  • 把查询到的员工姓名name 改成名字

    1. - select name as '名字' from emp;
    2. - select name '名字' from emp;
    3. - seclect 名字 from emp;

去重distinct

  1. 1. 查询员工表中出现了哪几种不同的工作
  2. select distinct job from emp;
  3. 2. 查询员工表里面有哪几个部门id
  4. select distinct deptId from emp;

比较运算符 > < >= <= = !=和<>

  1. 1. 查询工资大于等于3000的员工姓名和工资
  2. select name,sal from emp where sal>=3000;
  3. 2. 查询1号部门的员工姓名和工作
  4. select name,job from emp where deptId=1;
  5. 3. 查询不是程序员的员工姓名,工资和工作 (用到上面两种不等的写法)
  6. select name,sal,job from emp where job!='程序员';
  7. select name,sal,job from emp where job<>'程序员';
  8. 4. 查询有奖金的员工姓名和奖金
  9. select name,comm from emp where comm>0;

逻辑运算符(自定义)

- and / or / not 与或非

  • and 类似Java中的 &&

  • or 类似Java中的||

  • not 类似Java中的!

    1. 1. 查询1号部门工资高于2000块钱的员工信息
    2. select * from emp where deptId=1 and sal>2000;
    3. 2. 查询是程序员或者工资等于5000的员工信息
    4. select * from emp where job='程序员' or sal=5000;
    5. 3. 查询出CEO和项目经理的名字
    6. select name from emp where job='CEO' or job='项目经理';
    7. 4. 查询出奖金为500并且是销售的员工信息 select * from emp where comm=500 and job='销售'

in关键字

  • 当查询某个字段的值为多个值的时候使用

    1. -
    2. 1. 查询出工资为3000,15005000的员工信息
    3. select * from emp where sal=3000 or sal=1500 or sal=5000;
    4. select * from emp where sal in(3000,1500,5000);
    5. 2. 查询工资不是3000,15005000的员工信息
    6. select * from emp where sal not in(3000,1500,5000);
    7. 3. 查询1号和2号部门工资大于2000的员工信息
    8. select * from emp where deptId in(1,2) and sal>2000;

between x and y

  • 查询数据在两者之间使用 , 包含x和y

    1. 1. 查询工资在20003000之间的员工信息
    2. select * from emp where sal>=2000 and sal<=3000;
    3. select * from emp where sal between 2000 and 3000;
    4. 2. 查询工资在20003000之外的员工信息
    5. select * from emp where sal not between 2000 and 3000;

模糊查询like

  • _: 代表1个未知字符
  • %: 代表0或多个未知字符
  • 举例:
    • 以x开头 x%
    • 以x结尾 %x
    • 包含x %x%
    • 第二个字符是x _x%
    • 第三个是x倒数第二个是y _ _ x%y _
  1. 练习1:
  2. 查询姓孙的员工信息
  3. select * from emp where name like "孙%";
  4. 查询工作中第二个字是售的员工信息
  5. select * from emp where job like "_售%";
  6. 查询名字中以精结尾的员工姓名
  7. select name from emp where name like '%精';
  8. 查询名字中包含僧的员工并且工资高于2000的员工信息
  9. select * from emp where name like '%僧%' and sal>2000;
  10. 查询1号和2号部门中工作以市开头的员工信息
  11. select * from emp where deptId in(1,2) and job like '市%';
  12. 查询有领导的员工中是经理的员工姓名
  13. select name from emp where manager is not null and job like '%经理%';
  1. 练习2:
  2. select * from t_item where title like '%记事本%'and price<100;
  3. select * from t_item where title like '得力' and price between 50 and 100;
  4. select * from t_item where image is not null;
  5. select * from t_item where category_id in(238,917);
  6. select * from t_item where sellpoint '%赠%';
  7. select title from t_item where title not like '%得力%';
  8. select * from t_item where price not between 50 and 200;

排序 order by

  • 格式: order by 排序字段名 asc升序( 默认 ) 或 desc降序

  • 多字段排序 : order by 字段名1 asc/desc,字段名2 asc/desc;

    1. 1. 查询所有员工的姓名和工资并安装工资升序排序
    2. select name,sal from emp order by sal;
    3. 2. 查询所有员工的姓名和工资并安装工资降序排序
    4. select name,sal from emp order by sal desc;
    5. 3. 查询所有员工姓名,工资和部门编号 , 安装部门编号升序排序,如果部门编号一致则按照工资降序排序
    6. select name,sal,deptid from emp order by deptid ,sal desc;

分页查询limit

  • 格式: limit 跳过的条数,请求的条数(每页的条数)
  • 跳过的条数=(请求的页数-1)*每页的条数
  • 举例 :
    • 查询第一页的10条数据 limit 0,10
    • 查询第二页的10条数据 limit 10,10
    • 查询第5页的10条数据 limit 40,10
    • 查询第8页的5条数据 limit 35,5
    • 查询第7页的9条数据 limit 54,9
  1. 工资升序排序 查询前三名
  2. select * from emp order by sal limit 0,3;
  3. 查询员工表中工资降序排序 第二页的3条数据
  4. select * from emp order by sal desc limit 3,3;
  5. 查询1号部门中工资最高的员工信息
  6. select * from emp where deptId=1 order by sal desc limit 0,1;
  7. 查询销售相关工作里面赚钱最少的员工姓名和工资
  8. select name,sal from emp where job like '%销售%'
  9. order by sal limit 0,1;
  10. 按照工资降序排序查询工资高于1000的所有员工姓名和工资, 查询第三页的两条数据
  11. select name,sal from emp where sal>1000 order by sal desc limit 4,2;

数值计算 + - * / %

  • 7%2 等效于 mod(7,2)
  1. 1. 查询每个员工的姓名,工资和年终奖(年终奖=5*月工资)
  2. select name,sal,sal*5 from emp;
  3. //select price,num,price*num 总金额 from t-item;
  4. 2.查询2号部门中的员工姓名,工资和涨薪5块钱之后的工资
  5. select name,sal+5 from emp;
  6. 3.让员工表中3号部门的员工每人涨薪5块钱
  7. uddate emp set sal=sal+10;
  8. - 改回去
  9. upate emp set sal=sal-10

08 MySQL_SQL_DQL_select数据查询条件判断的更多相关文章

  1. Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定

    Angular4.x 创建组件|绑定数据|绑定属性|数据循环|条件判断|事件|表单处理|双向数据绑定 创建 angular 组件 https://github.com/angular/angular- ...

  2. js 树结构数据遍历条件判断

    代码: /** * 树结构数据条件过滤 * js 指定删除数组(树结构数据) */ function filter (data, id) { var newData = data.filter(x = ...

  3. 取得数据库中数据 查询条件where使用规则

    string where = string.Format("DnX < {0} and DnD > {0} and Types = '{1}' and Type1 = '{2}' ...

  4. MySQL多表数据查询(DQL)

    数据准备: /* ------------------------------------创建班级表------------------------------------ */ CREATE TAB ...

  5. MYSQL数据类型和where条件判断

    MySQL中常见的数据类型 一.字符型 ① CHAR(N):固定N个字符长度的字符串,如果长度不够自动空格补齐; N的范围 0~255 ② VARCHAR(N): 存储可变长度的字符串,最常用 ③ T ...

  6. MySql数据查询的逻辑蕴含条件问题

    SQL语言中没有蕴含逻辑运算.但是,可以利用谓词演算将一个逻辑蕴含的谓词等价转换为:p->q ≡┐p∨q. 我们通过一个具体的题目来分析:(具体的表和数据详见文章:Mysql数据库中的EXIST ...

  7. mysql中运用条件判断筛选来获取数据

    ### part1 单表查询 sql查询完整语法: select .. from .. where .. group by .. having .. order by .. limit .. 一.wh ...

  8. 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理

    在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...

  9. easyUI datagrid 根据查询条件 选中对应数据的行

    开始 输入了 土豆,南瓜,再次是小青菜,每次输入点击搜索的时候(模糊查询),选中的当前数据对应的行 在做之前,在网上查询了许多资料,也在技术群里问过许多次,弄了好久终于好了. 第一次写博客真不知道写啥 ...

随机推荐

  1. ONNXRuntime学习笔记(二)

    继上一篇计划的实践项目,这篇记录我训练模型相关的工作. 首先要确定总体目标:训练一个pytorch模型,CIFAR-100数据集测试集acc达到90%:部署后推理效率达到50ms/张, 部署平台为wi ...

  2. Kubernetes容器之间的通信浅谈

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ 作者: Matt Zand 和 Jim Sullivan 译者: 穿过生命散发芬芳F Kubernetes是一个容器化的解决 ...

  3. CSAPP 之 DataLab 详解

    前言 本篇博客将会剖析 CSAPP - DataLab 各个习题的解题过程,加深对 int.unsigned.float 这几种数据类型的计算机表示方式的理解. DataLab 中包含下表所示的 12 ...

  4. xrdp出现xrdp vnc error problem connecting解决办法

    # generate a file called .xsession in your home directory, and set default desktop echo "xfce4- ...

  5. linux下nginx软件的学习

    参考博客 1.nginx是什么 nginx是一个开源的,支持高性能,高并发的web服务和代理服务软件.它是开源的软件. nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更 ...

  6. opencv学习之基础

    前段时间一直在钻研深度学习中的卷积神经网络,其中的预处理环节可以说非常关键,主要就是对图片和视频进行处理.而图像处理就涉及到图形学和底层技术细节,这是一个比较精深和专业的领域,假设我们要从头开始做起, ...

  7. drools session理解

    一.理解 在drools中存在2种session,一种是有状态的Session (Stateful Session),另外一种一种是无状态的Session (Stateless Session). 1 ...

  8. MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中

    union 会删除重复数据 union all 不会删除重复数据 select * from ( select *,'a' as kind from tablea where name is not ...

  9. 【mq】从零开始实现 mq-12-消息的批量发送与回执

    前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...

  10. TinyMCE简介

    TinyMCE是一款开源.易用.UI时新的富文本编辑器. 插件丰富,自带插件基本满足要求 可扩展性强,可自定义功能 界面好看,符合现代审美 提供经典.内联.沉浸无干扰三种模式 官网:https://w ...