关于SQL查询语句的模糊查询,排序用法,limit用法的介绍

来源:互联网 发布:迪克斯特拉算法 编辑:程序博客网 时间:2024/06/14 00:49

SQL语句分为四类:

1,数据定义语言(DDL)。

2,数据操作语言(DML)。

3,数据控制语言(DCL)。

4,事务控制语言(DCL)。

一直想写篇博文,但不知该怎么下手。由于最近在做一个中型项目,在项目中,对sql语句这块儿,较为复杂且使用较多的当属DML的查询语句。因为本人在写查询语句时,也遇到过困惑,因为希望把自己在该项目中学习到的知识分享给大家,当我的文章有幸被大家阅读的时候,让一些初学者能够以此解决一些问题。

首先,在实际项目中,查询语句一般不让使用" select * "这种语法的,一般是需要什么查询什么。例如:

select a.id,a.addtime,a.updatetime from table_sys_org (as) a;(基本查询语句)

其次,一般查询需要附加高级搜索(无关联)。例如:

select a.id,a.addtime,a.updatetime from table_sys_org a where 1=1

1.如果加上指定搜索: a.username='gfl' and a.password='gfl';

指定搜索的话就是这样,字段名称=字段值。如果多个条件中间用and连接。切记不要把两个单词拼在一起,切记不要把两个单词拼在一起,切记不要把两个单词拼在一起。

2.如果加上模糊搜索: a.username like '%g%'

模糊搜索使用的不是  字段名称=字段值 ,而是:字段名称 like '%查询值%',同样多个条件用and连接。

3.如果加上排序: order by a.addtime desc;

排序用法:加在where条件之后limit条件之前, order by 字段名,默认为升序,如果要降序排列则加上desc。(注:很多童鞋可能还不能清楚的区分降序升序我就简单介绍一下:升序(asc) 从小到大,降序(desc)从大到小)。

 后接查询某几条数据: limit x,y;

limit用法:用在语句最后,x为从第x+1位开始查询,y为一次查询多少条记录.

还有,如果写两表关联的查询语句的话,比如:A表有字段如下:

id(主键id),

name(姓名),

orgid(单位id)

    B表有字段如下:

id(主键id),

orgname(单位名称),要求:查询A表所有信息,并把单位id显示为单位名称。

如果遇到类似这样的问题的话,可以使用左连接。比如:select a.id,a.name,a.orgid,b.orgname from A a left join B b on a.orgid=b.id;

这样问题就解决了。同样,如果多个表关联使用左连接的话,也就是多个左连接中间用空格隔开即可。左连接后可接where条件(包括搜索条件,排序条件,分页查询数据条件)

本篇文章到此就结束了,关于SQL查询语句这块儿,我们在实际操作中可以将项目中的SQL语句输出,复制到 SQLyog中执行一遍,如果有问题可以在SQLyog中修改,无误后再与项目中拼写的SQL语句对照。基本上问题就可以解决。