Java笔记-16、Web后端基础 数据库

news/2025/2/24 23:02:11/文章来源:https://www.cnblogs.com/subeipo/p/18735188

数据库:存储和管理数据的仓库。
SQL: Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

常用SQL语句

DDL DML DQL DCL
Data Definition Language Data Manipu lation Language Data Query Language Data Control Language
数据定义语言,用来定义数据库对象(数据库,表,字段) 数据操作语言,用来对数据库表中的数据进行增删改 数据查询语言,用来查询数据库中表的记录 数据控制语言,用来创建数据库用户、控制数据库的访问权限

DDL

数据库

  1. show databases 查询所有数据库
  2. select database() 查询当前在使用的数据库
  3. use XXX 使用/切换数据库
  4. create database [if not exists] XXX [default charset utf8mb4] 创建数据库
  5. drop database [if exists] XXX 删除数据库

database可以替换成schema。

  1. create table XXX(a atype [约束] [comment a注释], ...)[comment 注释] 创建表
  2. show tables查询当前数据库的所有表
  3. desc 表名查询表结构
  4. show create table 表名查询建表语句
  5. alter table 表名 add 字段名 类型(长度) [约束] [comment]添加字段
  6. alter table 表名 modify 字段名 新数据类型(长度)修改字段类型
  7. alter table 表名 change 旧字段名 新字段名 类型(长度) [约束] [comment]修改字段名和字段类型
  8. alter table 表名 drop column 字段名删除字段
  9. alter table 旧表名 rename to 新表名修改表名
  10. drop table [if exists] 表名删除表

约束

  1. not null非空约束,限制该字段值不能为null。
  2. unique唯一约束,保证字段的所有数据都是唯一、不重复的。
  3. primary key主键约束,主键是一行数据的唯一标识,要求非空且唯一。
  4. auto_increment自动增长,默认从0开始增长。
  5. default默认约束,保存数据时,如果未指定该字段值,则采用默认值。
  6. foreign key外键约束,让两张表的数据建立连接,保证数据的一致性和完整性。

DML

对数据表中的数据进行增删改。INSERT DELETE UPDATE

INSERT

  1. insert into 表名(字段1,字段2) values (值1,值2)指定字段添加数据
  2. insert into 表名 values (值1, 值2...)全部字段添加数据
  3. insert into 表名(字段1,字段2) values (值1,值2), (值1,值2)指定字段批量添加数据
  4. insert into 表名 values (值1, 值2...),(值1, 值2...)全部字段批量添加数据
insert into emp values (null, 'linchong', '1234567', 'linchong', 1, '13300001112', 1, 6000, '2020-01-01', '1.jpg', now(), now());

UPDATE

  1. update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [where 条件]修改数据

修改语句的条件可以有,可以没有。但没有条件会修改整张表的所有数据!比较危险!

DELETE

  1. delete from 表名 [where 条件]删除数据

删除语句的条件可以有,可以没有。但没有条件会删除整张表的所有数据!比较危险!
删除语句不能删除某个字段的值,如果要改可以使用UPDATE将该字段的值设为null

DQL

对数据表中的数据进行增删改。SELECT

  1. 基本查询select...from...
  2. 条件查询where
  3. 分组查询group by
  4. 排序查询order by
  5. 分页查询limit
select字段列表
from表名列表
[where条件列表]
group by分组字段列表
[having分组后条件列表]
order by序字段列表
limit分页参数

基本查询

  1. select [distinct] 字段1 [as 别名1],字段2 [as 别名2],... from 表名

项目开发建议少用*,不直观,把所有的字段打出来

条件查询

select字段列表
from表名列表
where条件列表
where中的比较运算符
比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<>!= 不等于
between... and ... 在某个范围之内(含最小、最大值)
in(...) 在in之后的列表中的值,多选一
like 占位符 模糊匹配(_匹配单个字符,%匹配任意个字符)
is null 是null
is not null 不是null
where中的逻辑运算符
逻辑运算符 功能
and&& 并且(多个条件同时成立)
or|| 或者(多个条件任意一个成立)
not! 非,不是

分组查询

