检索数据

关键字:

  SELECT  DISTINCT  LIMIT  OFFSET  FROM

  SELECT与FROM用于基础的检索,基本语法为:

    SELECT  column_name,column_name,column_name...column_name FROM  table_name;

  注:默认不排序;sql不区分大小写,但是建议SQL关键字使用大写,本文遵守此规则;建议每个SQL写完后跟上“;”,本文遵守此规则。

  检索所有列:

SELECT * FROM table_name;

  注:*会默认返回所有列的内容,不建议使用*,因为会检索所有内容造成不必要的性能浪费。

  检索不同值:

SELECT DISTINCT column_name,column_name...column_name FROM table_name;

  注:DISTINCT关键字作用于所有列,既对所有检索的列名都进行排它。

  限制结果:

SELECT column_name FROM table_name LIMIT x;

SELECT column_name FROM table_name LIMIT x OFFSET y;

  注:LIMIT表示检索多少行,OFFSET表示从第几行数据开始(第一行数据的下标为0),x与y都是数字(int)


排序检索数据

关键字:

  ORDER BY

  ORDER BY的基本用法:

SELECT column_name FROM table_name ORDER BY column_name;

  注:数据库本身的查询顺序是无意义的(虽然大部分会按照默认顺序排列,但是随着数据的删除等操作,会导致顺序最终无意义,所以就默认为无意义的)

    子句:由SQL的关键字与对应的数据组成。例如SELECT子句与FROM子句。

    ORDER BY子句的位置应该为SELECT的最后(除正序、倒序关键字外)

    ORDER BY也可以对非选择列(不是SELECT子句检索的列)进行排序。

  进行多个列检索时:

SELECT column_name FROM table_name ORDER BY column1_name, column2_name;

  注:仅当column1_name一致时才会对column2_name进行排序,如果column1_name都是唯一的相当于仅对column1_name排序。

  升降序检索:

SELECT column_name FROM table_name ORDER BY column_name DESC/ASC, column2_name;

  注:降序:DESC  升序:ASC  默认就是升序的。

    升降序关键字仅影响其前面的列。


过滤数据

关键字:

  where

  操作符:=   !=  >=  <=  >  <  BETWEEN(AND)  IS NULL

  仅对单个值过滤

SELECT column_name FROM table_name WHERE column_name OPERATION condition;

  注:condition何时使用引号呢?  仅限限定字符串时才需要使用引号,一般使用单引号即可。

    BETWEEN  condition1  AND condition2  在限定范围时,该关键字包含限定的两个条件。


高级数据过滤

关键字:

  WHERE  AND  OR  IN  NOT

  多个限定条件的过滤:

SELECT column_name FROM table_name WHERE () AND/OR ();

  注:()表示限定的条件。

    AND要求两个条件都符合。

    OR要求两者符合其一即可,多数DBMS在OR满足条件1时就不在计算第二个条件了。

    AND与OR会有默认的求值顺序,即AND操作符优于OR操作符,当过滤条件>=3个的时候就要注意操作符顺序了,可以使用()来强制要求顺序,好习惯就是忽略默认顺序,优先使用()。

  IN操作符的用法:

SELECT column_name FROM table_name WHERE column_name IN (condition1, confition2, ..., conditionN);

  IN操作符与OR的作用是相同的,但是具有以下优点:

    1.语法更加直观清晰。

    2.求值顺序更加容易管理。

    3.IN操作符比一组OR操作顺序快。

    4.IN可以包含其他SELECT语句(后面同步)。

  NOT操作符的用法:

SELECT column_name FROM table_name WHERE NOT ();

  NOT仅否定跟在其后的条件。NOT与IN联合使用时会更有优势。


用通配符进行过滤

关键字:

  LIKE  %

概念:

  通配符:用来匹配值得一部分的特殊字符。

  搜索模式:由字面值和通配符或两者组合构成的搜索条件。

  注:使用通配符必须配合LIKE操作符。

  百分号(%)通配符:

SELECT column_name FROM table_name WHERE column_name LIKE 'String%'

  注:上面的语句将检索column_name以String内容开头的数据。

    ‘%String’:  匹配以String内容结尾的数据

    '%String%':  匹配包含String内容的数据

    'String%String'  匹配以String内容开始,以String结尾内容的数据

    %匹配0、1和多个字符。且不能匹配到NULL。

  下划线(_)通配符:

  注:下划线与%的作用相同,但是仅匹配单个字符。

  通配符使用注意事项:

    1.通配符使用要适度。

    2.尽量不要在搜索的开头使用通配符。

    3.注意通配符的位置。


最新文章

  1. java读取项目根路径下和任意磁盘位置下的properties文件
  2. iShare.js分享插件
  3. df,du,mount
  4. .net程序员的学习计划
  5. Java Concurrency - 浅析 Phaser 的用法
  6. Android_Menu_contextMenu
  7. 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。
  8. 自动安装Redis服务端与PHP扩展Redis
  9. Python【第四课】 装饰器
  10. phpexcel 使用说明
  11. JavaScript深入之变量对象
  12. html5 - Storage 本地存储
  13. POJ 3177 Redundant Paths (边双连通+缩点)
  14. [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题
  15. bash基本功能 -命令的别名和快捷键
  16. snmp 简单的网络管理协议
  17. 修改BUG心得
  18. ceph luminous 新功能之内置 dashboard
  19. 浅谈nodejs中HTTP模块应用
  20. 关于Python的装饰器(2)

热门文章

  1. Java截取图片的一部分并保存为40*40的图片
  2. day5-logging模块
  3. HTML5页面,用JS 禁止弹出手机键盘
  4. section和div
  5. 005——数组(五)array_diff_ukey()array_diff_uassoc()array_intersect()array_intersect_assoc()array_intersect_key()array_intersect_ukey()array_intersect_uassoc()
  6. ubuntu12.04+openni+nit+SensorKinect环境搭建
  7. XML方式实现Spring的AOP
  8. pulltoRefresh类图
  9. LINUX系统下的shell命令---grep、sed、awk
  10. Kotlin Reference (二) Idioms