MySQL语句学习第三篇_数据库

MySQL语句学习第三篇_数据库
专栏记录MySQL的学习,感谢大家观看。

本章的专栏📚➡️MySQL语法学习
本博客前一章节指向➡️MySQL语句学习第二篇
本人的博客➡️:如烟花般绚烂却又稍纵即逝的主页
在这里插入图片描述

文章目录

  • MySQL的基础操作(改与查)
      • 修改操作
      • 删除操作
  • 数据库约束
  • 查询操作的进阶
    • 聚合查询
      • 聚合分组查询
      • 聚合分组表达式查询
    • 联合查询/多表查询

MySQL的基础操作(改与查)

修改操作

修改指令:

通过update 表名 set 列名 修改的字段来修改数据,也可以增加条件(where/order by),指定修改行。

updata database_name set colName = val where conditions/order by;#for example1
update exam_result set math=math+10 where name='张三';
#for example2
update exam_result set math=math+30 order by chinese+english+math desc limit 3;

删除操作

删除操作:

delete from 表名 where条件/order by/limit;
不指定条件删除整张表内容(空表)。

delete from database_name where name ='张三';

数据库约束

1.NULL指令:

创建时添加not null/NOT NULL ,创建成功后,当插入或者修改字段时无法插入或者修改为空值。

create table table_name(valNmae type NOT NULL);
#for example
create table person(name varchar(10) not null,age int NOT NULL);

2.UNIQUE指令:

创建时将unique置入类型后面,不可再次重复插入或者修改为此类型的值。

create table table_name(valNmae type unique);
#for example
create table person(id int,name varchar(10) UNIQUE);

3.DEFAULT指令:

通过创建表,指定类型的默认值,在不赋值的情况下,插入或者修改指定的字段时,显示default默认值。

create table table_name(valName type default defaultName);
#for example
create table person(id int,name varchar(10) default '未命名');

4.PRIMARY KEY指令:

primary key主键的功能:在插入或者修改带有primary key 的类型字段时,不能为空,且不能有重复字段添加。
一个表中只能有一个primary key

create table table_name(valNmae type primary key);
#for example
create table person(age int primary key);

主键key的auto_increment自动增长指令:

通过自增方式通过数据库来自动分配字段,整数类型(int /bigint)

create table table_name(valName int primary key auto_increment);
#for example
create table person(id int primary key auto_increment);
##自动插入1,2
insert into person values(null),(null);

5.FOREIGN KEY指令:

foreign key 外键:描述两个表之间的关联关系(父表与子表)
父表约束子表,子表被约束。
当子表超出父表给定的关联值时,则会报错。需要搭配primary key来使用。
references 意思引用与父亲表中的val值。
当子表插入时,查看子表中的father_val1中的值在父表中是否存在,不存在则报错。
当父表中已经被子表引用,则无法删除或者修改,需要将子表删除后,在删除父表。

#父表
create table father(val1 int primary key,val2 varchar(10));
#子表
create table child2(val int primary key 
,father_val1 int,
foreign key(father_val1) references father(val1) );


查询操作的进阶

1.查询搭配插入使用:

将table2所有的查询结果插入table1中,可以在后面搭配表达式where来使用。
这里的两个表的类型和列数需要匹配,否则报错.

insert into table1 select*from table2;

聚合查询

sql中提供的聚合函数:

