查询数据3种方法,排序查询,分组查询,嵌套查询,多表查询,分

2017-01-22  本文已影响0人  孤岛渔夫
    -- 查询数据1    查询表中的所有数据
-- * 通配符  代表所有字段
-- select * from 表名
select * from student;

-- 查询数据2  带条件式的查询
-- select * from 表名 where 条件表达式
select * from student where sex=2;
select * from student where sex=2 and age = 17;

-- 查询数据3  指定字段查询 (推荐 ..  效率高, 目的明确)
-- select `字段名1`, `字段名2`, .... `字段名N`  from 表名 [ where 条件表达式 ]
select id,name, age, sex from student where id > 2;

-- 排序查询
-- select 字段名 ...  from 表名 [wherer   ...]   order by 字段名 asc(默认升序)/desc(降序)
select id,name,sex,age from student order by age;

-- 分组查询
-- select 字段名  from 表名  group by 字段名
select `class`, max(`score`) from student group by `class`;

-- 嵌套查询
-- 查询每个班里面成绩最高的人
-- select `class`, name, max(`score`) from student group by `class`;

-- 查询每个班的最大成绩
select max(score) from student group by class;
-- 查询in条件里每个人的班级,姓名,成绩
select `class`,`name`,`score` from student where score in (90,59);

-- 把两个查询条件嵌套使用
select `class`,`score`,`name` from student where score in ( select max(score) from student group by class );


-- 多表查询
select name, hobby from student , life  where sid = studentId
 
-- 给不同的表 取别名(小名)      主要为了 区分 不同的表里有相同的字段名
select  s.id, name, sex, hobby
from student s, life l
where s.sid = l.studentId and sex=2


-- 分页查询
-- limit rows
-- limit offset,rows
--              offset 偏移量(从哪开始)
--              rows   行数(显示多少条数据)
select id,name,sex,regtime 
from student
limit 3;


select id,name,sex,regtime 
from student
limit 2,3;

select id,name,sex,regtime 
from student
limit 0,3;



create table if not exists `life`(
    `id` int unsigned  auto_increment primary key,
    `studentId` int(10) unsigned comment '学号',
    `hobby` varchar(20) default null comment '爱好'
)engine=MyISAM default charset=utf8;



insert into life values
(null,1,'唱歌'),
(null,1,'嫖'),
(null,1,'赌'),
(null,1,'抽'),
(null,1,'吹箫'),
(null,3,'学霸'),
(null,3,'拍片'),
(null,3,'撸'),
(null,3,'美女'),
(null,6,'看片'),
(null,6,'打手枪'),
(null,6,'打飞机'),
(null,6,'学习PHP')



上一篇下一篇

猜你喜欢

热点阅读