网站建设推广书籍,建筑企业网站源码,有没有专门做京东天猫的人才网站,王磊网站建设数据库开发
一、数据库操作-DQL
1.概述
用来查询数据库表中的记录#xff0c;查询操作分为两部分#xff0c;单表操作和多表操作#xff0c;针对于查询而言#xff08;相较于增删改更加的灵活#xff09;基于目标分析条件转换为SQL语句
2.语法
SELECT 字段列表
FROM表…数据库开发
一、数据库操作-DQL
1.概述
用来查询数据库表中的记录查询操作分为两部分单表操作和多表操作针对于查询而言相较于增删改更加的灵活基于目标分析条件转换为SQL语句
2.语法
SELECT 字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后条件列表
ORDER BY排序字段列表
LIMIT分页参数3.基本查询不带任何条件查询 查询多个字段 select 字段1,字段2,字段3 from 表名;查询所有字段 select * from 表名;设置别名 select 字段1 [as 别名1],字段2 [as 别名2] from 表名;去除重复记录 select distinct 字段列表 from 表名;4.条件查询
条件列表可以有多个条件
select 字段列表 from 表名 where 条件列表;SQL语句中构建条件的运算符有两类比较运算符和逻辑运算符
比较运算符中特殊的
比较运算符功能或!不等于in(…)在in范围之内的值多选一like 占位符模糊匹配_匹配单个字符%匹配人任意个字符is null是null
常用的逻辑运算符
逻辑运算符功能and或并且多个条件同时成立or或||或者多个条件任意一个成立not或非不是
5.聚合函数
之前的查询都是横向查询根据条件一行一行进行判断而使用聚合函数查询是纵向查询它是对一列的值进行计算返回一个结果值将一列数据作为一个整体进行纵向计算
语法
select 聚合函数字段列表 from 表名;聚合函数会忽略空值对null值不作为统计
常用聚合函数
函数功能count统计数量max最大值min最小值avg平均值sum求和
sum聚合函数计算指定列的数值和时如果不是数值类型那么计算结果为0
案例统计该企业最早入职的员工
select min(entrydate) from tb_emp;6.分组查询
分组查询是按照某一列或者某几列把相同的数据进行合并输出分组查询通常会使用聚合函数进行计算
语法
select 字段列表 from 表名 [wehere 条件] group by 分组字段 [having 分组后过滤条件];案例根据性别分组 , 统计男性和女性员工的数量
select gender, count(*) from tb_emp group by gender; 7.排序查询
排序查询分为升序排序和降序排序
语法
select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式1,字段2排序方式2...;排序方式
ASC升序默认值DESC降序
案例查询所有男生违纪扣分分数的数据(降序排列)如果分数相同按照扣分次数继续降序排列
SELECT * FROM tb_students WHERE gender 男 ORDER BY break_law_score DESC,break_law_count DESC;8.分页查询
语法
select 字段列表 from 表名 limit 起始索引,查询记录数;起始索引从0开始
查询记录数基于起始索引查询的条数
前台传递到后台只有两个数据要查询第几页每页查询多少条要基于公式进行换算
公式起始索引要查询的页数-1*每页显示的条数
案例查询tb_students 查询第3页 每页展示2条
SELECT * FROM tb_students LIMIT 4 , 2;二、多表设计
在实际开发中由于业务之间相互关联所以各个表结构之间存在着各种联系分为三种一对多多对一、多对多和一对一 一对多多对一 问题分析两张表员工表、部门表如果删除部门表中的一个部门那么在这个部门的员工应该也被删除在数据库层面并未建立关联造成部门表不存在而在该部门的员工仍然存在所以无法保证数据的一致性 问题解决通过数据库中外键约束来解决 外键约束让两张表数据建立连接保证数据的一致性和完整性 关键字foreign key 语法
-- 创建表时指定
create table 表名(字段名 数据类型, ...[constraint] [外键名称] foreign key(外键字段名) references 主表(主表列名));
-- 建完表后添加外键
alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表主表列名一对一 一对一关系表通常用来做单表的拆分将一张大表拆分成两张小表将大表中的一些基础字段放在一张表中将其他的字段放在另一张表中以此来提高数据的操作效率 应用场景用户表基本信息身份信息 基本信息用户ID额姓名、性别、手机号、学历 身份信息民族、生日、身份证号、身份签发机关、身份证的有效时间 一对一添加外键在任意一方添加外键关联另一方的主键并且设置外键唯一UNIQUE 多对多 学生与课程的关系属于多对多一个学生可以选修多门课程一门课程也可以供多个学生选择 实现关系建立第三张中间表中间表至少包含两个外键分别关联两方主键