函数说明 (可以添加去重操作distinct
COUNT()使用*或者指定字段在查询计算结构中出现的个数(不指定情况下包含NULL值指定不包含NULL值)
SUM()只适用于数字类型的字段或变量(算数运算)。不包含NULL值
MAX()适用于数值类型、字符串类型、日期时间类型的字段(或变量)不包含NULL值
MIN()适用于数值类型、字符串类型、日期时间类型的字段(或变量)不包含NULL值
AVG()只适用于数值类型的字段或变量。不包含NULL值

1.COUNT指令:

查询行数(也可以通过运算符来计算获取值)
如果字符串为数字则转换为double类型的数字来进行计算
sum可以将每个列和行相加,获得一个最终的总和。

#先执行select(*)在进行统计具体几行.
#*来获取所有行
select count(*) from table;#当输入的是字段属性时,获取的是不为null的行数select count(val_name) from table_name;# 指定列

2.SUM指令:

针对数字类型进行求和的算数运算

select sum(val_name'数字类型的字段') from table_name;

3.AVG 指令:

支持数字类型进行平均值的算数运算

select sum(val_name'数字类型的字段') from table_name;

4.MAX和MIN指令:

获取最大值和最小值

#max
select max(val_name) from table_name;
#min
select min(val_name) from table_name;

聚合分组查询

使用group by进行分组,针对每个分组,在分别进行聚合查询。
通过将valName相同的值来分组,将每个组获进行计算。

elect valName,avg(val'整数') from emp group by valName;

聚合分组表达式查询

where表达式聚合查询:

先通过表达式来筛选,表达式需要在分组之前进行。
先执行where条件 在进行分组 在进行聚合。

select valName ,avg(salary) from emp where name!='张三' group by valName;

having表达式聚合查询:

通过分组后,然后进行条件筛选,最后进行聚合查询。表达式在分组之后
先执行分组 在进行筛选 在最后进行聚合。

select valName,avg(salary) from emp group by valName having avg(salary)<20000;

分组中可以包含两个表达式(包含分组前where和分组后having)。


联合查询/多表查询

笛卡尔积:两个集合(表)进行合并后的乘积,两张表的记录中表记录与另一张表的所有记录进行记录排列组合。在这里插入图片描述在这里插入图片描述
继续进行继续筛选
在这里插入图片描述

而这时候会出现许多非法的字段,无意义的数据,这时候对笛卡尔积需要限定条件,让每张表进行关联。

#笛卡尔积
select *from valName1,valName2;
# 筛选有效数据
select *from valName1,valName2, where table_name1.valName1=table_name2.valName2;# and 接表达式继续筛选
select *from valName1,valName2, where 
table_name1.valName1=table_name2.valName2 and.....;#having表达式,进行分组之后的表达式
select *from valName1,valName2, where
table_name1.valName1=table_name2.valName2 and.....
group by valName1 having ...;

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HCIA-openGauss_2_2连接与认证

设置客户端认证策略 设置配置文件参数 gssql客户端连接-确定连接信息 客户端工具通过数据库主节点连接数据库&#xff0c;因此连接前&#xff0c;需要获取数据库主节点的在服务器的IP地址及数据库主节点的端口号信息。 步骤1&#xff1a;以操作系统用户omm登录数据库主节点。…

什么?RayLink远程控制软件支持企业IT应用!

在当今企业IT管理中&#xff0c;远程控制工具扮演着不可或缺的角色。设想一下&#xff0c;你的团队成员分散在全球各地&#xff0c;或者员工正在远程工作&#xff0c;这时电脑突然出现问题。如果IT支持团队能够利用远程控制软件&#xff0c;比如RayLink&#xff0c;迅速远程接入…

【C++】——精细化哈希表架构:理论与实践的综合分析

先找出你的能力在哪里&#xff0c;然后再决定你是谁。 —— 塔拉韦斯特弗 《你当像鸟飞往你的山》 目录 1. C 与哈希表&#xff1a;核心概念与引入 2. 哈希表的底层机制&#xff1a;原理与挑战 2.1 核心功能解析&#xff1a;效率与灵活性的平衡 2.2 哈希冲突的本质&#x…

12月第1周AI资讯

阅读时间:3-4min 更新时间:2024.12.2-2024.12.6 目录 OpenAI CEO Sam Altman 预告“12天OpenAI”系列活动 腾讯HunyuanVideo:130亿参数的开源视频生成模型 李飞飞的World Labs发布空间智能技术预览版 中科院联手腾讯打造“AI带货王”AnchorCrafter OpenAI CEO Sam Alt…

10_C语言 -数组(常规)

数组 引例 如果我们要在程序中表示一个学生的成绩&#xff0c;我们会使用一个int来表示&#xff0c;如&#xff1a;int score。假如我们要在程序中表示一组成绩&#xff0c;此时我们所学的常规数据类型就无法再表示&#xff0c;这个 时候我们就需要使用到一种新的表现形式&am…

红蓝对抗之Windows内网渗透

前言 无论是渗透测试&#xff0c;还是红蓝对抗&#xff0c;目的都是暴露风险&#xff0c;促进提升安全水平。企业往往在外网布置重兵把守&#xff0c;而内网防护相对来说千疮百孔&#xff0c;所以渗透高手往往通过攻击员工电脑、外网服务、职场WiFi等方式进入内网&#xff0c;…

Google推出 PaliGemma 2

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Spring IoC的基本概念

引言 在 Java 中&#xff0c;出现了大量轻量级容器&#xff0c;这些容器有助于将来自不同项目的组件组装成一个有凝聚力的应用程序。这些容器的底层是它们如何执行布线的常见模式&#xff0c;它们将这一概念称为“控制反转”。 &#x1f3e2; 本章内容 &#x1f3ed; IoC服务…

图神经网络GNN入门

参考教程&#xff1a;A Gentle Introduction to Graph Neural Networks 图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是一类专门用于处理图结构数据的神经网络&#xff0c;旨在通过节点、边和图的结构信息来学习图中节点和图的表示。GNN通过消息传…

卧式螺旋混合机搅拌机:饲料加工设备

卧式螺旋混合机搅拌机是一种用于饲料混合的设备&#xff0c;其结构特点为卧式&#xff0c;即搅拌桶体水平放置。这种设计使得物料在搅拌过程中能够充分混合&#xff0c;且搅拌效率高、混合均匀度好。卧式饲料混合机广泛应用于畜牧业、养殖业以及饲料加工行业&#xff0c;是饲料…

【北京迅为】iTOP-4412全能版使用手册-第四十二章 驱动注册

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

交易系统:线上交易系统流程详解

大家好&#xff0c;我是汤师爷~ 今天聊聊线上交易系统流程详解。 线上交易系统为新零售连锁商家提供一站式线上交易解决方案。其核心目标是&#xff0c;通过数字化手段扩大商家的服务范围&#xff0c;突破传统门店的地理限制。系统支持电商、O2O等多种业务形态&#xff0c;为…

Postman接口测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 pre-request script 介绍 在过往的工作中&#xff0c;遇到很多测试小伙伴使用 postman 的时候都是直接通过 api 文档的描述请求&#xff0c;检查返回的数据是否正…

【单链表】(更新中...)

一、 题单 206.反转链表203.移除链表元素 876.链表的中间结点BM8 链表中倒数最后k个结点21.合并两个有序链表 二、题目简介及思路 206.反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 思路简单&#xff0c;但是除了要两个指针进…

深入理解 SQL 注入:原理、攻击流程与防御措施

深入理解 SQL 注入&#xff1a;原理、攻击流程与防御措施 在当今数字化的时代&#xff0c;数据安全已成为每个企业和开发者必须面对的重要课题。SQL 注入&#xff08;SQL Injection&#xff09;作为一种常见的网络攻击方式&#xff0c;给无数企业带来了巨大的损失。本文将深入…

市场上显卡型号需求分析

两个平台统计&#xff1a;&#xff08;关键词统计&#xff0c;仅做参考&#xff09; GPU型号&#xff5c;平台 github(提交量/万) huggingface&#xff08;模型量/个&#xff09; H100 6.6 210 A100 17.2 483 V100 14.4 484 4090 27.3 31 3090 11.1 92 在git…

C# WPF抽奖程序

C# WPF抽奖程序 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.…

Master EDI 项目需求分析

Master Electronics 通过其全球分销网络&#xff0c;支持多种采购需求&#xff0c;确保能够为客户提供可靠的元件供应链解决方案&#xff0c;同时为快速高效的与全球伙伴建立合作&#xff0c;Master 选择通过EDI来实现与交易伙伴间的数据传输。 EDI为交易伙伴之间建立了一个安…

基于单片机的输液速度监控系统设计

本设计是以STM32F103C8T6单片机为控制核心&#xff0c;用户可通过按键模块来设置液体高度与点滴速度的阈值&#xff0c;采用液位传感器实时监测瓶内液体位置&#xff0c;若液位低于所设阈值&#xff0c;蜂鸣器进行声音报警提醒患者或医生。采用步进电机通过控制输液管直径大小从…

河工oj新生周赛第八周2024

A.小七的作业 小柒的作业 - 问题 - 软件学院OJ 代码 #include<bits/stdc.h> using namespace std;int main() {string s;cin >> s;int l, r;cin >> l >> r;string str s.substr(l,r-l1);cout << str;return 0; } B.小七的签到题 小柒的签到…