当前位置: 首页 > news >正文

SQL必备知识(自用)

数据库基础知识

    • sql和mysql的区别:
    • 数据库查询大全(select)
      • 1、select 字段名 from 表;
      • 2、In查询:用于过滤你所需要查询的内容
      • 3、范围查询:between
      • 4、模糊查询:like
      • 5、查询空值/非空:is null/not null
      • 6、去除重复结果:distinct
      • 7、多条件查询: and、or
      • 8、分组查询:查询的每个分组中首次出现的一条记录
      • 9、对查询结果排序:order by(默认升序)
      • 10、对查询结果数量进行限制:limit
    • Select+聚合函数:
      • (1)总数:count
      • (2)最大值:max
      • (3)最小值:min
      • (4)求和:sum
      • (5)平均值:AVG
      • (6)比较运算符
      • (7)模糊查询:like
      • (8)范围查询
      • (9)空判断
      • (10)优先级
      • (11)group by(分组)
      • (12)Order by(排序)
      • (13)from(表)+连接查询:
      • (14)查询去重:distinct
      • (15)所有、任一:all&any
    • MySQL常见命令:
        • (1)创建学生表 Student :
        • (2)插入数据:
        • (3)查询名字为张三的学生表数据:
        • (4)修改编号2的学生名字为李四:
        • (5) 删除名字为张三的学生:
        • (6)查询语文老师的名字:用inner join联查两个表
        • (7)统计语文成绩大于70的学生信息:
        • (8)统计各科分数大于80的人:
      • 2、mysql默认端口为:
      • 3、mysql索引:


sql和mysql的区别:

1、sql是一种数据库语言,而mysql是DBMS数据库管理系统;
2、SQL用于访问,更新和操作数据库中的数据,而mysql允许保持数据库中存在的数据;
3、sql的语言是固定的,而mysql可以获得频繁的更新。

数据库查询大全(select)

1、select 字段名 from 表;

2、In查询:用于过滤你所需要查询的内容

select 字段名 from 表名 where 字段名 in(具体内容)

3、范围查询:between

    select 字段名 from 表名 where 字段名 between 数值1 and 数值2Eg:查询当字段Salary范围在3000~5000时,字段Name和Salary的内容。select Name,Salary from t_emp where Salary between 3000 and 5000

4、模糊查询:like

    select 字段名 from 表名 where 字段名 like '模糊条件'模糊条件中”%”与”_”区别:“%a”:无论字符a前面有多少字符 ;”_a”:字符a前面只有一个字符。Eg:查询所有Name以字母,C为第二个字符,员工的Name和Salary的内容。select Name,Salary from t_emp where Name like '_C%'

5、查询空值/非空:is null/not null

    select 字段名 from 表名 where 字段名 is null

6、去除重复结果:distinct

    Eg:返回数据表中字段Name不重复的内容。select distinct Name from t_emp

7、多条件查询: and、or

    Select 字段名 from 表名 where 表达式1 and/or 表达式2

–查询10号部门,工资大于1000的员工信息
select * from emp where deptno=10 and sal>1000;
–查询10号部门,或者工资小于2000的员工信息
select * from emp where deptno=10 or sal<2000;

    in后面跟一个集合或者子查询

oracle中表示一个简单的集合 ,(元素,元素,… 元素) 例如 (1,2,3,4,5) (‘a’,‘b’,‘c’,‘d’)
–查询emp表中,工资是800,1600,或者3000的员工信息
select * from emp where sal in(800,1600,3000);

8、分组查询:查询的每个分组中首次出现的一条记录

    select 字段名 from 表名 group by 待分组的字段名

9、对查询结果排序:order by(默认升序)

    Select 字段名 from 表名 where 条件 order by 待排序字段名 asc/descasc:升序(默认值可省略)    desc:降序Eg:查询class_id为1的所有信息,以score降序的方式显示结果。select * from tb_score where class_id = 1 order by score desc

