知识概要:!!! 1.主要掌握排序查询,聚合函数的种类,分组和分页查询; 2.了解对于字段的约束,包括主键约束,非空,唯一,自增长,默认; 3.理清楚主表和从表的关系,掌握外键的使用格式 4.总结多表之间的关系,一对一,一对多,多对多 第一章 .查询记录【重点】 1.1排序查询 格式: elect *from 表名 order by 字段 ASC/DESC; 特点: 能根据提供的字段进行升序和降序的排列,提供查询结果, 但不会改变数据库内部的排列顺序 1.2聚合函数 函数种类: 聚合函数 作用 max(字段) 用来求该字段的最大值 min(字段) 求字段中的最小值 sum(字段) 求字段值的和 avg(字段) 求字段值的平均值 count(*) 计算出字段的个数 语法格式: select 聚合函数(字段名/列名)from 表名; 1.3分组查询 格式: select *from 表名 group by 字段 使用: 通常分组查询会和count(*)函数搭配使用, 因为需要统计分组后各个小组的人数情况 where 和 having 过滤条件的区别: WHERE HAVING 分组前进行过滤使用 分组后进行数据过滤操作 where中不能使用聚合函数 having中可以使用聚合函数 1.4分页查询 格式: select *from 表名 limit a , b; (索引默认从0开始) a: 开始的索引 b: 限制显示的记录个数 特点: 当知道页数n和显示的记录个数m时,可以计算出开始的索引 公式: 索引位置 = (n-1)* m; 查询语句的语法小结 select *from ... where ... group by....having ... order by ... limit ... -- 执行的顺序:from >> where >> group by >> select >> having >> order by >> limit 第二章.约束 2.1主键约束 1.主键的概念: 表中的唯一标识 2.特点: 唯一且不为空,和 UNIQUE AND NOT NULL 等价 3.自增长: 和主键搭配使用,使主键的id能够自增 4.使用: primary key auto_increment 2.2非空,唯一,默认值 非空 NOT NULL 限制字段不能为空 唯一 UNIQUE 限制字段唯一不可重复 默认值 DEFAULT 如果没有给字段赋值,则使用默认值 第三章. 多表 3.1主表和从表 当表①中的数据是来源于表②时, 表①为从表, 表②为主表. 3.2 外键 外键: 从表中的某个字段是来源于主表的, 那么这个字段称之为外键 添加外键: 从表中添加一个外键, 指向主表的主键. 创建表时添加 create table 表 ( … , CONSTRAINT 外键名 foreign key(字段) references 主表(主键字段) ) 修改表时添加 alter table 表 add CONSTRAINT 外键名 foreign key(字段) references 表(字段); 删除外键 ALTER TABLE 表 drop foreign key 外键名称; 3.3 外键的练习 -- 创建主表 CREATE TABLE category ( cid INT PRIMARY KEY AUTO_INCREMENT, cname VARCHAR(20) ) -- 创建从表 CREATE TABLE product ( pid INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20), price DOUBLE, pcount INT, cid INT, CONSTRAINT pro_cid_cat_cid_fk FOREIGN KEY(cid) REFERENCES category(cid) ) -- 添加数据 INSERT INTO category (cname) VALUES ('手机数码'), ('交通工具'); INSERT INTO product VALUES (NULL, 'iphoneX', 5399, 40, 1); INSERT INTO product VALUES (NULL, '华为P30', 8499, 100, 1); INSERT INTO product VALUES (NULL, '小牛电动车', 8988, 10, 2); INSERT INTO product VALUES (NULL, '捷安特自行车', 4288, 30, 2); -- 以下的操作都会报错 -- 添加商品信息, 这个商品信息的分类不存在 INSERT INTO product VALUES (NULL, 'AJ8', 26999, 1, 3); -- 修改商品表中分类信息, 改为不存在的分类 UPDATE product SET cid = 3 WHERE cid = 2; -- 修改分类表中的分类信息 UPDATE category SET cid = 3 WHERE cid = 2; -- 删除主表中的分类信息 DELETE FROM category WHERE cid = 2; 3.4 外键约束(了解) 外键的级联操作 如果修改或者删除了主表中带有外键约束的字段, 会将对应的内容都修改或删除 语法: 创建表时, 直接在外键后面添加: on delete cascade on update cascade 添加外键约束时添加: alter table 表 add constraint … on delete cascade on update cascade 3.5小结 主表和从表: 表①中的数据是来源于表②, 表①是从表, 表②是主表 外键: 从表中来源于主表的字段, 指向主表中的主键(具有唯一约束的字段) 格式: constraint 外建名 foreign key(外键字段) references 主表(主键字段) 知识点-多表间关系 一对多 多对多 一对一 3.1 一对多【重点】 一对多(1 : n): 例如: 班级和学生, 部门和员工, 客户和订单, 分类和商品 3.2 多对多【重点】 多对多(n : m) 例如: 老师和学生, 学生和课程, 用户和角色 3.3一对一【了解】 一对一(1:1) 例如: 老公和老婆, 用户和用户信息 4.小结 一对多: 在多的一方创建一个外键, 指向一的一方的主键 多对多: 创建一张第三方表, 该表至少有两个字段,这两个字段分别作为外键, 指向另外两张表的主键 (责任编辑:IT) |