分组往往伴随着聚合。
聚合函数:将一列数据作为一个整体,进行纵向的计算。
count max min avg sum
所有的聚合函数不参与null的计算。
使用时,优先用count(*),然后是count(常量),最后是count(字段)

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

分组后,select后一般写的是分组字段+聚合函数。
where后不能用聚合函数。

where与having的区别
  1. 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  2. 判断条件不同:where不能对聚合函数进行判断,而having可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889250.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

朋友说喊搞个简单的微信对接的封装搞外包,不要那么多的方法拿来就用的的那种,来看看Simple.Wechat吧

朋友说喊搞个简单的微信对接的封装搞外包,不要那么多的方法拿来就用的的那种,来看看Simple.Wechat吧😂不知道大家有没有和我朋友一样,很多时候做外包总免不了去对接微信,最简单的微信用户信息获取、微信支付、微信模板消息发送,要是不熟悉总是要去找这个那个的包,但是人…

龙哥量化:二重奏啊!同时用deepseek和腾讯元宝的Hunyuan大模型写技术指标和选股公式,把收集的公式源码传给他,可以像人一样思考

龙哥微信:Long622889代写通达信技术指标、选股公式(通达信,同花顺,东方财富,大智慧,文华,博易,飞狐)代写期货量化策略(TB交易开拓者,文华8,金字塔) 开源的deepseek非常爆火,大科技公司都纷纷接入ds。腾讯元宝也接入了, 可以选Hunyuan或者deepseek模型给你帮忙,…

【APP逆向35】frida反调试2

前言:有些app运行时会监测frida的相关特征,监测到之后就会直接闪退 示例:解决方法:可以尝试使用strongR-frida-android来绕过监测1.下载frida-server(加强版)下载地址:https://github.com/hzzheyang/strongR-frida-android/releases?page=4 找到frida对应的版本解压,上…

【作业】自我介绍

软件工程学第一节课作业:自我介绍+软工5问作业相关信息这个作业属于哪个课程🔗班级链接 这个作业要求在哪里🔗作业链接 这个作业的目标 1. 自我介绍 2. 软工五问作业一: 自我介绍 🚩Hi! I am Mike, a technology learner enthusiastic in new ideas and programs. Toge…

磁盘总结---特殊符号系列-正则概述

1.系统管理-补充 文件系统: 磁盘中文件的组织方式常见文件系统 说明xfs centos 7默认的文件系统即可ext4 centos 6.x ubuntu 默认的文件系统ext3 centos 5.x 默认的文件系统swap 交换分区,也算是个文件系统2.磁盘性能指标磁盘性能指标 说明吞吐量(读写速度) 一般值得是磁盘读…

多态的前提--java进阶day02

1.多态的前提条件第一点和第二点都很好理解,第三点父类引用指向子类对象是什么意思?以下图进行讲解我们以前的写法,如下图,叫做子类引用指向子类那父类引用呢?就是把左边换成父类Animal即可因为dog和cat都是Animal的子类,所以二者皆可用该种引用方式并不是所有的对象都可…

行内块应用

这是做的作业<!DOCTYPE html> <html lang="zh-cn"> <head><meta charset="UTF-8"><title>Title</title><style>.pics {width: 1850px;height: 700px;display: flex;justify-content: center; /* 水平居中 */ali…

基于NURBS曲线的数据拟合算法matlab仿真

1.程序功能描述 基于NURBS曲线的数据拟合算法,非均匀有理B样条(Non-Uniform Rational B-Splines,简称NURBS)曲线是一种强大的数学工具,广泛应用于计算机图形学、CAD/CAM系统、几何建模和数据拟合等领域。NURBS曲线通过控制顶点和权重,能够精确地表示复杂的曲线和曲面…

基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器

1.课题概述 基于simulink的PEM燃料电池控制系统建模与仿真,对比PID,积分分离以及滑模控制器。2.系统仿真结果 (完整程序运行后无水印) 3.核心程序与模型 版本:MATLAB2022a 4.系统原理简介PEM(质子交换膜)燃料电池作为一种高效的能量转换装置,在众多领域中展现出广泛的应…