10、对查询结果数量进行限制:limit

    Select 字段名 from 表名 limit 偏移值 记录个数Eg:按成绩降序后查询班级中第2名到第5名的学生信息。select * from tb_score group by score desc limit  1,4注:偏移值默认为0,可不写,1代表从第一个数开始取,4代表共记录4个结果

Select+聚合函数:

(1)总数:count

    count(*):表示计算总行数,括号中写星与列名,结果相同

例1.查询登录系统学总数
select count(*) from StudentBindPaperTypeEntity
–查询员工表中的员工人数
select count(empno) from emp;

select count(*) from emp;

(2)最大值:max

    max(列):求此列的最大值

例2.求下表的最大编号
select max(StudentID) from StudentBindPaperTypeEntity
–查询10号部门的最高工资
select max(sal) from emp where deptno=10;

(3)最小值:min

    min(列):求此列的最小值

例3.求下表编号最小编号
select min(StudentID) from StudentBindPaperTypeEntity
–查询最低工资
select min(sal) from emp;

(4)求和:sum

    sum(列):求此列之和(注:sum运算符与数字类型连用)

例4.查询当前在线的学生(IsUse=0表示未在线,1表示在线)
select SUM(IsUse) from StudentBindPaperTypeEntity
–查询工资总和
select sum(sal) from emp;

(5)平均值:AVG

    avg(列) :表示求此列的平均值(注:avg运算符与数字类型连用)

例5:查询学生编号的平均数
select avg(StudentID) from StudentBindPaperTypeEntity
–查询员工的平均工资
select avg(sal) from emp;

(6)比较运算符

例1.查询学号>18832650890的学生
select * from StudentBindPaperTypeEntity where StudentID>18832650890
例2.查询学号!=18832650890的学生(<>同效)
select * from StudentBindPaperTypeEntity where StudentID!=18832650890

(7)模糊查询:like

    %表示任意多个字符

例1.查询1月8号考试的学生
select * from StudentBindPaperTypeEntity where TimeTamp like ‘2020-01-08%’
例2.查询不是1月8号考试的学生
select * from StudentBindPaperTypeEntity where TimeTamp not like ‘2020-01-08%’

(8)范围查询

    in关键字为非连续查询

例1.查询两个不相邻的学号的学生
select * from StudentBindPaperTypeEntity where StudentID in(‘19100142001’,‘19100142006’)
Between…and…为连续查询(注:sql软件情况不一样,可能不包含and后的值)
例2.查询两个学号之间的学生
select * from StudentBindPaperTypeEntity where StudentID Between 19100142001 and 19100142006

(9)空判断

    is null判断为空

例1.查询没有试卷的学生
select * from StudentBindPaperTypeEntity where PaperType is null
is not null 判断非空
例2.查询有试卷的学生
select * from StudentBindPaperTypeEntity where PaperType is not null

(10)优先级

优先级由高到低的顺序为:
小括号,not,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需要结合()使用

(11)group by(分组)

   作用:将字段间一对多的关系,向一的方向靠拢分组

例1.查出参加考试有几个学院
select CollegeID from StudentBindPaperTypeEntity group by CollegeID
例2.查出各个学院参加考试的人数
select CollegeID, count(StudentID) from StudentBindPaperTypeEntity group by CollegeID
–查询各个部门的部门编号和部门的平均工资
select deptno,avg(sal) from emp group by deptno;
–查询各个部门的员工人数
select deptno,count(empno) from emp group by deptno;

   where和having的异同:

where:条件,where后面跟的条件比having后的条件先执行,条件中不允许使用聚合函数。
having:条件中可以使用聚合函数,一般having和group by联用。

   group by+having:having的作用跟where子句功能一样,只不过having只用在group by

例3.查出学院ID大于10的学院
select CollegeID from StudentBindPaperTypeEntity group by CollegeID having CollegeID>10

(12)Order by(排序)

