单个字段多个字段查询

查询员工姓名

*注:在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. Paddington2

  2. 为什么dbms_metadata.get_ddl显示不全?

    http://bi.dataguru.cn/thread-335433-1-1.html

  3. alpha冲刺10/10

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

  4. MaterialEditText——Android Material Design EditText控件

    MaterialEditText是Android Material Design EditText控件.可以定制浮动标签.主要颜色.默认的错误颜色等. 随着 Material Design 的到来, ...

  5. window上安装zabbix agent使用案例

    下载对应的zabbix windows版本 因为zabbix server使用的版本为3.2.0版本 所以下载window 3.2的版本 https://www.zabbix.com/download ...

  6. day10.函数进阶

    函数的命名空间 从python解释器开始执行之后,就在内存中开辟了一个空间,每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存, ...

  7. 12px以下字体显示问题

    刚接到广告公司出的设计稿,里面很多内容均是12px以下得字体,现在来总结一下解决办法,方便以后使用 1.使用png图片 但是会影响页面响应速度 2.使用transform: scale(0.x); 注 ...

  8. Codeforces 452E Three strings 字符串 SAM

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF542E.html 题目传送门 - CF452E 题意 给定三个字符串 $s1,s2,s3$ ,对于所有 $L ...

  9. BZOJ1009 [HNOI2008]GT考试 矩阵

    去博客园看该题解 题目 [bzoj1009][HNOI2008]GT考试 Description 阿申准备报名参加GT考试,准考证号为N位数X1X2….Xn(0<=Xi<=9),他不希望准 ...

  10. P1026 统计单词个数 区间dp

    题目描述 给出一个长度不超过200200的由小写英文字母组成的字母串(约定;该字串以每行2020个字母的方式输入,且保证每行一定为2020个).要求将此字母串分成kk份(1<k \le 401& ...