美文网首页
SQL学习二、查询

SQL学习二、查询

作者: 沐左 | 来源:发表于2018-10-24 10:48 被阅读0次

1、简单 SELECT 语句

使用 SELECT 检索表数据,必须至少给出两条信息——想选择什么, 以及从什么地方选择。

需要注意的几点

  • 多条 SQL语句必须以分号(;)分隔
  • SQL语句不区分大小写,但是列名和值的大小写需要根据实际情况而定
    许多 SQL开发人员喜欢对 SQL关键 字使用大写,而对列名和表名使用小写,这算是一个不成名的规范。
  • 在处理 SQL语句时,其中所有空格都被忽略。
    所以我们的SQL语句也可以写成这样,方便阅读。
  • SQL语句一般返回原始的、无格式的数据。数据的格式化是表示问题,而不是检索问题。
SELECT  prod_name FROM  Products;
...
SELECT  
prod_name 
FROM  
Products;

2、多列查询

列名之间必须以逗号分隔

SELECT prod_id, prod_name, prod_price FROM Products;

3、检索所有列

星号(*)通 配符,
除非你确实需要表中的每一列,否则最好别使用*通配符,检索不需 要的列通常会降低检索和应用程序的性能。

SELECT * FROM Products; 

4、IN的使用

IN 这个指令可以让我们依照一或数个不连续 (discrete) 的值的限制之内抓出数据库中的值

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

5、BETWEEN 的使用

BETWEEN 让我们可以运用一个范围 (range) 内抓出数据库中的值。

SELECT * 
FROM Store_Information 
WHERE Txn_Date BETWEEN 'Jan-06-1999' AND 'Jan-10-1999';

注意:这里的BETWEEN AND 中间接的参数需要用''英文单引号包裹,而不是用‘’中文单引号进行包裹


6、去掉重复值,DISTINCT 的使用

  • 单列查询
SELECT file_name FROM "adjunctlist"
查询结果
  • 单列去重查询
SELECT DISTINCT file_name FROM "adjunctlist"
单列去重
  • 多列查询
SELECT file_name ,file_path FROM "adjunctlist"
多列查询
  • 多列去重查询
SELECT DISTINCT file_name ,file_path FROM "adjunctlist"
多列去重

DISTINCT 关键字会作用于你查询的所有列


7、限定查询 ,LIMIT

MySQL、MariaDB、PostgreSQL或者 SQLite,需要使用 LIMIT
Oracle ,需要使用行计数器 ROWNUM
SQL Server和 Access ,需要使用TOP关键字来处理
DB2 则需要一个特定的SQL语句 : FETCH FIRST 【查询的数量】 ROWS ONLY

  • Oracle 实现类似LIMIT的功能

查询前10行:

select * from 【表名】where rownum<=10;

查询10到100行:

select * from 【表名】rownum<101  minus  select * from TABLE rownum>9

注:

select * from 【表名】and rownum>99 and rownum<101 是错误的,oracle会认为条件不成立

  • Access 实现类似LIMIT的功能

其中的PageSize(分页的大小)和PageIndex(分页索引,初始假设为0)均为变量,请相应处理。
SQL语句解释:子查询得到逆序排列的前 PageSize * (PageIndex + 1) 条记录,然后把这PageSize * (PageIndex + 1)条记录按正序排列得到前 PageSize 条记录,这样对应分页的数据就取出来了,之后再按实际需求进行排序就OK了

SELECT * FROM 
( 
  SELECT TOP [PageSize] * FROM 
  ( 
  SELECT TOP [PageSize * (PageIndex + 1)] * FROM 【表名】WHERE 【条件】 ORDER BY id DESC
  ) 
  ORDER BY id ASC 
) 
ORDER BY id DESC 

  • DB2 实现类似LIMIT的功能

和 Access 的实现一样,也是利用正序和倒叙。

查询前10行 :
fetch first 10 rows only

查询 11 - 20:
fetch first 20 rows only -- 倒序 -- fetch first 10 rows only -- 正序

其他依次类推。


  • LIMIT 的使用

LIMIT 【查询条数】OFFSET 【偏移量】

查询前10条:
这里虽然没有写 OFFSET ,实际相当于 OFFSET 0

SELECT * FROM 【表名】LIMIT 10

查询前21-30条:

SELECT * FROM 【表名】LIMIT 10 OFFSET 20

备注:
MySQL 和 MariaDB 支持简化版的LIMIT 【查询条数】 OFFSET 【偏移量】语句,即LIMIT 【偏移量】,【查询条数】
注意简化版 LIMIT 语句的【偏移量】和【查询条数】的位置

相关文章

  • SQL语言之查询

    SQL语言之查询(二) 前言 本章我们将学习SQL查询中的高级部分,如内连接、外连接和子查询,通过这些查询技术我们...

  • SQL学习二、查询

    1、简单 SELECT 语句 使用 SELECT 检索表数据,必须至少给出两条信息——想选择什么, 以及从什么地方...

  • 第九章 SQL查询数据库(二)

    第九章 SQL查询数据库(二) 调用用户定义函数的查询 InterSystems SQL允许您在SQL查询中调用类...

  • Hibernate使用SQL查询和HQL查询的区别

    第一点:查询返回的对象不同 SQL查询返回array数组 HQL查询返回bean对象 第二点:查询语法不同 SQL...

  • 初识MyBatis

    MyBatis学习笔记(二) Mapper XML文件配置 SQL映射文件几个的元素 ☆ Select查询语句 1...

  • EF Core 备忘

    模糊查询sql linq 内连接查询sql linq 左连接查询sql linq 左连接查询(连接内带条件)sql...

  • 和MySQL的第一次邂逅

    一、sql概述 sql:Structure Query Language,结构化查询语言 二、sql分类 1、DD...

  • 零基础学sql

    sql是结构化查询语言(Sructured Query Language),要学习sql,就要知道sql是如何出现...

  • oracle AWR报告

    步骤一:查询出sql的记录 注:时间为输入值,看需要输入 步骤二: 方法一sql: 方法二sql: 例子:

  • 一、数据库之SQL语句

    一、SQL创表 二、SQL-插入 三、SQL-修改 四、SQL-删除 五、SQL-查询 以上是SQL语句常用的用法...

网友评论

      本文标题:SQL学习二、查询

      本文链接:https://www.haomeiwen.com/subject/ngypbftx.html