排序查询语法:
select * from 表名 order by 列1 asc|desc [,列2 asc|desc,…]
如果列1的值相同,则按照列2排序,以此类推。
1.asc从小到大(升序)
2.desc从大到小(降序)
例1.根据学院分组ID降序(desc)
select CollegeID from StudentBindPaperTypeEntity group by CollegeID order by CollegeID desc
例2.将上表升序(asc)
select CollegeID from StudentBindPaperTypeEntity group by CollegeID order by CollegeID asc
–查询员工信息,按照部门编号升序排序,如果部门编号相同时,按照工资的升序排序。
select * from emp order by deptno asc,sal asc;

(13)from(表)+连接查询:

连接查询:
1.内连接:Inner join
2.左连接:Left join
3.右连接:Right join
左外连接:左表的值会全部显示出来,右表的值显示on条件搜索的的结果,搜索不到为NULL。
select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from StudentInfoEntity as s left join ScoreEntity as score on s.studentID=score.studentID

右外连接与左外连接相反(右表的值全部显示出来)。
select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from ScoreEntity as score right join StudentInfoEntity as s on s.studentID=score.studentID

(14)查询去重:distinct

表示查询得到的结果如果有重复,就删掉。
select distinct sex from student;

(15)所有、任一:all&any

后面都跟一个集合或者子查询

all:表示大于集合中最大的元素 >all(1,2,3,4,5) 等价于 >5

<all:表示小于集合中最小的元素 <all(1,2,3,4,5) 等价于 <1

any:表示大于集合中最小的元素 >any(1,2,3,4,5) 等价于 >1

<any:表示小于集合中最大的元素 <any(1,2,3,4,5) 等价于 <5

–查询员工信息,要求员工的工资比以下的值都低 1600,2000,3000
select * from emp where sal <all(1600,2000,3000);

–查询比下任意一个(1600,2000,3000)工资高的员工信息
select * from emp where sal>any(1000,2000,3000);

–查询工资比所有人(1600,2000,3000)都高的员工信息
select * from emp where sal > all(1600,2000,3000);

MySQL常见命令:

(1)创建学生表 Student :

Create table Student(
Sid varchar(10) not null primary key,
Sname varchar(10) not null,
Sage int(2) not null,
Ssex varchar(2),
)

(2)插入数据:

insert into Student(Sid,Sname,Sage,Ssex) values (‘1’,‘张三’,‘20’,‘女’);

(3)查询名字为张三的学生表数据:

select * from Student where Sname=‘张三’

(4)修改编号2的学生名字为李四:

update Student set Sname=‘李四’ where Sid=‘2’

(5) 删除名字为张三的学生:

delete from Student where Sname=‘张三’

(6)查询语文老师的名字:用inner join联查两个表

select teacher.Tname from teacher
inner join course
where teacher.Tid = course.Tid and course.Tname = ‘语文’

(7)统计语文成绩大于70的学生信息:

select a.Sname,a.Sage,a.Ssex,b.score from Student a, SC b
where a.Sid=b.Sid and b.Cid=1 and b.score >70

(8)统计各科分数大于80的人:

select a.Sid,a.Sname
from student a,
(select Sid from sc
group by Sid
having min(score) > 80) as b
where b.Sid = a.Sid;

2、mysql默认端口为:

3306,Windows通过更改my.ini配置更改端口,linux通过更改my.conf来更改端口。

3、mysql索引:

mysql索引的建立大大的提高了mysql的检索速度,但是对数据的update,insert,delete的效率就有所降低。

相关文章:

SQL必备知识(自用)

数据库基础知识sql和mysql的区别&#xff1a;数据库查询大全&#xff08;select&#xff09;1、select 字段名 from 表&#xff1b;2、In查询&#xff1a;用于过滤你所需要查询的内容3、范围查询&#xff1a;between4、模糊查询&#xff1a;like5、查询空值/非空&#xff1a;is…...

BI工具术语表大全:从字母A-Z全面收录

