5、简单的数据查询:

 

       查询的基本结构:

       select,from,where,orber by和distinct都是sql查询关键字。

       数据库的查询操作分为3种:投影操作、选择操作、排序操作。

 

       投影操作:

       select 列名列表 from 表;

       表名前缀:

       select t_student.f_name from t_student;

       如果从多张表中获取数据就用表名前缀。

       列别名:

       单表:select 列A as A,列B as B from 表名 as T;

       多表:select T.列A as A,T.列B as B from 表名 as T;

       计算列:

       可以用于计算加、减、乘、除。

       排除重复数据:

       select distinct 列A  from 表;

       distinct的作用是把该列的重复值去掉,每一个值只保留一个。

       返回限定行数的查询:

       select 列A,列B from t_student limit 开始序号;

       select 列A,列B from t_student limit 开始序号,结束序号;

       一个参数:从第一行开始返回指定行数的结果。

       两个参数:从指定行开始返回指定行数的结果。

       limit后面加数字5代表从1开始显示5行结果;(m,n)代表从(m+1)开始显示n条记录。

       limit的序号是从0开始,limit只能用于My SQL中。

       limit写在所有语句后,返回语句在查询语句后。

 

       选择操作:

       select 列名列表 from 表 where 条件;

       单条件选择操作:

       select 列A,列B from 表 where 列c=值;

    =          :等于

    !=,^=,<>   :不等于:不等不要随便用,用过之后索引不起作用。

    >          :大于

    >=         :大于等于

    <          :小于

    <=         :小于等于

       多条件选择操作:

       select 列A,列B from 表 where 条件1 and或者or 条件2;

       and是并且,or是或者。

       执行范围测试(between):

       select 列A,列B from 表

       where 列C between 下限 and 上线;

       between后面是开始值,and后面是结束值。

       在between后面加not就是排除这个范围。

       定义集合关系:

       select 列A,列B from 表 where 列C in (值集合);

       在指定的几个值中进行收索,用于一些不连续的数值。

       也可以是独立的select查询:

       select 列A,列B from 表

       where 列C in (select 列D from 表2);

       in与not一起组合使用,可以查询不在集合中的数据:

       select 列A,列B from 表 where 列C not in (值集合);

       模糊查询(like):

       select 列A,列B from 表 where 列C like 模式;

       %表示匹配包含零个或多个字符的任意字符串,可前缀和后缀。

       _表示匹配任意单个字符,可前缀和后缀。

       不能在里面加空格。空格是一个字符。

       处理空值:

       判断为空不能用=号。

       select 列A,列B from 表 where 列C is not null;测试c不为空

       select 列A,列B from 表 where 列C is null;测试c为空null也是返回false。

       匹配null必须使用is null 或者is not null,使用其他任何比较运算符来匹配后得到的结果都是flase。

 

       排序操作:

       排序默认从小到大来排序的。

       select 列A,列B from 表 order by 列A,列B……;

       单列排序:

       select 列A,列B from 表 order by 列A asc;

       asc是按照升序排序,是默认的无需加上。

       select 列A,列B from 表 order by 列A desc;

       desc是降序排序。

       多列排序:

       select 列A,列B from 表 order by 列A,列B……;

       在select子句后指定多个列名时,是根据后面列名的顺序来确定优先级的。