javaweb从入门到入土:第三天

DQL数据查询语言

排序查询

语法:order by 子句;order by 排序字段1 排序方式1,排序字段2 排序方式2…
排序方式:ASC:升序(默认) DESC:降序
注意:如果有多个排序条件,则当前面的条件值一样时,才会判断第二条件。

聚合函数:将一列数据作为一个整体,进行纵向的计算

1.count:计算个数
2.max:计算最大值
3.min:计算最小值
4.sum:计算和
5.avg:计算平均值
注意:聚合函数的计算会排除null值,解决方案:1.选择不包含非空的列进行计算 2.IFNULL函数

分组查询

group by 分组字段
注意:
1.分组之后的查询字段:分组字段、聚合函数
2.where和having的区别?1.where在分组之前进行限定,若不满足条件则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。2.where后不可以跟聚合函数,having可以进行聚合函数的判断。

分页查询

语法:limit 开始的索引,每页查询的条数
公式:开始的索引 = (当前的页码 - 1)* 每页显示的条数
例如:SELECT * FROM student LIMIT 0,3; – 第一页
LIMIT是一个“方言”。

约束

概念:对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类:
1.主键约束:primary key
2.非空约束:not null
3.唯一约束:unique
4.外键约束:foreign key

非空约束:not null

1.创建表时添加约束:
CREATE TABLE stu(
id INT,
NAME VARCHAR(20) NOT NULL – name为非空
)
2.创建表完后,添加非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;
3.删除name的非空约束:
ALTER TABLE stu MODIFY NAME VACHAR(20);

唯一约束 UNIQUE

– 创建表时,添加唯一约束
CREATE TABLE stu(
id INT,
phone_number VARCHAR(20) UNIQUE – 添加了唯一约束
);
删除唯一约束:ALTER TABLE stu DROP INDEX 列名;
在创建表后,添加唯一约束:ALTER TABLE stu MODIFY 列名 VARCHAR(20) UNIQUE;

主键约束

1.含义:非空且唯一
2.一张表只能有一个字段为主键
3.主键是表中记录的唯一标识
创建表时,添加主键约束:
CREATE TABLE stu(
id INT PRIMARY KEY, – 给id添加主键约束
name VARCHAR(20)
);
删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;
4.创建完表后添加主键:ALTER TABLE 表名 MODIFY 列名 PRIMARY KEY;
5.自动增长:
概念:如果某一列是数值类型的,使用auto_increment可以完成值的自动增长
添加自动增长:ALTER TABLE 表名 MODIFY INT;

外键约束

在创建表时,可以添加外键
语法:
CREATE TABLE 表名(

外键列
constraint 外键名称 foreign key 外键列名称 主表名称(主表主键名称)
);
删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
添加外键:ALTER TABLE 表名 ADD CONSTRAIN 外建名 FOREIGN KEY (外键列名称) REFERENCES 主表名称(主表列名称);

级联操作

1.添加级联操作:
语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称)PERFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
2.分类:
级联更新:ON UPDATE CASCADE
级联删除:ON DELETE CASCADE

数据库的设计

1.多表之间的关系
一对一,一对多(多对一),多对多
2.实现关系
1.一对多(多对一):
实现方式:在多的一方建立外键,指向一的一方的主键。
2.多对多:
实现方式:多对多关系实现需要借助第三张中间表。

数据库设计的范式

1.第一范式(1NF):每一列都是不可分割的原子数据项
2.第二范式(2NF):非码属性必须完全依赖于候选码。(在1NF基础上取消非主属性对主码的部分函数依赖)
(1)函数依赖:如果通过A属性(属性组)的值可以唯一确定B属性的值,则称B依赖于A。
(2)完全函数依赖:如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值。
(3)部分函数依赖:如果A是一个属性组,则B属性值的确定只需要依赖于A属性组中的某一些值。
(4)传递函数依赖:如果通过A属性(属性组)的值,可以唯一确定B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称C传递依赖于A.
(5)码:如果在一张表中,一个属性或属性组,被其他所有属性完全依赖,则称这个属性(属性组)为该表的码
主属性:码属性中的所有属性
非主属性:除过码属性组的属性
3.第三范式(3NF):在2NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上取消传递依赖)

数据库的备份与还原

1.命令行:
语法:
备份:mysqldump -u用户名 -p密码 数据库名称 > 保存的路径
还原:
1.登录数据库
2.创建数据库
3.使用数据库
4.执行文件。source 文件路径
2.图形化工具:

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页