谈到商业智能行业&#xff0c;变革是不可避免的。为了跟上步伐&#xff0c;各种各样的BI 解决方案正在快速迭代更新&#xff0c;以满足企业的数字化需求&#xff0c;那么市场上BI 工具种类繁杂&#xff0c;到底如何选择适合功能全面、满足自己企业运转情况的、合适的BI 工具呢&…...

vue3 + vite + ts 集成mars3d

vue3 vite ts 集成mars3d 文章目录vue3 vite ts 集成mars3d前言一、创建一个vue3 vite ts项目二、引入mars3d相关依赖三、vite.config.ts 相关配置四、 新建DIV容器 创建地图前言 使用mars3d过程中&#xff0c;需要集成mars3d到自己的项目中&#xff0c;mars3d开发教程…...

跨境卖家必看的沃尔玛Walmart商家入驻教程

沃尔玛Walmart作为作为全球连锁超市的鼻祖&#xff0c;有不可比拟的知名度。当沃尔玛从线下延伸到线上后&#xff0c;就成为一个自带IP与流量的线上平台&#xff0c;在全世界都拥有数量庞大的消费者群体。所以龙哥就结合自己注册Walmart的过程给大家详细讲解一下。 Walmart卖家…...

【GANs】什么是饱和损失函数 Non-Saturating LossFunction

Saturating VS Non-Saturating Loss functions in GANs【GANs】什么是饱和损失函数 Non-Saturating LossFunctionSaturating VS Non-Saturating Loss functions in GANs 饱和Loss 普通GAN loss是生成器希望最小化被判断为假的概率。x取值范围是[0,1]&#xff0c;所以图中函数…...

USB接口虚拟网卡

1 基本概念 1.1 USB转以太网 - ASIX 4-byte length header before every ethernet packet. - Microchip LAN7800 128x32 bit Descriptor RAM, 32 bits DP_DATA address offset 030h for Descriptor RAM access. - Windows CMD参数格式&#xff1a; route /? -> Linux -h …...

基于SpringBoot的外卖项目的优化

基于SpringBoot的外卖项目的优化1、缓存优化1.1、缓存短信验证码问题分析代码改造1.2、缓存菜品数据实现思路1.3、Spring Cache介绍常用注解CachePutCacheEvictCacheable使用方式1.4、缓存套餐数据实现思路代码改造2、读写分离2.1、主从复制存在的问题介绍配置配置主库--master…...

Ubuntu20.04/22.04 ESP32 命令行开发环境配置

ESP32 芯片系列 ESP32分三个系列 ESP32-S ESP32-S3: Xtensa 32位 LX7 双核 240 MHz, 384KB ROM, 512KB SRAM, QFN7x7, 56-pin, 2.4G Wi-Fi BTESP32-S2: Xtensa 32位 LX7 单核 240 MHz, 128KB ROM, 320KB SRAM, QFN7x7, 56-pin, 2.4G Wi-Fi ESP32-C ESP32-C3: RISC-V 32位 单…...

Kali Linux使用Metasploit生成木马入侵安卓系统

额&#xff0c;这是我最后一篇文章了&#xff0c;周一我们开学了 文章目录前言一、Metasploit是什么&#xff1f;演示环境二、生成可执行木马文件1.生成2.运行命令并生成木马配置参数入侵安卓手机命令1.查看对方手机系统信息查看对方手机安装哪些app文件总结前言 前言&#xf…...

数据库复习1

一. 简答题&#xff08;共1题&#xff0c;100分&#xff09; 1. (简答题) 存在数据库test&#xff0c;数据库中有如下表&#xff1a; 1.学生表 Student(Sno,Sname,Sage,Ssex) --Sno 学号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 主键Sno 2.教师表 Teacher(Tno,Tname) --T…...

18. linux系统基础

