单个字段多个字段查询

查询员工姓名

*注:在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   毫秒

mysql的基本查询(等于,不等于,between...and...,)的更多相关文章

  1. python 数据库查询条件`不等于`

    1.python 数据库查询条件不等于 当在做数据库查询的时候,想根据业务需求进行条件的筛选或过滤, 但是django封装的数据库语句中没有 '不等于' 查询操作. 2.例如:通过以下语句进行'不等于 ...

  2. Mysql数据库连接、查询、记录集操作代码

    Mysql数据库链接代码 function dbConnect($hostname,$username,$pass,$db_name,$pconnect =0) { $func=empty($pcon ...

  3. MySQL多表查询之外键、表连接、子查询、索引

    MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...

  4. MySQL慢日志查询全解析:从参数、配置到分析工具【转】

    转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...

  5. 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上

    在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...

  6. MySQL 多表查询 学习与练习

    一.介绍 首先先准备表 员工表和部门表 #建表 create table department( id int, name varchar(20) ); create table employee1( ...

  7. MySQL:数据查询

    数据查询 一.基本查询语句 1.语法:写一行 select{*<字段列表>}//查询的字段,多个字段用逗号分开 from<表1>,<表2>…//数据表名 {//可选 ...

  8. MySQL多表查询,pymysql模块。

    一 多表查询: 首先什么是多表查询: 我们在实际工作中,不可能把数据都存入一个表中,那么又需要这些表之间有一定的关联,因为表与表之间的数据是相关联的,所以就要用到我们的外键将多表连接到一起,那么我们更 ...

  9. SQL学习笔记四(补充-2)之MySQL多表查询

    阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table depart ...

随机推荐

  1. A.Ocean的礼物线段树

    A: Ocean的礼物  Time Limit: 2 s Memory Limit: 128 MB  Submit My Status  Problem Description  皇家理工存在一段很神 ...

  2. 华为设备默认console密码

    admin@huawei.com Admin@huawei.com Admin@huawei huawei.com huawei@123 huawei Change_Me

  3. 【C++ Primer 第13章】1. 拷贝控制、赋值和销毁

    拷贝控制.赋值和销毁 如果一个构造函数的第一个参数是自身类的引用,且额外的参数都有默认值,则此构造函数是拷贝控制函数(拷贝构造函数不应该是explicit的). 如果我们没有为一个类定义拷贝构造函数, ...

  4. python---冒泡和短冒泡排序

    冒泡是最费时的排序,但可以自定义更多步骤. 短冒泡确实可以加快性能. # coding = utf-8 # ========冒泡排序======== def bubble_sort(a_list): ...

  5. Jmeter入门(压力测试)

    Jmeter介绍 Jmeter是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用. ...

  6. luogu 1471

    题意: 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. 操作1:1 x y k ,表示将第x到第y项每项加上k,k为一实数. 操作2:2 x y ...

  7. alpha冲刺10/10

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺倒计时之10(匆匆而过) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 答辩演练 版本演示视频拍摄 接下来的计划 ...

  8. OAuth2:客户端证书授权(Client Credentials)类型的开放授权

    适应范围 认证服务器不提供像用户数据这样的重要资源,仅仅是有限的只读资源或者一些开放的API.例如使用了第三方的静态文件服务,如Google Storage或Amazon S3.这样,你的应用需要通过 ...

  9. H.265:网络视频的高清时代

    去年八月,爱立信公司推出了首款H.265编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video C ...

  10. Zabbix监控Tomcat案例

    今天在这里,我们来聊一聊JMX监控方式, JMX(java管理扩展程序)是java平台上为应用程序,设备,系统等植入管理功能的框架,JMX可以跨越一系列不同的系统平台,更加灵活的服务管理应用: 在za ...