从零开始的Java秃头之旅之数据库篇
- DQL:查询语句
1.排序查询
语法:order by 子句
order by 排序字段1 排序方式1, 排序字段2 排序方式2…
排序方式:
ASC:升序,默认的。
DESC:降序。注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件
2.聚合函数:将一列数据作为一个整体,进行纵向的计算。
语法:1.count:计算个数(一般选择非空的列);2.max:计算最大值;3.min:计算最小值;4.sum:计算和;5.avg:计算平均值。
注意:聚合函数的计算,会排除null值。
解决方法:1.选择不包含非空的列进行计算
2.IF NULL函数
3.分组查询:
语法:group by 字段;
注意:1.分组之后查询的字段:分组字段、聚合函数
2.where和having的区别?1.where在分组之前进行限定,如果不满足限定,则不参与分组;having是在分组之后进行限定,如果不满足结果,则不会被查询出来。2.where后不可以跟聚合函数,having可以进行聚合函数的判断。
4.分页查询:
语法:limit 开始的索引,每页查询的条数;
公式:开始的索引 = (当前的页码-1)* 每页显示的条数
limit 是一个MySQL的“方言”
- 约束:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类:1.主键约束:primary key 2.非空约束:not null 3.唯一约束:unique 4.外键约束:foreign key
非空约束:not null
唯一约束:值不能重复
主键约束:非空且唯一;一张表只能有一个字段为主键;主键就是表中记录的唯一标识。
自动增长:如果某一列是数值类型的,使用auto_increment可以来完成值的自动增长:create table stu( id int primary key auto_increment, name varchar(20) );
删除自动增长:alter table stu modify id int;
添加自动增长:alter table stu modify id int auto_increment;
外键约束:froeign key ,让表产生关系,从而保证数据的正确性。
1.在创建表时,可以添加外键(语法: create table 表名(… 外键列 constraint 外键名称 foreign key 外键列名称 references 主表名称(主表列名称));)2. 删除外键 ALTER TABLE 表的名称 DROP FOREIGN KEY 外键的名称; 3.手动添加外键 ALTER TABLE 表的名称 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
- 级联操作
语法: ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
分类:1.级联更新:ON UPDATE CASCADE 2.级联删除:ON DELETE CASCADE.