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

Mysql的基本用法(上)非常详细、快速上手

上篇结束了java基础,本篇主要对Mysql中的一些常用的方法进行了总结,主要对查询方法进行了讲解,包括重要的多表查询用到的内连接和外连接等,以下代码可以直接复制到可视化软件中,方便阅读以及练习;


SELECT *FROM employees;
SELECT employee_id,salary*(1+IFNULL(commission_pct,0))*12 "年工资"FROM employees;
#着重号:表名和关键字重合了需要用:
SELECT *FROM `order`;
#查询常数:会自动在前面加一列:
SELECT "hello",123,employee_id FROM employees;
#显示表结构:表的信息:
DESCRIBE employees;
#去重复:distinct:
SELECT job_id FROM employees;
SELECT DISTINCT job_id FROM employees;
#where条件查询:一定要在from结构的后面:
SELECT *FROM employees WHERE last_name='kING';
SELECT *FROM employees WHERE department_id=90;
#运算符:此处判断是否等于不用两个==,一个=即可;
SELECT employee_id FROM employees WHERE employee_id %2=0;
SELECT 1=0,1!=0;
#安全等于<=>,专门为null而使用;以下是例子:首先null参与比较的话结果全是null,无论是1=null还是1>null结果都是null;如果用安全等于,就会结果正常值;
SELECT 1=NULL;
SELECT 1<=>NULL;
SELECT employee_id,salary,commission_pct FROM employees WHERE commission_pct=NULL;
SELECT employee_id,salary,commission_pct FROM employees WHERE commission_pct<=>NULL;
#运算符:isnull is not null isnull()这个是一个方法;
SELECT employee_id,salary,commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT employee_id,salary,commission_pct FROM employees WHERE isnull(commission_pct);
SELECT employee_id,salary,commission_pct FROM employees WHERE commission_pct IS NOT NULL;
#between and:
SELECT employee_id,salary FROM employees WHERE salary BETWEEN 6000 AND 8000;
#in not in:例如查询部门号为10,20,30的员工信息:
SELECT employee_id,salary,department_id FROM employees WHERE department_id=10 OR department_id=20 OR department_id=30;
SELECT employee_id,salary,department_id FROM employees WHERE department_id IN(10,20,30);
#LIKE 模糊查询:
#查询last_name中包含字符串‘a’的员工信息:注意 % 代表前面后面有不确定个字符;例如以a开头:a%;以a结尾:%a;下划线代表一个不确定的字符,例如查询lastname第二个字符是a的员工信息可以用:_a%;
SELECT  employee_id,salary,last_name FROM employees WHERE last_name LIKE '%a%';
#排序order by 默认是从低到高;从高到低是用ASC; 
SELECT employee_id,last_name,salary FROM employees order BY salary DESC;
#此处计算出来了年薪然后起别名annual_salary;
#一定要注意,列的别名只能在order by中使用,不能在where中使用;
SELECT employee_id,last_name,salary,salary*12 annual_salary FROM employees order BY annual_salary DESC;
#二级排序:按照department_id升序排序,此时可能有想同的,那对于相同的按照salary降序排序:一样的三级排序就是在后面在加上一部分
SELECT employee_id,last_name,salary FROM employees order BY employee_id ASC,salary DESC;
#limit实现分页显示:在后面加上即可;例如查询32、33这两条数据:limit后面第一个参数是第几个的前一个,然后第二个参数代表每几个为一页;
SELECT *FROM employees LIMIT 31,2;
#多表查询:分为等值连接和非等值连接;自连接和非自连接;内连接和外连接三种类型;
#例如想查询一个数据,需要先从一个表中找到对应信息,然后根据这个对应信息再去查询另一个表中查询重要信息,
#然后根据这个重要信息再去查找另一个表最终得到数据;因此,这种方法非常麻烦,所以想将表进行连接,多表查询;#以下department_name在departments表中,employee_id在employees表中,然后共同的属性是departent_id,但是
#这样查询是错误的,得到的是笛卡尔积,缺少了多表的连接条件;
SELECT employee_id,department_name FROM employees,departments;
#正确方式:此处多查询一下department_id,这两个表中都有这个属性,查询的时候要指明是哪个表里的;
SELECT employee_id,department_name,employees.department_id
FROM employees,departments 
WHERE employees.department_id=departments.department_id;
#三表连接:查询employee_id,last_name,department_name,city;
SELECT employee_id,last_name,department_name,city
from employees,departments,locations
WHERE employees.department_id=departments.department_id AND locations.location_id=departments.location_id
#非等值连接:上面例子是等值连接,下面是非等值连接:
SELECT last_name,salary,grade_level
FROM employees,job_grades
WHERE salary BETWEEN lowest_sal AND highest_sal;
#自连接和非自连接:
#想查询员工id和姓名,以及其管理者的id和姓名,这两个都在一张表中,要自己和自己连接:这时必须要起别名;
#!!!注意,如果对表起别名后,select和where语句必须要使用别名,不能使用原来的表名;
SELECT emp.employee_id,emp.last_name,manager.employee_id,manager.last_name
FROM employees emp,employees manager
WHERE emp.manager_id=manager.employee_id;
#!!!内连接和外连接:
#内连接:合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行;上面那种就是内连接;
#外连接:有的员工可能没有部门,也有的部门建好了,但是还没有员工,此时想把这些数据也查出来;
#上面的多表查询都是都是内连接,并且用的都是SQL92语法的,最好是要用SQL99语法:举例:三表连接:
SELECT employee_id,last_name,department_name,city
FROM employees JOIN departments
ON employees.department_id=departments.department_id
JOIN locations
ON departments.location_id=locations.location_id;
#外连接分为左外连接,右外连接,满外连接;
#左外连接:两个表在连接过程中除了返回满足连接条件的行以外还返回左表中不满足条件的行;右外连接就是返回了右表中不满足条件的行;
#练习:查询所有的员工的employee_id,last_name,department_name;!!!注意是所有的,说明就是要用外连接;
#Mysql不支持SQl92实现外连接,只能用SQL99语法:
#左外连接:也就是练习答案:
SELECT employee_id,department_name
FROM employees LEFT OUTER JOIN departments#此处要用左外连接,可以看到就查询到了除了符合的,也查询到了没有部门的那个员工;
ON employees.department_id=departments.department_id;
#右外连接:
SELECT employee_id,department_name
FROM employees RIGHT OUTER JOIN departments#查询到了没有人员的部门
ON employees.department_id=departments.department_id;
#满外连接:sql不支持ful,因此需要重新实现:
#SELECT employee_id,department_name
#FROM employees FULL JOIN departments
#ON employees.department_id=departments.department_id;
#引入UNION,返回两个查询结果集的并集,去除重复记录(中间交集部分);UNIONALL效率更高,没有去重,也就是中间交集部分加了两遍;

