准备数据:
/*新建学生表stu*/
create table stu(
id int not null PRIMARY key auto_increment comment'主键',
name varchar(12) comment'姓名',
age varchar(12)
)
/*插入数据*/
insert into stu(id,name,age)values
(1001,'coco',18),
(1002,'sunny',19),
(1003,'rose',20),
(1004,'jack',19);
一、SELECT语句
使用select查询表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
#1.查询单个列:
select id from stu;
未排序数据 如果没有明确排序查询结果,可能会发现显示输出的数据顺序与原表不同,返回的数据的顺序没有特殊意义,可能是数据被添加到表中的顺序,也可能不是,只要返回相同数目的行就是正常的。
结束SQL语句 多条SQL语句以分号(;)分隔。
SQL语句和大小写 SQL语句不区分大小写,SELECT与select是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样使代码更易于阅读和调试。
使用空格和空行 在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行,多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。
#2.查询多个列:查询学生表的id,name两列的值
select id,name from stu;
在select关键字后给出多个列名,列名之间以逗号分隔,最后一个列名后不加逗号。
#3.查询所有列:查询学生表所有列的值
select * from stu;
使用*通配符 一般,除非确实需要表中的每个列,否则最好别使用*通配符。不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
检索未知列 不明确指定列名(因为星号检索每个列),所以能检索出名字未知的列。
#4.查询不同的行(distinct去重):查询学生表所有学生的年龄
select distinct age from stu ;
使用DISTINCT关键字,它必须直接放在列名的前面。
不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列,除非指定的两个列都不同,否则所有行都将被检索出来。
#5.1 限制结果(limit分页):查询学生表前4行的学生ID
select id from stu limit 4;
#5.2 限制结果(limit m,n:从行m开始往后n行,第1行的m为0):查询学生表倒数三个学生的ID
select id from stu limit 1,3;
带一个值的LIMIT总是从第一行开始,给出的数为总的行数。带两个值的LIMIT可以指定从行号为第一个值的位置开始。
行0开始 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。
行数不够时 LIMIT中指定要检索的行数为检索的最大行数,如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行。
以上
That's all.
快来星标 置顶 关注我
T ester