DQL语句
select 列名,列名,列名 from 表名 where 条件1 and 条件2 其他语句; -- 上述语句为基本查询语句 -- 其它语句包含: -- order by/排序 -- group by/分组 -- having 条件/分组条件 -- limit/截取 -- 条件与条件之间通过and连接
最简单查询
select * from 表名; -- 最简单的查询,查询表上的所有数据 ? select 列名,列名,列名 from 表名; -- 投影操作,只打印自己想要查询的数据的列 ? select 列名 10 from 表名; -- 在显示时使某一列数据加10而,数据库中的数据不发生变化
排序
-- 排序操作 -- 两种方式 -- 升序 asc 默认 -- 降序 desc select 列名,列名,列名 from 表名 where 条件 order by 列名 asc/desc,列名asc/desc... -- 需要注意的是如果要根据多个列名进行排序 每个列名后边要标明排序方式 -- 先根据第一个列名排序,如果出现重复在根据第二个排序,以此类推
排除重复的列
select distinct 列名,列名... from 表名; -- 重复的数据不显示 -- 需要注意的是distinct在列名前边这个循序不可以变化 -- 显示时根据后边给出的列名进行查询,如果只有一个就根据一列的查重,如果有多列就多列
限定
-- 返回限定的行数 -- limit 有两个参数 第一个参数 从哪里开始(0),第二个参数显示几个 -- limit 可以只写一个参数 从0开始,显示几个 ? select * from 表名 limit 3; /*从0开始显示3个*/ select * from 表名 limit 0,3; select * from 表名 limit 3,3; /*从3开始(注意limit是从0开始编号的),显示3个*/ ? -- limit用处很大,我们后面的分页,都需要使用到limit
聚合函数
max min sum avg count
最大值 最小值 求和 统计行数
-- 注意,这里给*的意思是指代整个一行 select count(*) as c from 表名; select count(0) as c from 表名; /*count(0)的效率高*/ ? -- 注意:如果count根据列名去统计,不会统计为null的字段 select count(列名) as c from 表名; ? select max(列名) from 表名; select sum(列名) from 表名; select count(0) as 指代名 from 表名 where student_sex = "男"; ? -- 字符串不能求和 select sum(列名) from 表名;
其他
sql中的字符串拼接运算
select concat(列名1,"_",列名2) as 别名 from 表名; -- 在该语句中‘_‘被称作连接符
sql中的的别名
列名 as 别名 -- 在数据库中我们可以给列名在起一个称谓 通过关键字 as 实现
不等于
-- 在sql语言中有两种不等于判断符 -- 不等于 注意:在mysql中如果是实在没有办法,不要用不等于的判断 -- select * from t_student where student_sex != "男"; ? -- select * from t_student where student_sex <> "男";