关系型数据库基础之:简单的数据查询
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子句后指定多个列名时,是根据后面列名的顺序来确定优先级的。