关系型数据库基础之:简单的数据查询

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子句后指定多个列名时,是根据后面列名的顺序来确定优先级的。

 

posted @ 2013-04-11 10:07  xinyuyuanm  阅读(210)  评论(0编辑  收藏  举报