1.连接列值:将多列值作为一列返回。
--DB2,Oracle:是用双竖线作为连接运算符。
--MySQL:支持concat函数。
select concat(ename,' works as a ',job) as msg from table where deptno=10
--SQL Server:使用+运算符进行连接操作。
select ename+' works as a '+job as msg from table where deptno=10
1.8、在select 语句中使用条件逻辑:要在select语句中对数值执行IF-ELSE 操作。
--使用CASE表达式直接在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
1.9、限制返回的行数:限制查询中返回的行数,这里不关心顺序。
--DB2: select * from emp fetch first 5 rows only
--MySQL: select * from emp limit 5
--Oracle: select * from emp where rownum<=5
--SQL Server: select top 5 * from emp
1.10、从表中随机返回n条记录
--在ORDER BY 字句中使用该函数,对行进行随机排序。
--DB2:同时使用内置函数RAND 与ORDER BY 和FETCH
select ename, job from emp order by rand() fetch first 5 rows only
--MYSQL: 同时使用内置的RAND函数、LIMIT、和ORDER BY
select ename,job,from emp order by rand() limit 5
--Oracle: 同时使用DBMS_RANDOM 中内置函数VALUE、ORDER BY 和内置函数ROWNUM:
select * from
(select ename,job from emp order by dbms_random.value())
where rownum<=5
--SQL Server:同时使用内置函数NEWID, TOP,和ORDER BY 返回随机结果集:
select top 5 ename,job from emp order by newid()
--总结:1)ORDER BY 字句可以接受函数的返回值,并使用它来改变结果集的次序。
2)ORDER BY 子句中指定数字常量时,是要求根据SELECT列表中相应位置的列来排序。
3)ORDER BY 子句中使用函数时,则按函数在每一行计算结果排序。
1.11、查找空值:要查找某列值为空的所有行。
--要确定值是否为空,必须使用IS NULL 或者IS NOT NULL.
select * from emp where comm is null
1.12、将空值转换为实际值
--使用COALESCE函数用实际值来替换空值, 多个参数时返回第一个非空值。
select coalesce(comm,0) from emp
--使用CASE:
select case
when comm is null them 0
else comm
end
from emp
1.13、按模式搜索
--需要返回匹配特定子串或模式的行。
--使用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.Cookbook 《SQL Cookbook中文版》中的SQL 是计算机世界的语言,在用关系数据库开发报表时,将数据放入数据库以及从数据库中取出来,都需要SQL 的知识。很多人以一种马马虎虎的态度在使用SQL,根本没有意识到...
《SQL Cookbook.pdf》这本书是关于SQL查询的一本实用指南,主要针对MySQL数据库系统。SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除等操作。这本书旨在帮助读者...
4. 查询数据:SQL的核心功能之一就是查询。`SELECT`语句让你能够从一个或多个表中检索数据。通过组合`WHERE`子句来设置条件,可以过滤出特定的数据。 5. 更新数据:当需要更改已存在的数据时,使用`UPDATE`语句。...
第1章 检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行 1.3查找满足多个条件的行 1.4从表中检索部分列 1.5为列取有意义的名称 1.6在WHERE子句中引用取别名的列 1.7连接列值 1.8在SELECT语句中使用...
2. **数据类型**:SQL支持多种数据类型,如整型(INTEGER)、浮点型(FLOAT)、字符串(VARCHAR)、日期/时间(DATE, TIME, TIMESTAMP)等,正确选择数据类型对于存储和检索数据至关重要。 3. **命名规则**:表名、...
### SQL Cookbook中文版知识点概述 #### 一、SQL基础知识与语法 **1.1 SQL简介:** SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。它被广泛应用于数据查询、更新、定义和控制等方面。 ...
《SQL Cookbook》英文版是一本深受软件开发人员和数据库管理员(DBA)喜爱的实用指南。这本书涵盖了Oracle、SQL Server和MySQL等主流数据库系统的SQL语法和实例,旨在提高读者在处理数据查询、分析和管理时的效率。 ...
12. **数据库设计**:良好的数据库设计包括范式理论的理解,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等,以及反规范化(Denormalization)的概念,以平衡数据冗余和查询性能。 通过《SQL Cookbook》的...
2. **选择与投影**:SQL查询的核心在于SELECT语句,它用于从数据库中检索信息。书中会讲解如何选择特定列(投影),如何组合多个表(JOIN),以及如何过滤数据(WHERE子句)。 3. **排序与分组**:ORDER BY和GROUP ...
例如,假如你有一个特定的业务问题要解决,目前只用SQL检索数据,而其他复杂的业务逻辑由其他语言完成,如果代码没有问题,而且性能也过得去,那么,谢天谢地。我绝对无意建议你扔掉以前的代码重新寻求完全SQL 的...
1. **基础查询**:SQL的基础在于SELECT语句,用于从表中选取数据。包括对单个或多个字段的查询,使用WHERE子句进行条件筛选,以及ORDER BY子句进行排序。 2. **联接操作**:JOIN语句用于合并来自两个或更多表的数据...
"SQL.Cookbook.pdf"可能是一本实用的SQL问题解决方案集,它通常包含各种实际场景下的SQL查询示例和最佳实践: 1. **查询技巧**:提供解决特定查询问题的“食谱”,如聚合函数、窗口函数、集合运算和联接策略。 2. ...
《DB2 UDB V9.1 SQL Cookbook》是一本面向DB2通用数据库9.1版本的专业教程,由Graeme Birchall撰写。本书为DB2用户提供了丰富的SQL示例和解决方案,适用于Windows、Unix、Linux等操作系统。对于运行在z/OS系统上的...
第1章 检索记录 1.1从表中检索所有行和列 1.2从表中检索部分行 1.3查找满足多个条件的行 1.4从表中检索部分列 1.5为列取有意义的名称 1.6在WHERE子句中引用取别名的列 1.7连接列值 1.8在SELECT语句中使用...
1. **数据查询**:SQL最常用的功能之一就是从数据库中检索特定的数据。 2. **数据更新**:允许用户修改已有的数据记录。 3. **数据插入**:向数据库表中添加新的数据行。 4. **数据删除**:从数据库中移除不再需要的...