下面按照本图进行外连接查询的练习:

#左中图(左外连接去除交集部分):参考word文档,
SELECT employee_id,department_name
FROM employees LEFT JOIN departments
ON employees.department_id=departments.department_id
WHERE departments.department_id IS NULL;#右边没有就用右表null;
#右中图(右外连接去除交集部分):
SELECT employee_id,department_name
FROM employees RIGHT JOIN departments
ON employees.department_id=departments.department_id
WHERE employees.department_id IS NULL;#左边没有就用左表null;
#左下图:满外连接:左上图(左外连接) UNION ALL 右中图(去除交集的右外连接):
SELECT employee_id,department_name
FROM employees LEFT OUTER JOIN departments
ON employees.department_id=departments.department_id
UNION ALL 
SELECT employee_id,department_name
FROM employees RIGHT JOIN departments
ON employees.department_id=departments.department_id
WHERE employees.department_id IS NULL;
#右下图(右中图UNION ALL左中图)
SELECT employee_id,department_name
FROM employees LEFT JOIN departments
ON employees.department_id=departments.department_id
WHERE departments.department_id IS NULL
UNION ALL
SELECT employee_id,department_name
FROM employees RIGHT JOIN departments
ON employees.department_id=departments.department_id
WHERE employees.department_id IS NULL;

相关文章:

Mysql的基本用法(上)非常详细、快速上手

上篇结束了java基础&#xff0c;本篇主要对Mysql中的一些常用的方法进行了总结&#xff0c;主要对查询方法进行了讲解&#xff0c;包括重要的多表查询用到的内连接和外连接等&#xff0c;以下代码可以直接复制到可视化软件中&#xff0c;方便阅读以及练习&#xff1b; SELECT *…...

使用Vite创建React + TypeScript(node版本为16.17.0,含资源下载)

PC端 安装指令&#xff1a; npm create vitelatest react-ts-pro -- --template react-tsVite是一个框架无关的前端工具链&#xff0c;可以快速的生成一个React TS的开发环境&#xff0c;并且可以提供快速的开发体验说明&#xff1a; 1. npm create vitelatest固定写法&#…...

Springboot集成RabbitMq二

接上一篇&#xff1a;Springboot集成RabbitMq一-CSDN博客 1、搭建项目-消费者 与之前一样 2、创建配置类 package com.wym.rabbitmqconsumer.utils;import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.spring…...

机器学习笔记 - 基于Python的不平衡数据的欠采样技术

一、简述 随着从不同的来源生成和捕获大量数据。尽管信息量巨大,但它往往反映了现实世界现象的不平衡分布。数据不平衡的问题不仅仅是统计上的挑战,它对数据驱动模型的准确性和可靠性具有深远的影响。 以金融行业欺诈检测为例。尽管我们希望避免欺诈,因为其具有高度破坏性,…...

facebook广告的基础知识

Facebook广告是在Facebook、Instagram、Audience Network等与Facebook相关的SNS和服务上投放的广告。以下是关于Facebook广告的基础知识&#xff1a; 广告类型&#xff1a; 静态图片广告&#xff1a;主要通过Facebook的新闻提要投放的图片广告&#xff0c;可以张贴产品和服务…...

java常见面试题:什么是异常?Java中的异常有哪些分类?

