MySQL知识点总结(一)

1.SQL分类

数据定义(DDL):创/改/删/名/清(cadrt)

        数据库对象:表/视图/存储/函数/触发器/事件

数据操作(DML):增/删/改/查(idus)

        操作数据库对象

数据控制(DCL):提/回/保/赋/收(权限)(crsgr)

2.SQL语言规则

  • 子句分行可缩进
  • 命令记得要加;
  • 关键字不可缩分
  • 标点符号要成对

3.注释

单行注释:#注释文字(MySQL特有的方式)

单行注释:-- 注释文字(--后面必须包含一个空格。)

多行注释:/*注释文字*/

4.select语句

4.1最基本select语句

SELECT字段1,字段2,...FROM表名

SELECT 1 + 1,3 * 2
FROM DUAL; #dual:伪表

结果集:

4.2别名

#.列的别名

#as:全称:alias(别名),可以省略

#列的别名可以使用一对" "引起来。

SELECT employee_id emp_id, last_name AS lname, department_id "部门id" 
FROM employees; I

4.3去除重复行

SELECT DISTINCT department _ id
FROM employees;

4.4空值参与运算

#空值参与运算
#1.空值:null
#2.null不等同于0,",'null'
#3.空值参与运算:结果一定也为空。
SELECT employee id, salary "月工资", salary * (1 + commission_pct ) * 12 "年工资", commisssion_pct
FROM employees;
#实际问题的解决方案:引入IFNULL
SELECT employee id, salary "月工资", salary * (1 + IFNULL (commission _ pct , 0 ) * 12 "年工资", commission_pct
FROM employees;

4.5着重号 ``

与关键字冲突

SELECT * FROM `order`;

4.6查询常数

SELECT 123,employee_id,last_name
FROM employees;

4.7显示表结构

DESCRIBE employees;#显示了表中字段的详细信息

4.8过滤数据(条件查询)

#练习:查询90号部门的员工信息
SELECT *
FROM employees
#过滤条件:声明在FROM结构的后面
WHERE department id = 90;
#练习:查询last_name为'King'的员工信息
SELECT
*
FROM employees
WHERE last_name = 'King';|

5.运算符

5.1算术运算符

5.1.1加法

#在SQL中,+没有连接的作用,就表示加法运算。此时,会将字符串转换为数值(隐式转换)
SELECT 100 + '1' #在Java语言中,结果是:1001。
FROM DUAL;
SELECT 100 + 'a' #此时将'a' 看做0处理
FROM DUAL;
SELECT 100 + NULL #nu11值参与运算,结果为null
FROM DUAL;

5.1.2加减乘除

SELECT 100, 100 * 1, 100 * 1.0, 100 / 1.0, 100 / 2,
100 + 2 * 5 / 2,100 / 3,100 DIV 0 #分母如果为0,则结果为null
FROM DUAL;

5.1.3取模运算

# 取模运算(计算余数): % mod
SELECT 12 % 3,12 % 5, 12 MOD -5,-12 % 5,-12 % -5
FROM DUAL;

 5.2.比较运算符

5.2.1 等于=

SELECT 1 = 2, 1 ! = 2,1 = ' 1', 1 = 'a', 0 = 'a' # 字符串存在隐式转换。如果转换数值不成功,则看做0
FROM DUAL;SELECT'a'='a''ab'='ab','a'='b'#两边都是字符串的话,则按照ANSI的比较规则进行比较。
FROM DUAL;SELECT 1 = NULL, NULL = NULL # 只要有null参与判断,结果就为null
FROM DUAL;

关于NULL的条件比较查询

SELECT last name, salary, commission_pct
FROM employees
#where salary = 6000;
#此时执行,不会有任何的结果,因为比较结果为null非1
WHERE commission_pct = NULL;

5.2.2安全等于<=>

SELECT last name, salary, commission_pct
FROM
employees
WHERE
commission_pct <=> NULL; #解决null比较问题

5.2.3不等于<>,!=

SELECT 3 <> 2,'4' <> NULL,'' != NULL, NULL != NULLFROM DUAL;

5.2.4比较(IS NULL\IS NOT NULL\ ISNULL)

#IS NULL \ IS NOT NULL \ ISNULL
#练习:查询表中commission_pct为nul1的数据有哪些
SELECT last name , salary , commission_pct
FROM employees
WHERE commission_pct IS NULL;
#或
SELECT last name, salary, commission_pct
FROM employees
WHERE ISNULL(commission_pct);
#练习:查询表中commissionpct不为nu11的数据有哪些
SELECT last name , salary , commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;
#或
SELECT last_name,salary,commission_pct
FROM employees
WHERE NOT commission_pct <=> NULL;

5.2.5字符串大小LEAST()/GREATEST()

SELECT LEAST('g','b','t','m'),GREATEST('g','b','t''m''m')
FROM DUAL;SELECT LEAST(first_name,last_name),#比较字符串大小
LEAST(LENGTH(first_name),LENGTH(last_name))#比较字符串长度大小
FROM employees;

5.2.6区域查询BETWEEN ...AND ...

#BETWEEN 条件下界1 AND 条件上界2(查询条件1和条件2范围内的数据,包含边界)
#查询工资在6000到8000的员工信息
SELECT employee_id, last_name, salary
FROM employees
#where salary between 6000 and 8000;
WHERE salary >= 6000 && salary <= 8000;
#交换6000和8000之后,查询不到数据
SELECT employee_id, last_name, salary
FROM employees
WHERE salary BETWEEN 8000 AND 6000;#错误写法
#查询工资不在6000到8000的员工信息
SELECT employee id, last name, salary
FROM employees
WHERE salary NOT BETWEEN 6000 AND 8000;
#where salary < 6000 or salary > 8000;

5.2.7in()/not in()

#练习:查询部门为10,20,30部门的员工信息
SELECT last_name, salary, department_id
FROM employees
#where department_id = 10 or department_id = 20 or department_id = 30 ;
WHERE department id IN (10,20,30);
#练习:查询工资不是6000,7000,8000的员工信息
SELECT last_name , salary , department_id
FROM employees I
WHERE salary NOT IN (6000,7000,8000);

5.2.8模糊查询:LIKE

#练习:查询last_name中包含字符'a'的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%';
#练习:查询last_name中以字符a’开头的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE 'a%';
#练习:查询last_name中包含字符'a'且包含字符'e'的员工信息
#写法1
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%' AND last_name LIKE '%e%';
#写法2
SELECT last_name
FROM employees
WHERE last_name LIKE '%a%e%' OR last_name LIKE '%e%a%';
#_:代表一个不确定的字符
#查询第2个字符是'a'的员工信息
SELECT last_name
FROM employees
WHERE last_name LIKE '_a%';
#练习:查询第3个字符是'a'的员工信息
SELECT last name
FROM employees
WHERE last_name LIKE '__a%';
#练习:查询第2个字符是且第3个字符是'a'的员工信息
#需要使用转义字符:\
SELECT last_name
FROM employees
WHERE last_name LIKE '_\_a%';
#或者将$作为转义字符(了解)
SELECT last_name
FROM employees
WHERE last_name LIKE '_$_a%' ESCAPE'$';

 5.2.9正则表达式REGEXP(略)

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

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

相关文章

快速幂,错位排序笔记

​ 记一下刚学明白的快速幂和错位怕排序的原理和代码 快速幂 原理&#xff1a; a^b (a^&#xff08;b/2&#xff09;) ^ 2&#xff08;b为偶数&#xff09; a^b a*&#xff08;a^&#xff08; (b-1)/2&#xff09;&#xff09;^2&#xff08;b为奇数&#xff09; 指数为偶数…

【缴纳过路费——并查集】

题目 分析 题目乍看一下像最短路径的求解。但是从复杂度上面分析应该不是这样。题目关键点在于“路程花费是最贵的那一段” 和 “最少花费在区间内”。 合起来就是两点所有路程中最便宜的最贵段&#xff0c;要在区间内&#xff1a;如果按权值从小到大遍历边&#xff0c;能合并连…

ComfyUI安装调用DeepSeek——DeepSeek多模态之图形模型安装问题解决(ComfyUI-Janus-Pro)

ComfyUI 的 Janus-Pro 节点&#xff0c;一个统一的多模态理解和生成框架。 试用&#xff1a; https://huggingface.co/spaces/deepseek-ai/Janus-1.3B https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B https://huggingface.co/spaces/deepseek-ai/JanusFlow-1.3B 安装…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.22 多项式运算:从求根到拟合的数值方法

2.22 多项式运算&#xff1a;从求根到拟合的数值方法 目录 #mermaid-svg-D0vp87eTMLHIY39y {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-D0vp87eTMLHIY39y .error-icon{fill:#552222;}#mermaid-svg-D0vp87eTMLHI…

【MySQL】MySQL经典面试题深度解析

文章目录 一、MySQL与C的深度结合1.1 为什么C项目需要MySQL&#xff1f;1.2 典型应用场景 二、基础概念面试题精讲2.1 存储引擎对比2.2 索引原理 三、C专项面试题解析3.1 连接池实现3.2 预处理语句3.3 批量操作优化 四、高级应用面试题剖析4.1 事务隔离级别4.2 锁机制详解4.3 查…

(脚本学习)BUU18 [CISCN2019 华北赛区 Day2 Web1]Hack World1

自用 题目 考虑是不是布尔盲注&#xff0c;如何测试&#xff1a;用"1^1^11 1^0^10&#xff0c;就像是真真真等于真&#xff0c;真假真等于假"这个测试 SQL布尔盲注脚本1 import requestsurl "http://8e4a9bf2-c055-4680-91fd-5b969ebc209e.node5.buuoj.cn…

互联网行业常用12个数据分析指标和八大模型

本文目录 前言 一、互联网线上业务数据分析的12个指标 1. 用户数据&#xff08;4个&#xff09; (1) 存量&#xff08;DAU/MAU&#xff09; (2) 新增用户 (3) 健康程度&#xff08;留存率&#xff09; (4) 渠道来源 2. 用户行为数据&#xff08;4个&#xff09; (1) 次数/频率…

Verilog语言学习总结

Verilog语言学习&#xff01; 目录 文章目录 前言 一、Verilog语言是什么&#xff1f; 1.1 Verilog简介 1.2 Verilog 和 C 的区别 1.3 Verilog 学习 二、Verilog基础知识 2.1 Verilog 的逻辑值 2.2 数字进制 2.3 Verilog标识符 2.4 Verilog 的数据类型 2.4.1 寄存器类型 2.4.2 …

知识蒸馏教程 Knowledge Distillation Tutorial

来自于&#xff1a;Knowledge Distillation Tutorial 将大模型蒸馏为小模型&#xff0c;可以节省计算资源&#xff0c;加快推理过程&#xff0c;更高效的运行。 使用CIFAR-10数据集 import torch import torch.nn as nn import torch.optim as optim import torchvision.tran…

使用SpringBoot发送邮件|解决了部署时连接超时的bug|网易163|2025

使用SpringBoot发送邮件 文章目录 使用SpringBoot发送邮件1. 获取网易邮箱服务的授权码2. 初始化项目maven部分web部分 3. 发送邮件填写配置EmailSendService [已解决]部署时连接超时附&#xff1a;Docker脚本Dockerfile创建镜像启动容器 1. 获取网易邮箱服务的授权码 温馨提示…

docker pull Error response from daemon问题

里面填写 里面解决方案就是挂代理。 以虚拟机为例&#xff0c;将宿主机配置端口设置&#xff0c;https/http端口设为7899 配置虚拟机的http代理&#xff1a; vim /etc/systemd/system/docker.service.d/http-proxy.conf里面填写&#xff0c;wq保存 [Service] Environment…

从Transformer到世界模型:AGI核心架构演进

文章目录 引言&#xff1a;架构革命推动AGI进化一、Transformer&#xff1a;重新定义序列建模1.1 注意力机制的革命性突破1.2 从NLP到跨模态演进1.3 规模扩展的黄金定律 二、通向世界模型的关键跃迁2.1 从语言模型到认知架构2.2 世界模型的核心特征2.3 混合架构的突破 三、构建…

Verilog基础(三):过程

过程(Procedures) - Always块 – 组合逻辑 (Always blocks – Combinational) 由于数字电路是由电线相连的逻辑门组成的,所以任何电路都可以表示为模块和赋值语句的某种组合. 然而,有时这不是描述电路最方便的方法. 两种always block是十分有用的: 组合逻辑: always @(…

STM32 串口发送与接收

接线图 代码配置 根据上一章发送的代码配置&#xff0c;在GPIO配置的基础上需要再配置PA10引脚做RX接收&#xff0c;引脚模式可以选择浮空输入或者上拉输入&#xff0c;在USART配置串口模式里加上RX模式。 配置中断 //配置中断 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE…

Docker技术相关学习三

一、Docker镜像仓库管理 1.docker仓库&#xff1a;用于存储和分发docker镜像的集中式存储库&#xff0c;开发者可以将自己创建的镜像推送到仓库中也可以从仓库中拉取所需要的镜像。 2.docker仓库&#xff1a; 公有仓库&#xff08;docker hub&#xff09;&#xff1a;任何人都可…

Java BIO详解

一、简介 1.1 BIO概述 BIO&#xff08;Blocking I/O&#xff09;&#xff0c;即同步阻塞IO&#xff08;传统IO&#xff09;。 BIO 全称是 Blocking IO&#xff0c;同步阻塞式IO&#xff0c;是JDK1.4之前的传统IO模型&#xff0c;就是传统的 java.io 包下面的代码实现。 服务…

【ArcGIS_Python】使用arcpy脚本将shape数据转换为三维白膜数据

说明&#xff1a; 该专栏之前的文章中python脚本使用的是ArcMap10.6自带的arcpy&#xff08;好几年前的文章&#xff09;&#xff0c;从本篇开始使用的是ArcGIS Pro 3.3.2版本自带的arcpy&#xff0c;需要注意不同版本对应的arcpy函数是存在差异的 数据准备&#xff1a;准备一…

【电脑系统】电脑突然(蓝屏)卡死发出刺耳声音

文章目录 前言问题描述软件解决方案尝试硬件解决方案尝试参考文献 前言 在 更换硬盘 时遇到的问题&#xff0c;有时候只有卡死没有蓝屏 问题描述 更换硬盘后&#xff0c;电脑用一会就卡死&#xff0c;蓝屏&#xff0c;显示蓝屏代码 UNEXPECTED_STORE_EXCEPTION 软件解决方案…

基于LabVIEW的Modbus-RTU设备通信失败问题分析与解决

在使用 LabVIEW 通过 Modbus-RTU 协议与工业设备进行通信时&#xff0c;可能遇到无法正常发送或接收指令的问题。常见原因包括协议参数配置错误、硬件连接问题、数据帧格式不正确等。本文以某 RGBW 控制器调光失败为例&#xff0c;提出了一种通用的排查思路&#xff0c;帮助开发…

解决Mac安装软件的“已损坏,无法打开。 您应该将它移到废纸篓”问题

mac安装软件时&#xff0c;如果出现这个问题&#xff0c;其实很简单 首先打开终端&#xff0c;输入下面的命令 sudo xattr -r -d com.apple.quarantine 输入完成后&#xff0c;先不要回车&#xff0c;点击访达--应用程序--找到你无法打开的app图标&#xff0c;拖到终端窗口中…