SQL Cookbook:检索记录

1、where子句中,and优先级比or高

1 select * from film where film_id < 10 or title like ‘%ARK‘ and length = 50\G

等同于以下查询:

1 select * from film where film_id < 10 or (title like ‘%ARK‘ and length = 50)\G

2、连接列值:concat

1 select concat(‘title: ‘, title, ‘ description: ‘, description) as info from film\G

3、使用case语句

1 select title,
2 case
3     when length <= 70 then ‘short‘
4     when length > 70 then ‘long‘
5 end
6 as info from film where film_id = 1\G

4、随机选择n条数据

1 select film_id, title from film order by rand() limit 5\G

5、查找空值

1 select film_id, title from film where title is null\G

null要使用is

6、为空值设定默认值

1 select film_id, coalesce(title, ‘‘) as title from film\G
时间: 2024-08-15 13:52:33

SQL Cookbook:检索记录的相关文章

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

【SQL】检索满足条件的最大值的数据集合

是不是看题目觉的看不懂?其实我自己也看不懂,但是又找不到更好的词来形容. 为了更好的表达我的意思,请看下. 如果有一张成绩表(Points), 学生(student) 成绩(point) 科目(subject ) 张三 70 英语 张三 80 数学 李四 75 语文 李四 85 数学 我想知道每个学生成绩最好的是哪一科,该怎么算?? 我们应该先找到每个学生最好的成绩 ? 1 2 3 SELECT student , Max(point) FROM Points GROUP BY student

sql查询重复记录的方法

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people  where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.查找表中多个字段的重复记录 select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vita

无法检索记录使用jpa库外键时为空

我面临一个问题,当我搜索一个实体及其与外键记录. 根据业务逻辑,我需要搜索实体--LookupRequest表帐户(与非空帐户id)和外键="回调"(null). 请注意账户id并不是唯一的(为简单起见我删除表中的其他参数,使其短). 一旦我筛选记录,我必须更新LookupRequest. 回调foreignkey条目. 我无法外键为空时检索记录. import javax.persistence.*; @Entitypublic class LookupRequest { @Id@G

Oracle SQL调优记录

目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表.面对复杂的业务场景,确实有些情况是需要关联很多表的.当然有些情况是可以将业务实现放在Java代码里,有些情况可以不要关联很多表. 二.注意点 对于SQL调优,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度. 三.O

oracle开发之&lt;&lt;SQL Cookbook&gt;&gt;学习笔记整理:第一章 检索记录

1.写程序时列出需要的列比直接写SELECT *  更直观.采用这种方式,行数据检索性能相同,列数据检索性能提高:选取部分需要的列时,降低IO和网络传输时间,提高性能. 2.WHERE子句筛选记录配合=,<,>,<=,>=,!,<>和AND,OR等谓词. 3.NULL值用IS NULL和IS NOT NULL来判断. 4.为列取别名,在子查询中特别重要. 5.使用||来拼接列的值. 6.使用case when end子句来实现if-else判断. 7.取top N时,需

数据库优化之SQL语句优化-记录

1. 操作符优化 (a) IN 操作符 从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询.由此可见用IN的SQL至少多了一个转换的过程.一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了. 推荐方案:在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替. (b) NOT IN操作符 不能应用

SQL Server学习记录Day1

最近在学习SQL Server 数据库,用的版本是2008 R2的版本,如下图所示,本人学习时间不长,写这篇文章一是为了锻炼自己加深印象,二也可以与和诸多朋友进行交流以及得到大家的指教. 安装教程网上有很多,可以自行去搜索,但是安装时有一些小细节,在安装到实例配置的时候,如果没有安装过其它版本的SQL SERVER,请选择默认实例,如果有安装过,则手工指定实例.如果一台电脑安装了多个实例的SQL SERVER,每个实例的端口是不一样的,当在软件中设置服务器连接地址时需要注意,例如:192.168

sql优化-检索及定位

一.执行频率早知道  >show status: 使用 show status了解各种sql的执行频率 可搭配参数 global 全局查看,或者session当前连接开始计数 默认不加参数是指查看当前连接 show status; +-----------------------------------------------+----------------+ | Variable_name                                 | Value          |