异常是一个汉语词语&#xff0c;读音为y chng&#xff0c;指非正常的&#xff1b;不同于平常的&#xff1b;非常。在Java中&#xff0c;异常&#xff08;Exception&#xff09;是程序在运行过程中出现的不正常情况&#xff0c;例如除以零、数组越界等。异常分为两大类&#xff…...

类的加载顺序问题-demo展示

面试的的时候经常会被问到包含静态代码块、实例代码块和构造器等代码结构的加载顺序问题&#xff0c;下面借用一个面试题&#xff0c;回顾一下类的代码加载顺序。 public class AooTest {public static void main(String[] args) {AooTest.f1();}static AooTest test1 new Ao…...

[蓝桥杯2020国赛]答疑

答疑 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序&#xff0c;同学们要依次进入老师办公室答疑。 一位同学答疑的过程如下&#xff1a; 首先进入办公室&#xff0c;编号为 i 的同学需要 si​ 毫秒的时间。然后同学问…...

【AIGC表情prompt】提示词练习技巧

表情类提示词练习技巧 医疗机器人&#xff0c;男人笑脸景深&#xff0c;数据&#xff0c;座标&#xff0c;12k,c4d渲染&#xff0c;高分辨率&#xff0c;,暖色调&#xff0c;高清对比 医疗机器人&#xff0c;男人微笑&#xff0c;景深&#xff0c;数据&#xff0c;座标&#xf…...

SpringBoot项目的三种创建方式

手动创建方式&#xff1a; ①&#xff1a;新建maven项目 ②&#xff1a;引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.10.RELEASE</version>&l…...

【docker实战】01 Linux上docker的安装

Docker CE是免费的Docker产品的新名称&#xff0c;Docker CE包含了完整的Docker平台&#xff0c;非常适合开发人员和运维团队构建容器APP。 Ubuntu 14.04/16.04&#xff08;使用 apt-get 进行安装&#xff09; # step 1: 安装必要的一些系统工具 sudo apt-get update sudo ap…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;…...

软件测试之安全测试

一、测试范围 管理系统&#xff1a;url、登录框、搜索框、输入框、文件上传、文件下载 客户端&#xff1a;搜索框、输入框、文件上传、系统功能 二、测试点 密码安全 XSS注入 SQL注入 操作越权 上传安全 下载安全 三、工具 fiddler sqlmap 同时&#xff0c;在这我为…...

【华为OD机试真题2023CD卷 JAVAJS】会议室占用时间

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 会议室占用时间 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 现有若干个会议,所有会议共享一个会议室,用数组表示每个会议的开始时间和结束时间,格式:[[会议1开始时间,会议1结束时间], [会议2开始时间…...

UR5机器人的旋转向量转换到四元数,再从四元数转换到旋转向量python代码

能够通过接口获得UR5机器人末端在基坐标系下的位姿&#xff0c;姿态表示方法是用旋转向量表示的&#xff0c;一般会涉及到四元数和旋转向量之间的转换。 1、方法一 import numpy as np from pytransform3d import rotations as pr import copy # 输入旋转向量 quaternion2 n…...

MD5--加密原理及代码示例(C#)

1.MD5详述 MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一种哈希算法&#xff0c;用于将任意长度的信息映射为固定长度的哈希值&#xff08;128位&#xff09;。MD5算法具有以下特点&#xff1a; 哈希值长度固定&#xff1a;MD5算法将任意长度的输入数据计算为128…...

理解 RPC 与 Protobuf:完整指南

一、Protobuf 数据格式简析 Protobuf 是什么&#xff1f; 在数据密集型应用领域&#xff0c;Google 开发的 Protobuf 作为一种高效数据编码方式而广受欢迎。它胜任于 JSON 及 XML 对比&#xff0c;不仅在体积和速度上表现出色&#xff0c;而且其结构化方式优化了网络传输中的…...

成为一名合格的前端架构师,前端知识技能与项目实战教学

一、教程描述 本套前端架构师教程&#xff0c;大小35.94G&#xff0c;共有672个文件。 二、教程目录 01.node介绍和环境配置&#xff08;共6课时&#xff09; 02.ES6语法&#xff08;共5课时&#xff09; 03.node基础&#xff08;共29课时&#xff09; 04.Express框架&am…...

前端 富文本编辑器原理

富文本编辑器是一种用于编辑和展示富文本内容&#xff08;包括文字、图片、视频等&#xff09;的工具。它通常提供了类似于Microsoft Word的功能&#xff0c;使用户可以对文本进行格式化、插入图片和链接、调整字体样式等操作。在前端开发中&#xff0c;我们可以使用JavaScript…...

Java网络编程之IP,端口号,通信协议(UDP,TCP)

目录 1.软件架构2.网络编程三要素3.IP1.IPV42.IPV6 4.端口号5.协议1.UDP协议1.单播2.组播3.广播 2.TCP协议1.三次握手2.四次挥手 1.软件架构 ①C/S&#xff1a;客户端/服务器 在用户本地需要下载安装客户端程序&#xff0c;在远程有一个服务器端程序。 优点&#xff1a;画面精美…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...