zoukankan      html  css  js  c++  java
  • mysql的基本查询(等于,不等于,between...and...,)

    单个字段多个字段查询

     查询员工姓名

    *注:在SQL语句中不区分大小写;SQL语句以“;”分号结束

    select ename from emp;

    注:select询句后面跟的是字段名称,select是关键字,select和字段名称之间采用空格隔开,from表示将要查寻的表,它和字段之间采用空格隔开

    查寻员工编号和员工姓名

    *注:多个字段查询时,字段与字段之间用“,”隔开

    select empno,ename from emp; 

     查询全部字段

    我们可以将所有字段放到  select  询句之后,这种方案不方便,但是比较清楚,我们可以采用下面的方式查寻全部字段。

    select * from emp;

    注:采用select * from emp,虽然简单,但是  *  号不是很明确,并且  select *  语句会先去编译,将“*”转换成字段,建议查询全部字段将相关字段写到select语句的后面,在以后Java 连接数据库的时候,是需要在java程序中编写SQL语句的,这个时候编写SQL语句不建议使用 select *  这种形式,建议写明字段,这个SQL语句的可读性强。

    查询员工年薪及字段别名

    列出员工的编号,姓名和年薪

    select empno,ename,sal*12 from emp;

    注:字段上可以使用数学表达式,只要SQL语句中有  select  关键字,不会修改底层数据库字段的值;

    将查诟出来的字段重命名和显示为中文

    select empno,ename,sal * 12 as yearsal from emp;

    或者 select empno,ename,sal * 12 yearsal from emp; 

    select empno,ename,sal * 12 as ‘年薪’from emp;

    或者 select empno,ename,sal * 12 ‘年薪’from emp;

    select empno,ename,sal * 12 as “年薪”from emp; 

    或者 select empno,ename,sal * 12 “年薪”from emp;

    注:

    1. 重命名为中文时必须加单引号戒双引号;

    2. 标准SQL询句中类型为字符串时必须加单引号,加单引号适用亍任何数据库;

    3. SQL询句中类型为字符串时也可加双引号,叧适用亍MySQL数据库中;

    4. 为了SQL询句的通用性,建议全部使用单引号;

    条件查询介绍

    注意:条件查寻需要用到 where 询句,where 必须放到 from 询句表的后面;

    执行顺序:先from再where过滤后再检索出来。

     条件查询支持的运算符

    支持如下运算符

    运算符  说明

    =  等于

    <>或!=  不等于

    <  小于

    <=  小于等于

    >  大于

    >=  大于等于

    between … and ….  两个值之间,等同于 >= and <=

    is null  为null(is not null 不为空)

    and  并且

    or  或者

    in  包含,相当于多个or(not in不在这个范围

    中)

    not  not可以取非,主要用在is 或in中

    like  like称为模糊查询,支持%或下划线匹配

    %匹配任意个字符

    下划线,一个下划线只匹配一个字符

    区间查询

    查询薪水为1600到3000的员工(第一种方式:采用>=、<=)

    select empno,ename,sal from emp where sal >= 1600 and sal <= 3000;

    查询薪水为1600到3000的员式(第二种方式:采用between…and…)

    select empno,ename,sal from emp where sal between 1600 and 3000; 

    注:关于between … and … 它是包含最大值和最小值的

    (了解)between … and … 同样也可用在字符上,用在字符上区间为:前闭后开;

    select ename from emp where ename between "A" and "F";

    不等号(<>、i=)操作符

    查询薪水不等于 5000 的员工

    select empno,ename,sal from emp where sal <> 5000; 

    以下写法等同于以上的写法,建议使用第一种写法

    select empno,ename,sal from emp where sal != 5000;

    数值也可以采用单引号引起来,如下语句也是正确,但不建议,原因MySQL数据库做数据类型自动转换

    select empno,ename,sal from emp where sal <> "5000";

    查询工作岗位不等于MANAGER的员工 

    select empno,ename,job from emp where job <>“MANAGER‟;

    等号运算符

    查询薪水为5000的员工

    select empno,ename,sal from emp where sal = 5000; 

    查询 job 为 MANAGER 的员工

    错误:select empno,ename,job from emp where job = MANAGER;

    以上查询结构出现错误,因为 job 字段为字符串,所以出现了以上错误信息;

    正确:select empno,ename,job from emp where job =“manager”;

    select empno,ename,job from emp where job = "manager"可使用单引号

    select empno,ename,job from emp where job = "MANAGER"; 

    以上输入结果输入结果正确,MySQL默认情况下大小写不敏感;

    注意:

    MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结

    果再想将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查

    了很资料都说在linux下更改MySQL配置使其也不区分大小写,但是有没有办法反过来让windows下大小

    写敏感呢?其实方法是一样的,相应的更改windows中MySQL的设置就行了。

    具体操作:在MySQL的配置文件my.ini中增加一行:lower_case_table_names = 0

    其中 0:区分大小写 ; 1:不区分大小写

    详情可见该链接https://www.cnblogs.com/jun1019/p/7073227.html
    is运算符
    is null

    Null  为空,它不是一个数值,不是一个空串,为null可以设置这个字段不填值,如果查询为null的字段,采用is null。

    查询津贴为空的员工

    错误:select empno,ename,comm from emp where comm = null; 

    原因:以上无法查询出符合条件的数据,因为null类型比较特殊,必须使用 is 来比较

    正确:select empno,ename,comm from emp where comm is null

    查询津贴不为空的员工

    select empno,ename,comm from emp where comm is not null;

     like模糊查询

    like可以实现模糊查询,like支持%和下划线匹配

    查询以姓名以 M 开头的所有员工‘M%’

    select ename from emp where  ename like "M%";

    查询姓名以N结尾的所有员工‘%N’

    select ename from emp where ename like "%N";

    查询姓名中包含O的所有员工‘%O%’

    select ename from emp where ename like "%O%";

    查询姓名中第二个字符为A的所有员工‘_A%’

    select ename from emp where ename like "_A%";

    查询姓名中倒数第二个字符为E的所有员工‘%E_’

    select ename from emp where ename like "%E_"

    查询姓名中第三个字符为N的所有员工姓名‘__R%’

    select ename from emp where ename like "__R%";

    数据排序概述

    单一字段排序 order by 字段名称

    作用:通过哪个或哪些字段进行排序

    含义:排序采用  order by  子句,order by  后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序(asc),如果存在  where  子句,那么  order by 必须放到where 询句后面。

    1)按照薪水由小到大排序(系统默认由小到大)

    select ename,sal from emp order by sal;

    2)取得job为MANAGER的员工,按照薪水由小到大排序(系统默认由小到大)

    select ename,job,sal from emp where job = „MANAGER‟order by sal; 

    如果包含  where 语句  order by 必须放到where后面,如果没有where语句order by放到表的后面;

    3)以下询法是错诣的:

        a)  select * from emp order by sal where

        b)  select * from emp order by sal where job = ‘MANAGER’;

     通过字段排序

    手动指定按照薪水由小到大排序(升序关键字 asc)

    select ename,sal from emp order by sal asc; 

    手动指定按照薪水由大到小排序(降序关键字desc)

    select ename,sal from emp order by sal desc;

    按照 job 和薪水倒序排序

    select ename,job,ename from emp order by job desc,sal desc;

    注意:如果采用多个字段排序,如果根据第一个字段排序重复了,会根据第二个字段排序;

    单行数据处理函数

    数据处理凼数(单行处理凼数)

    Lower  转换小写

    upper  转换大写

    substr 取子串(substr(被截取的字符串,起始

    下标,截取的长度))

    length  取长度

    trim  去空格

    str_to_date  将字符串转换成日期

    date_format  格式化日期

    format  设置千分位

    round  四舍五入

    rand()  生成随机数

    Ifnull   可以将null转换成一个具体值

    注意:数据处理函数是该数据本身特有的,有些函数可能在其它数据库不起作用;

    转换大小写函数

    lower(字段名)函数: 转换为小写

    用法:lower(要转换字段名称)

    查询员工姓名,将员工姓名全部转换成小写

    select lower(ename) as ename from emp; 

    upper(字段名)函数:转换为大写

    用法:upper(要转换字段名称)

    查询员工姓名,将员工姓名全部转换为大写

    select upper(ename) as ename from emp;

     数据处理函数_length和trim函数

    length(字段名)函数:取字段长度

    用法:length(字段名称)

    取得员工姓名长度

    select ename,length(ename) as nameLength from emp;

    数据处理函数_round四舍五入函数

    round(数字,保留小数位数)函数:四舍五入用法:round(要四舍五入的数字,四舍五入到哪一位),默认保留整数位保留整数位 截取保留小数位 : select round(125.18) ;或者select round(125.18,0);

    保留1位小数:select round(125.18,1);

    保留2位小数:select round(125.18,2);

    数据处理函数_rand随机函数

    rand()凼数:生成随机数

    生成一个 0≤ v ≤ 1.0的随机数;  1)

    select rand();

    生成一个0-100的随机数  2)

    select round(rand()*100);

    数据处理函数_str_to_date函数

    str_to_date函数:将字符串转换为日期

    作用:将‘日期字符串’转换为‘日期类型’数据

    执行结果:DATE类型

    用法:str_to_date(‘日期字符串’,‘日期格式’)  1)

    1)  日期字符串:日期格式的字符串

    2)  日期格式:告知MySQL输入日期字符串的格式是什么

    MySQL日期格式:

    序号  格式符  功能    格式符  功能

    1  %Y  代表四位的年份    %y  代表两位的年份

    2  %m  代表月,格式

    (01 …12)

    %c  代表月,

    格式(1 … 12)

    3  %d  代表日     

    4  %H  代表24小时制    %h  代表12小时制

    5  %i  代表分种,格式

    (00 … 59)

    6  %S或%s  代表   秒 , 格式

    (00..59)

    联想知识点:java中的日期格式

    yyyy  年

    MM    月

    dd    日

    HH    时 

    mm    分

    ss    秒

    SSS   毫秒

     


  • 相关阅读:
    Js高程:教你如何写出可维护的代码
    ES6 尾调用和尾递归
    js判断对象是否为空对象,判断对象中是否有某属性
    WebSocket断开原因、心跳机制防止自动断开连接
    Js闭包使用姿势指南
    浏览器事件模型
    Js数组排序
    简单的前端错误处理
    移动端做弹窗类页面注意事项
    加载时常统计
  • 原文地址:https://www.cnblogs.com/wth21-1314/p/9466646.html
Copyright © 2011-2022 走看看