一.Mysql的DQL语句---->数据库查询语句(带条件的查询分类)
基本查询
如果两个数据int类型字段求和的时候,如果某个字段是null,结果是null mysql的ifnull(字段名称,预期值) 函数
SELECT NAME '姓名', (math+IFNULL(english,0)) '总成绩' FROM student2;
where条件可以使用 or 或者java语言||,in(值1,值2.....)
SELECT
FROM student2 WHERE age = 20 OR age = 18 OR age = 45 ; -- 另一种写法 SELECT
FROM student2 WHERE age = 20 || age = 18 || age = 45 ; -- 另一种写法:in(值1,值2.....) SELECT
FROM student2 WHERE age IN (20, 18, 45) ;
高级查询
模糊LIKE
语法 select 字段列表 from 表名 where 字段名称 like'%xx%'
%;代表任意多个字符 (开发中使用居多)
_:代表任意一个字符
'字符%' '%字符%' 也可以
聚合(将一列数据作为一个整体,进行纵向的计算)
count:计算个数 -> 一般选择非空的列:主键 count(*) max:计算最大值 min:计算最小值 sum:计算和 avg:计算平均值 * 注:聚合函数的计算,排除null值。 解决方案: 1. 选择不包含非空的列进行计算 2.IFNULL函数
排序order by
select * from 表名 order by 字段值 asc,desc(升序,降序)
分组group by
select 字段列表 from 表名 group by 分组字段名称
筛选 having
having的后面可以跟聚合函数,having在group by
分页 limit
select 字段列表 from 表名 limit 起始行数 ,每页显示的条数;
起始行数= (当前页码数)
编译顺序
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
二.数据库约束(限定用户操作数据库的一种行为)
默认约束 default
非空约束 not null
唯一约束 unique
主键约束 primary key 非空且唯一
自增长约束auto_increment
级联操作cascade :需要上面的有关联关系需要用级联
三.关于表和表的关系 /数据库的三大范式(设计数据库)
一对多(常见):部门和员工
多对多(常见):订单和商品
一对一:用户和身份证
用户表 中间表 角色表 中间表 权限表 ----权限框架(三阶段)