shell 命令解析器 命令解析器作用&#xff1a; 他把在终端上输出的命令 给你解析成内核可以识别的指令&#xff0c;内核 是经过命令解析器的加工 shell在找命令的时候&#xff0c;所包含的路径&#xff0c;就是在这些路径里去 找 找到就执行 找不到就报错 报错 要么 这个命…...

ssh远程登录报错:kex_exchange_identification: Connection closed by remote host

基本信息系统&#xff1a;MacOS Catalina 10.15.7报错信息&#xff1a;终端登录远程服务器时报错&#xff1a;kex_exchange_identification: Connection closed by remote host复制然而服务商的一键登录或VNC登录正常。解决方案首先使用以下命令debug登录过程&#xff0c;以便定…...

Quartus II 的入门级使用

好久没有用VHDL写东西了&#xff0c;今天需要完成一个项目&#xff0c;重新复习一下新建工程新建工程file-->New Project Wizard, next, 选择存放的路径名字&#xff08;projecttop-level 名字要相同&#xff09;&#xff0c;next&#xff0c;File name名字同上&#xff0c;…...

Java EE|TCP/IP协议栈之TCP协议工作机制上

文章目录前言一、确认应答二、超时重传三、连接管理三次握手四次挥手前言 前边&#xff0c;我们已经大概交代了TCP的报文结构。但是仍有一些字段我们不确定到底怎么理解&#xff0c;这里就分析TCP的内部工作机制了。 TCP的内部很复杂&#xff0c;有很多机制&#xff0c;这里我们…...

智能化人机协作 遮挡情况下准确识别目标信息

研究背景 废旧产品&#xff08;end-of-life products&#xff09;的拆卸是工程全生命周期管理的一个基本步骤。在减少资源消耗和温室气体排放的同时&#xff0c;回收可重复使用的部件可能创造相当的经济价值&#xff0c;同时也能推动碳中和目标的实现。 但目前EoL的拆卸仍然严…...

React(一):初识React、类组件、jsx的基础语法

React&#xff08;一&#xff09;一、初识React1.简单介绍2.React的三个依赖3.Hello React案例二、类组件1.定义类组件并渲染2.绑定事件函数&#xff08;奇怪的this问题&#xff09;3.数组形式数据的展示&#xff08;电影案例&#xff09;4.计数器案例三、jsx语法详解1.jsx的书…...

2023-2-24 刷题情况

获取单值网格的最小操作数 题目描述 给你一个大小为 m x n 的二维整数网格 grid 和一个整数 x 。每一次操作&#xff0c;你可以对 grid 中的任一元素 加 x 或 减 x 。 单值网格 是全部元素都相等的网格。 返回使网格化为单值网格所需的 最小 操作数。如果不能&#xff0c;返…...

测试员拿到新项目怎么着手测试?不要慌,照做准没错

一、目标 结合公司现有的项目情况制定合理规范的测试流程&#xff0c;提高测试效率和产品质量&#xff0c;尽可能减少客户对产品的问题反馈&#xff0c; 核心还是要加强项目组成员之间的工作交流和沟通&#xff0c;保证整个项目的高效率的按质按量的交付。 二、测试流程说明…...

通过cfssl自签证书https证书

背景 公司内部自建Web服务&#xff0c;通过自签CA&#xff0c;然后签发https证书 工具地址: GitHub - cloudflare/cfssl: CFSSL: Cloudflares PKI and TLS toolkit 使用步骤: 1. 在release页面中下载最新的二进制包&#xff0c;我使用的是1.5的解压并重命名二进制文件 tar…...

openEuler部署Ceph集群(块存储)

openEuler部署Ceph集群1 目标2 环境2.1 服务器信息2.2 软件信息3 部署流程3.1 获取系统镜像3.2 创建虚拟机3.3 配置虚拟机3.3.1 配置互信3.3.2 关闭防火墙3.3.3 配置免密登录3.3.4 配置NTP3.3.4.1 安装NTP服务3.3.4.2 配置NTP服务端3.3.4.3 配置NTP客户端3.3.4.4 启动NTP服务3.…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...