SQL检索记录
<<第一章检索记录>>:关于表使用SELECT语句和特殊字符“*”;
*:SELECT * from emp;
1:分别列出每一行:SELECT empno,ename,job,mgr,comm from emp
2:检索部分行:使用WHERE子句指定保留行数
SELECT * FROM emp WHERE depyon = 10
3:查找满足多个条件行使用WHERE子句以及OR和AND子句查找多个条件数据
查找部门10中所有员工,所有得到提成员工以及部门20中工资不超过2000美金员工:
dempton为10或者comm不为空,或者工资最多为2000而且deptno为20;
SELECT * FROM emp WHERE depton =10 or comn is not null or sal<=2000 AND dempton=20
SELECT * FROM emp WHERE (deptno='10' OR comm IS NOT NULL OR sql<=2000)AND deptno='20'
4:表中检索部分列
SELECT子句指定列保证不返回多余数据
SELECT ename,deptno FROM emp;
5:为列(起)取有意义名称:AS关键字可以查询到新取的名称,新名称就是别名
SELECT `job` AS `jobect`,`sal` AS `sall`FROM `emp`;
6:WHERE子句中引用取别名的列:
SELECT `job` AS `jobect`,`sal` AS `sall`FROM `emp` WHERE `sal`>1500 ;
7:连接列值;
CLARK WORKS AS A MANAGER
KING WORKS AS A PRESIDENT
MILLER WORKS AS A CLERK
要得到来自不同列数据
SELECT ename,job FROM emp WHERE deptno='10';
查找和使用DBMS提供内置函数,来连接来自不同列值 DB2,Oracle,PostgreSQL
这些数据库使用双竖线作为连接运算符
SELECT ename||’WORKS AS A '|| job AS msg FROM emp WHERE deptno='10';
MYSQL: SELECT CONCAT (`ename`, 'WORKS AS A ', `job`)AS `mgr` FROM WHERE deptno='10';
8:在SELECT语句中使用条件逻辑
条件:要产生一个结果集,如果一个员工工资小于等于2000美金,就返回消息“UNDERPAID”如果大于
等于4000美金就返回“OVERPAID”如果在两者之间返回“OK”
SELECT ename,sal, CASE WHEN sal<=2000 THEN 'UNDERPAID' WHEN sal>=4000 THEN 'OVERPAID' ELSE 'OK' END AS STATUS FROM emp;
9:限制返回行数
限制返回行数,不关心顺序,返回任何n行都行
SELECT * FROM emp LIMIT 5;
10:在表中随机返回n条记录
SELECT ename ,job FROM emp;
使用DBMS支持内置函数来生成随机数值,在ORDER BY 子句中使用对该行进行随机排序,
然后来限制所返回的行的数目。
SELECT ename,job FROM emp ORDER BY RAND() LIMIT 5;
11:查找空值
查找某列为空的所有行
SELECT * FROM emp WHERE comm is null;
***12: 将空值转换为实际值
在一些行中包含空值,需要使用非空值代替这些空值(空值转换为非空值)
SELECT coalesce(comm,0) FROM emp;
SELECT CASE WHEN comm IS NULL THEN 2 ELSE comm END FROM emp;
13:按模式搜索
需要返回匹配特定子串或模式行,考虑查询和结果集
SELECT ename,job FROM emp WHERE deptno in(10,20);
条件:使用LIKE运算和sql通配符‘%’
在部门10和部门20,需要返回名字中有一个‘I’或者职位(job title)中带有‘ER’的员工;
SELECT `ename`,`job` FROM `emp` WHERE deptno IN (10,20) AND(ename LIKE '%I%' OR `job` LIKE '%ER%');
SQL检索记录的更多相关文章
- hibernate检索方式(HQL 检索方式,QBC 检索方式,本地 SQL 检索方式)
hibernate有五种检索方式,这儿用 单向的一对多的映射关系 例子,这儿有后三种的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 ...
- QBC检索和本地SQL检索
细说QBC:QBC(Query By Criteria) 查询:这种方式比较面向对象方式,因为是面向对象,所以查询时参数名就是所查询的类的属性名并不是数据库的表的列名重点是有三个描述条件的对象:Res ...
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- SQL重复记录处理(查找,过滤,删除)
SQL重复记录处理(查找,过滤,删除) ID int Title nvarchar(50) AddDate datetime 数据 www.2cto.com ID ...
- Yii2如何添加sql日志记录的配置信息
在使用Yii2框架的时候,常常会出现没有sql日志记录的问题.在代码里一句一句的打印sql语句也不现实.所以就要用文件记录起来. 在 config/web.php 里面的 log配置中增加如下配置 [ ...
- limit 检索记录行
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定 ...
- EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录
前言 本文主要是讲解EF Core3.0+ 通过拦截器实现读写分离与SQL日志记录 注意拦截器只有EF Core3.0+ 支持,2.1请考虑上下文工厂的形式实现. 说点题外话.. 一晃又大半年没更新技 ...
- 《SQL CookBook 》笔记-第一章-检索记录
目录 第一章 检索记录 1.1检索所有行和列 1.2筛选行 1.3查找满足多个查询条件的行 1.4筛选列 1.5创建列的别名 1.6 在where子句中引用别名列 1.7 串联多列的值 1.8 在se ...
- 常用sql 全记录(添加中)
-- 数据库SQL总结中........... --SQL分类: (CREATE,ALTER,DROP,DECLARE) ---DDL—数据定义语言(SELECT,DELETE,UPDATE,INSE ...
随机推荐
- 1611: [Usaco2008 Feb]Meteor Shower流星雨
1611: [Usaco2008 Feb]Meteor Shower流星雨 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1010 Solved: 44 ...
- Maven工具的使用总结
Maven作为构建工具,现在项目开发使用的越来越多,相对于ant和gradle,我更喜欢使用maven,先总结maven使用的一系列知识: 一.maven相关的网址: 名称 地址 其他 maven官网 ...
- TIME_WAIT问题总结
最近用http_load做压测,跑出来一大串"Cannot assign requested address "的错误,查了一下,是TIME_WAIT过多导致的.因为短时 ...
- Python 使用心得之--变量命名
目前开发命名规范基本都遵循驼峰命名法,如:userName.我也不将这个规范的特性了,大家都明白.接下来进入正题,如何在python中取一个好名字,让你能更好的见名知意呢? 1.元组(Tuple)类型 ...
- C# const和readonly修饰符的区别
const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再 ...
- MSDN官方数据库开发群
QQ群1:43563009 创建人:中国风(Roy_88) 创建时间:2007-07-21 当前人数:326人 QQ群2:27156079 创建人: fcuandy 创建时间:2008-03-20 当 ...
- java学习笔记 --- 多态
一.多态 (1)定义:同一个对象在不同时刻体现出来的不同状态.父类的引用或者接口的引用指向了自己的子类对象. Dog d = new Dog();//Dog对象的类型是Dog类型. Animal ...
- PN结加正向偏置电压 其空间电荷区为何变窄
理论基础:导体是内部具有较多可以自由移动的电荷的物体. 绝缘体是内部没有或者有很少可以自由移动的电荷的物体. +代表空穴带正电 -代表电子带负电 两竖线之间表示无自由移动电子或空穴部分,相当于绝缘体 ...
- python 调取 shell 命令的几种方法
os.system()无法获得到输出和返回值 os.popen()output = os.popen('cat /proc/cpuinfo')print output.read()返回的是 file ...
- httpclient源码分析之MainClientExec
MainClientExec是HTTP请求处理链中最后一个请求执行环节,负责与另一终端的请求/响应交互,也是很重要的类. 源码版本是4.5.2,主要看execute方法,并在里面添加注释.接着详细说下 ...