数据库(三)

时间:2022-03-12 07:49:42

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 <> "男";