检索数据
select * from table (表跟其他数据库语法一般一样);
SQL语句不区分大小写多条SQL语句必须以分号(;)分隔一定要认识到虽然SQL是不区分大小写的,但有些标识符(如数据库名、表名、列名)可能不同在处理SQL语时,其中所有空格都被忽略
分页
select name from students limit 5;(查询student表里的name列的前5行)
select name from students limit 5,5;(查询student表里的name列的第五行到第10行)第一个数为开始位置,第二个数为要检索的行数
select name from students limit 3 offset 4(从4开始取3行)
所以,带一个值的 LIMIT 总是从第一行开始,给出的数为返回的行数。
带两个值的 LIMIT 可以指定从行号为第一个值的位置开始。
检索出来的第一行为行0而不是行1。因此, LIMIT 1, 1
将检索出第二行而不是第一行。
在行数不够时 LIMIT 中指定要检索的行数为检索的最大行
表名也可以是完全限定的
eg:
select name from aa.student(aa数据库名.表名)
注意:不能部分使用 DISTINCT ,DISTINCT 关键字应用于所有列而
不仅是单个紧跟它的列,如果给出 SELECT DISTINCT vend_id,
prod_price ,除非指定的两个列查出的每一行值都不同,
否则所有行都将被检索出来;
排序:
其实,检索出的数据并不是以纯粹的随机顺序显示的。如果不排
序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初
添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺
序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控
制的话,不能(也不应该)依赖该排序顺序
eg:
select name,pwd from aa order by name;
select name,pwd from aa order by name,pwd(先按name,再按pwd排序)
默认的排序都是升序,(A-Z),若用降序,必须加desc(asc);
使用 ORDER BY 和 LIMIT 的组合,能够找出一个列中最高或最低的值
eg:
select price from aa order by price desc limit 1;
(价格由贵到便宜,只返回一行,最高价)