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
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...,)的更多相关文章
- python 数据库查询条件`不等于`
1.python 数据库查询条件不等于 当在做数据库查询的时候,想根据业务需求进行条件的筛选或过滤, 但是django封装的数据库语句中没有 '不等于' 查询操作. 2.例如:通过以下语句进行'不等于 ...
- Mysql数据库连接、查询、记录集操作代码
Mysql数据库链接代码 function dbConnect($hostname,$username,$pass,$db_name,$pconnect =0) { $func=empty($pcon ...
- MySQL多表查询之外键、表连接、子查询、索引
MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...
- MySQL慢日志查询全解析:从参数、配置到分析工具【转】
转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...
- 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上
在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...
- MySQL 多表查询 学习与练习
一.介绍 首先先准备表 员工表和部门表 #建表 create table department( id int, name varchar(20) ); create table employee1( ...
- MySQL:数据查询
数据查询 一.基本查询语句 1.语法:写一行 select{*<字段列表>}//查询的字段,多个字段用逗号分开 from<表1>,<表2>…//数据表名 {//可选 ...
- MySQL多表查询,pymysql模块。
一 多表查询: 首先什么是多表查询: 我们在实际工作中,不可能把数据都存入一个表中,那么又需要这些表之间有一定的关联,因为表与表之间的数据是相关联的,所以就要用到我们的外键将多表连接到一起,那么我们更 ...
- SQL学习笔记四(补充-2)之MySQL多表查询
阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 #建表 create table depart ...
随机推荐
- 小程序:最难点For的wx:key
转自:http://www.wxappclub.com/topic/536 A:数据改变,导致重新渲染的两种情况: 1:有wx:key的情况(不重新创建,仅改变顺序) 添加元素或改变元素顺序导致数据改 ...
- 如何保证Redis的高并发
单机的redis几乎不太可能说QPS超过10万+,一般在几万. 除非一些特殊情况,比如你的机器性能特别好,配置特别高,物理机,维护做的特别好,而且你的整体的操作不是太复杂. Redis通过主从架构,实 ...
- spring+redis的集成,redis做缓存
1.前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.我们都知道,在日常的应用中,数据库瓶颈是最容易出现的 ...
- 山寨版 WP8.1 Cortana 启动 PC
8.1 dev preview 发布以来 Cortana 很受关注 前一段看到有视频演示用 Cortana 来启动 PC 看视频也是启动第三方应用实现的,简单来弄其实就是个语音启动应用 + 网络唤醒么 ...
- sdoi2017苹果树
题解: 非常奇妙的一题.. 没有免费操作我都不会$nk$....考试打个暴力就可以走人了 树上有依赖背包问题的正确做法是(为啥我之前学的不是这样的啊) 按照后续遍历做背包 做到一个点的时候 枚举它选不 ...
- Flink的Windows
在讲解windows的众多操作之前,需要讲解一个概念: 源源不断的数据流是无法进行统计工作的,因为数据流没有边界,就无法统计到底有多少数据经过了这个流.也无法统计数据流中的最大值,最小值,平均值,累加 ...
- Elasticsearch集群架构的部署和调优(一)
[root@es-node1 ~]# mkdir /usr/java[root@es-node1 ~]# tar zxvf jdk1.8.0_131.tar.gz -C /usr/java/ [roo ...
- Codeforces 316E3 线段树 + 斐波那切数列 (看题解)
最关键的一点就是 f[ 0 ] * a[ 0 ] + f[ 1 ] * a[ 1 ] + ... + f[ n - 1] * a[ n - 1] f[ 1 ] * a[ 0 ] + f[ 2 ] * ...
- vue中使用axios最详细教程
前提条件:vue-cli 项目 安装: npm npm 在main.js导入: // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype. ...
- 今天才知道原来我还没弄清楚js中全局变量和局部变量的定义...
查资料看到这段还不错,来源:原文:https://blog.csdn.net/czh500/article/details/80429133 粘过来记录一下... 1.使用var声明变量,在方法内部是 ...