JavaWeb笔记_07

1. 数据库操作-DQL

  • 数据查询语言(Data Query Language,DQL):用来查询数据库表中的记录。

1.1 语法结构

SELECT
	字段列表
FROM
	表名列表
WHERE
	条件列表
GROUP  BY
	分组字段列表
HAVING
	分组后条件列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

1.2 查询

  • 基本查询(不带任何条件)
  • 条件查询(where)
  • 分组查询(group by)
  • 排序查询(order by)
  • 分页查询(limit)

1.3 基本查询

语法:

  • 查询多个字段

    select 字段1, 字段2, 字段3 from  表名;
    
  • 查询所有字段(通配符)

    select *  from  表名;
    
  • 设置别名

    select 字段1 [ as 别名1 ] , 字段2 [ as 别名2 ]  from  表名;
    
  • 去除重复记录

    select distinct 字段列表 from  表名;
    

1.4 条件查询

语法:

select  字段列表  from   表名   where   条件列表 ; -- 条件列表:意味着可以有多个条件

常用的比较运算符如下:

比较运算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<> 或 !=不等于
between … and …在某个范围之内(含最小、最大值)
in(…)在in之后的列表中的值,多选一
like 占位符模糊匹配(_匹配单个字符, %匹配任意个字符)
is null是null

常用的逻辑运算符如下:

逻辑运算符功能
and 或 &&并且 (多个条件同时成立)
or 或 ||或者 (多个条件任意一个成立)
not 或 !非 , 不是

1.5 聚合函数

  • 调用函数对一列的值进行计算并返回结果
    语法:
select  聚合函数(字段列表)  from  表名 ;

注意 : 聚合函数会忽略空值,对NULL值不作为统计。
常用聚合函数:

函数功能
count统计数量
max最大值
min最小值
avg平均值
sum求和

count :按照列去统计有多少行数据。

  • 在根据指定的列统计的时候,如果这一列中有null的行,该行不会被统计在其中。

sum :计算指定列的数值和,如果不是数值类型,那么计算结果为0

max :计算指定列的最大值

min :计算指定列的最小值

avg :计算指定列的平均值

1.6 分组查询

  • 按列分类,把相同数据归为一类,统计相同数据数量

语法:

select  字段列表  from  表名  [where 条件]  group by 分组字段名  [having 分组后过滤条件];

1.7 排序查询

  • 对查询的结果按需求排序

语法:

select  字段列表  
from   表名   
[where  条件列表] 
[group by  分组字段 ] 
order  by  字段1  排序方式1 , 字段2  排序方式2;
  • 排序方式:
    • ASC :升序(默认值)
    • DESC:降序

1.8 分页查询

  • 将查询到的数据按需求分成页显示

语法:

select  字段列表  from   表名  limit  起始索引, 查询记录数 ;

起始索引计算:(页码-1) X 查询记录数
如果查询页码为第一页,起始索引可省略不写: limit 查询记录数

2. 多表设计

  • 表结构基本上分为三种:

    • 一对多(多对一)

    • 多对多

    • 一对一

2.1 一对多

  • 一个表中的一条数据对应另一个表的多条数据,通过外键进行绑定(表的主键设置为表的外键)
    • 一条数据的表为表,被映射多条数据的表为
    • 比如一个班级拥有多个学生

外键约束的语法:

-- 创建表时指定
create table 表名(
	字段名    数据类型,
	...
	[constraint]   [外键名称]  foreign  key (外键字段名)   references   主表 (主表列名)	
);
-- 建完表后,添加外键
alter table  表名  add constraint  外键名称  foreign key(外键字段名) references 主表(主表列名);

2.2 一对一

  • 一个表中的一条数据对应另一个表的一条数据,通过外键进行绑定(部分主表子表)
    • 比如一个人只有一个身份证号

2.3 多对多

  • 一个表中的多条数据对应另一个表的一条数据,需新建一包含两个主表主键的联系表
  • 比如:一个学生学了多门课程,一门课程被多个学生选择
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值