博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL检索记录
阅读量:5341 次
发布时间:2019-06-15

本文共 2007 字,大约阅读时间需要 6 分钟。

<<第一章检索记录>>:关于表使用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%');

转载于:https://www.cnblogs.com/123hll/p/6774958.html

你可能感兴趣的文章
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>
zoj 1232 Adventure of Super Mario
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
[DLX精确覆盖+打表] hdu 2518 Dominoes
查看>>
SuperMap iServerJava 6R扩展领域开发及压力测试---判断点在那个面内(1)
查看>>