MySQL数据库基本操作2

news2024/10/6 10:35:24

主要内容

  1. DQL

一.DQL

DQL(Data Query Language)是一种用于查询数据库中数据的语言。它是SQL(Structured Query Language)的一部分,用于从数据库中检索所需的数据。

DQL的用法如下:

  1. SELECT语句:用于从数据库中选择数据。可以选择指定的列、特定的行或者使用聚合函数进行计算。例如:

    SELECT column1, column2 FROM table_name;
    SELECT * FROM table_name;
    
  2. WHERE子句:用于指定查询条件,过滤满足条件的数据。可以使用比较运算符(如等于、大于、小于等)、逻辑运算符(如AND、OR)和通配符(如LIKE)来构建条件。例如:

    SELECT column1, column2 FROM table_name WHERE condition;
    SELECT * FROM table_name WHERE column1 = 'value';
    
  3. ORDER BY子句:用于对查询结果进行排序。可以按照指定的列升序或降序排列。例如:

    SELECT column1, column2 FROM table_name ORDER BY column1 ASC;
    SELECT * FROM table_name ORDER BY column1 DESC;
    
  4. GROUP BY子句:用于将查询结果按照指定的列进行分组。通常与聚合函数(如SUM、COUNT、AVG等)一起使用。例如:

    SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
    
  5. HAVING子句:用于在GROUP BY子句后对分组进行过滤。可以使用聚合函数和比较运算符来构建条件。例如:

    SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > 100;
    
  6. LIMIT子句:用于限制查询结果的数量。可以指定返回的行数或者跳过指定数量的行。例如:

    SELECT column1, column2 FROM table_name LIMIT 10;
    SELECT column1, column2 FROM table_name LIMIT 10 OFFSET 5;
    

以上是DQL的一些常用用法,可以根据具体需求灵活运用。

1.语法格式

代码如下(示例):
select
[all|distinct]
	< 目标列的表达式 1> [ 别名 ],
	< 目标列的表达式 2> [ 别名 ]...
from < 表名或视图名 > [ 别名 ],< 表名或视图名 > [ 别名 ]...
[where< 条件表达式 >]
[group by < 列名 >
[having < 条件表达式 >]]
[order by < 列名 > [asc|desc]]
[limit < 数字或者列表 >];

简化版语法
select *| 列名 fromwhere 条件

2.数据准备

代码如下(示例):
创建数据库和表
--创建数据库
create database if not exist mydb2;
use mydb2;
-- 创建商品表:
create table product(
pid int primary key auto_increment, -- 商品编号
pname varchar(20) not null , -- 商品名字
price double, -- 商品价格
category_id varchar(20) -- 商品所属分类
);

• 添加数据:
insert into product values(null,' 海尔洗衣机 ',5000,'c001');
insert into product values(null,' 美的冰箱 ',3000,'c001');
insert into product values(null,' 格力空调 ',5000,'c001');
insert into product values(null,' 九阳电饭煲’ ,200,'c001');

insert into product values(null,' 劲霸休闲裤 ',266,'c002');
insert into product values(null,' 海澜之家卫衣 ',180,'c002');
insert into product values(null,' 杰克琼斯运动裤 ',430,'c002');
insert into product values(null,' 兰蔻面霜 ',300,'c003');
insert into product values(null,' 雅诗兰黛精华水 ',200,'c003');
insert into product values(null,' 香奈儿香水 ',350,'c003');
insert into product values(null,'SK-II 神仙水 ',350,'c003');
insert into product values(null,' 资生堂粉底液 ',180,'c003');
insert into product values(null,' 老北京方便面 ',56,'c004');
insert into product values(null,' 良品铺子海带丝 ',17,'c004');
insert into product values(null,' 三只松鼠坚果 ',88,null);

3.简单查询

代码如下(示例):
-- 1. 查询所有商品
select * from product;
-- 2. 查询商品名和商品价格 .
select pname,price from product;
-- 3. 别名查询 . 使用的关键字是 as ( as 可以省略的) .
-- 3.1 表别名 :
select * from product as p;
-- 3.2 列别名:
select pname as pn from product;
-- 4. 去掉重复值 .
select distinct price from product;
-- 5. 查询结果是表达式(运算查询):将所有商品的价格 +10 元进行显示 .
select pname,price+10 from product;

4.运算符

算术运算符
在这里插入图片描述
比较运算符
在这里插入图片描述
逻辑运算符
在这里插入图片描述
位运算符
在这里插入图片描述

5.运算符操作-算术运算符

代码如下(示例):
select 6 + 2;
select 6 - 2;
select 6 * 2;
select 6 / 2;
select 6 % 2;
-- 将每件商品的价格加 10
select name,price + 10 as new_price from product;
-- 将所有商品的价格上调 10%
select pname,price * 1.1 as new_price from product;

6.运算符操作-条件查询

代码如下(示例):
--查询商品名称为“海尔洗衣机”的商品所有信息:
select * from product where pname = ' 海尔洗衣机 ';
-- 查询价格为 800 商品
select * from product where price = 800;
-- 查询价格不是 800 的所有商品
select * from product where price != 800;
select * from product where price <> 800;
select * from product where not(price = 800);
-- 查询商品价格大于 60 元的所有商品信息
select * from product where price > 60;
-- 查询商品价格在 200 到 1000 之间所有商品
select * from product where price >= 200 and price <=1000;
select * from product where price between 200 and 1000;

7.运算符操作-算数运算符

代码如下(示例):
--查询商品价格是200或800的所有商品
select * from product where price = 200 or price = 800;
select * from product where price in (200,800);
-- 查询含有‘裤 ' 字的所有商品
select * from product where pname like%%';
-- 查询以 '' 开头的所有商品
select * from product where pname like '%';
-- 查询第二个字为 '' 的所有商品
select * from product where pname like '_ 蔻 %';
-- 查询 category_id 为 null 的商品
select * from product where category_id is null;
-- 查询 category_id 不为 null 分类的商品
select * from product where category_id is not null;
--使用least求最小值
select least(10, 20, 30); -- 10
select least(10, null , 30); -- null
-- 使用 greatest 求最大值
select greatest(10, 20, 30);
select greatest(10, null, 30); -- null

8.运算符操作-位运算符

代码如下(示例):
select 3&5; -- 位与
select 3|5; -- 位或
select 3^5; -- 位异或
select 3>>1; -- 位左移
select 3<<1; -- 位右移
select ~3; -- 位取反

9.排序查询

代码如下(示例):
• 介绍
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 order by子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
select
字段名 1 ,字段名 2......
from 表名
order by 字段名 1 [asc|desc] ,字段名 2[asc|desc]......

• 特点
1.asc 代表升序, desc 代表降序,如果不写默认升序
2.order by 用于子句中可以支持单个字段,多个字段,表达式,函数,别名
3.order by 子句,放在查询语句的最后面。 LIMIT 子句除外

--1.使用价格排序(降序)
select * from product order by price desc;
-- 2. 在价格排序 ( 降序 ) 的基础上,以分类排序 ( 降序 )
select * from product order by price desc,category_id asc;
-- 3. 显示商品的价格 ( 去重复 ) ,并排序 ( 降序 )
select distinct price from product order by price desc;

10.聚合查询

在这里插入图片描述

操作

代码如下(示例):
-- 1 查询商品的总条数
select count(*) from product;
-- 2 查询价格大于 200 商品的总条数
select count(*) from product where price > 200;
-- 3 查询分类为 'c001' 的所有商品的总和
select sum(price) from product where category_id = 'c001';
-- 4 查询商品的最大价格
select max(price) from product;
-- 5 查询商品的最小价格
select min(price) from product;
-- 6 查询分类为 'c002' 所有商品的平均价格
select avg(price) from product where category_id = 'c002';

11.聚合查询-null值处理

  1. count 函数对 null 值的处理如果 count 函数的参数为星号( *),则统计所有记录的个数。而如果参数为某字段,不统计含 null 值的记录个数。
  2. sum 和 avg 函数对 null值的处理这两个函数忽略 null 值的存在,就好象该条记录不存在一样。
  3. max 和 min 函数对 null 值的处理max 和 min 两个函数同样忽略 null 值的存在。
代码如下(示例):
-- 创建表
create table test_null(
	c1 varchar(20),
	c2 int
);
-- 插入数据
insert into test_null values('aaa',3);
insert into test_null values('bbb',3);
insert into test_null values('ccc',null);
insert into test_null values('ddd',6);
-- 测试
select count(*), count(1), count(c2) from test_null;
select sum(c2),max(c2),min(c2),avg(c2) from test_null;

12.分组查询-group by

代码如下(示例):
分组查询是指使用 group by 字句对查询信息进行分组。

格式:
-- 1 统计各个分类商品的个数
select category_id ,count(*) from product group by category_id ;
操作
select 字段 1, 字段 2... from 表名 group by 分组字段 having 分组条件 ;

如果要进行分组的话,则 SELECT 子句之后,只能出现分组的字段和统计函数,其他的字段不能出现:
• 分组之后的条件筛选 -having
	分组之后对统计结果进行筛选的话必须使用 having ,不能使用 where
	where 子句用来筛选 FROM 子句中指定的操作所产生的行
	group by 子句用来分组 WHERE 子句的输出。
	having 子句用来从分组的结果中筛选行
• 格式
select 字段 1, 字段 2... from 表名 group by 分组字段 having 分组条件 ;

• 操作
-- 2. 统计各个分类商品的个数 , 且只显示个数大于 4 的信息
select category_id ,count(*) from product group by category_id having count(*) > 1;

13.分页查询-limit

代码如下(示例):
分页查询:
分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。
例如数据共有 30 条,每页显示 5 条,第一页显示 1-5 条,第二页显示 6-10 条。
• 格式
-- 方式 1- 显示前 n 条
select 字段 1 ,字段 2... from 表明 limit n
-- 方式 2- 分页显示
select 字段 1 ,字段 2... from 表明 limit m,n
m: 整数,表示从第几条索引开始,计算方式 (当前页 -1* 每页显示条数
n: 整数,表示查询多少条数据

• 操作
-- 查询 product 表的前 5 条记录
select * from product limit 5
-- 从第 4 条开始显示,显示 5 条
select * from product limit 3,5

INSERT INTO SELECT 语句
 
格式
insert into Table2(field1,field2,...) select value1,value2,... from Table1
或者:
insert into Table2 select * from Table1

总结

以上是今天要讲的内容,学到了MySQL数据库基本语句及基本操作,包括DQL。

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

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

相关文章

Spring Cloud Sentinel整合Nacos实现配置持久化

sentinel配置相关配置后无法持久化&#xff0c;服务重启之后就没了&#xff0c;所以整合nacos&#xff0c;在nacos服务持久化&#xff0c;sentinel实时与nacos通信获取相关配置。 使用上一章节Feign消费者服务实现整合。 版本信息&#xff1a; nacos:1.4.1 Sentinel 控制台 …

【DRAM存储器十七】DDR2介绍-DDR2的新增技术-Post CAS、ODT、RDQS、OCD

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光DDR数据手册》 目录 Post CAS ODT RDQS OCD Post CA…

方舟生存进化ARK个人服务器搭建教程保姆级

方舟生存进化ARK个人服务器搭建教程保姆级 大家好我是艾西&#xff0c;在很久之前我有给大家分享过方舟生存进化的搭建架设教程&#xff0c;但时间久远且以前的教程我现在回头看去在某些地方说的并不是那么清楚。最近也是闲暇无事打算重新巩固下方舟生存进化的搭建架设教程&…

[计算机提升] Windows文件系统类型介绍

1.13 文件系统 在Windows系统中&#xff0c;文件系统是一种用于组织和管理计算机上存储的文件和目录的方法。它提供了一种结构化的方式来访问、存储和检索数据。 以下是Windows系统中常见的文件系统&#xff1a; FAT&#xff08;FAT16、FAT32&#xff09;&#xff1a;FAT&…

2023年中国研磨液需求量、市场规模及行业竞争格局分析[图]

研磨是半导体加工过程中的一项重要工艺&#xff0c;它主要是应用化学研磨液混配磨料的方式对半导体表面进行精密加工&#xff0c;研磨液是平坦化工艺中研磨材料和化学添加剂的混合物&#xff0c;研磨材料主要是石英、二氧化铝和氧化铈&#xff0c;研磨液是影响半导体表面质量的…

endnote设置

问题1&#xff1a;参考文献的tab太长 首先要在endnote里面这样设置&#xff0c;file->output->edit "XXX" 保存之后&#xff0c;在word更新目录。 在word里面设置悬挂缩进 结果&#xff1a; Endnote参考编号与参考文献距离太远怎么调整 endnote 文献对齐方式…

LibTorch实战一:MNIST的python代码

目录 一、下载MNIST-demo的cpp、python版本代码 二、五分钟读懂pytorch代码 三、下载MNIST数据集、训练模型 四、模型序列化、可视化分析 本文借用mnist这个相对简易深度学习任务来开始讲解libtorch如何部署模型。因此&#xff0c;这是一个如何编写libtorch代码的实战教程。…

Linux权限大揭秘:深入理解系统安全

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; &#x1f354;前言&#xff1a; 在之前的内容中&#xff0c;我们了解了Linux中的一些简单权限&#xff0c;如root超级账号与普通账户的区别、Linux文件权限管理、文件类型和访问权限以及许多关于修改权限的指令及其规则…

源发行版17 需要目标发行版 17问题解决

java: 警告: 源发行版 17 需要目标发行版 17 问题描述&#xff1a;解决办法&#xff1a;总结 问题描述&#xff1a; 解决办法&#xff1a; 1.将 Settings --> Build, Execution, Deployment --> Complier --> Java Complier 配置下的 Project bytecode version: 17 改…

为爱出发,与善同行丨纬创软件2023北京善行者圆满收官

2023年10月21日&#xff0c;北京善行者徒步活动在昌平正式开走。800支队伍3200名善行者队员进行32公里的公益行走。纬创软件组建「北京台协纬创软件队」&#xff0c;4名队员踏上32公里的征程&#xff0c;通过徒步筹款的方式传递善行理念&#xff0c;为贫困山区的孩子们建立“爱…

用AI打造一个属于自己的歌手,让她C位霸气出道

一、前言 今天玩儿点儿特别的&#xff0c;AI大行其道的今天&#xff0c;还没玩过AI模型的程序员绝对不是个好厨子。我本人比较喜欢音乐&#xff0c;但是一直没有出道&#xff0c;很是遗憾。那么今天&#xff0c;我就使用AI模型亲手打造一个堪比真人的歌手&#xff0c;让她C位霸…

2023年中国消防报警设备市场规模现状及行业竞争趋势分析[图]

消防安全行业主要分为消防产品和消防工程两个子行业。消防产品又可细分成消防装备、消防报警、自动灭火、防火与疏散、通用与防烟排烟、消防供水等 6 大类&#xff0c;其中消防装备主要用于消防部队&#xff0c;其他 5 大类主要用于建筑物消防。 消防行业内容 资料来源&#x…

《低代码指南》——如何通过维格表实现生产采购管理

信息 通过维格表的低代码开发能力,实现从销售订单转为生产计划工单并按需拆解为物料采购减少手工录入和计算工作,补充成熟ERP对MRP的个性化需求限制提升供应链运转效率生产采购过程中你有没有遇到这些问题?​ 从采购到生产,再到入库,流程太繁琐?生产力低下?采购系统员工…

商业级质感磨皮插件Portraiture5.0最新中文版本

整个摄影后期行业都在推崇Portraiture或DR5磨皮&#xff0c;这是一个被奉为——高级磨皮面板&#xff0c;修图神器、顶级修图的的扩展面板&#xff01;&#xff01;而最近7月份Portraiture更新到5.0版本了&#xff0c;还叫嚣“完虐”DR5高级磨皮&#xff01;&#xff01; 今coc…

手写效果流式响应(langchain+fastapi+js)

这是一个前后端完整可用的小项目 后端是 Python 的 FastAPI 框架&#xff0c;调用 langchain 进行 openai 的模型对话。前端是纯html css javascript&#xff0c;没调用任何第三方库&#xff0c;方便集成到 Vue React 等现有前端项目。 聊天界面&#xff1a; 效果就是提问之…

dvadmin-打包发布-nginx-静态服务器配置-防火墙设置

文章目录 1.下载nginx2.nginx常用命令3.dvadmin打包发布4.防火墙设置 1.下载nginx 也从作者下载的网址下载&#xff1a;https://download.csdn.net/download/m0_67316550/88470098 2.nginx常用命令 注意&#xff1a;一定要在dos窗口启动&#xff0c;不要直接双击nginx.exe&a…

如何将数据库某列的值(如日期)作为表格的列名

如何将数据库某列的值&#xff08;如日期&#xff09;作为表格的列名 需求&#xff1a;前端需要展示如下的二维表格&#xff0c;其中表格的日期是数据库表里data的值&#xff0c;每行不同的值是表格里的字段值&#xff0c;也就是需要将表里的数据行转列&#xff0c;列转行&…

【Proteus仿真】【Arduino单片机】PWM电机调速

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用蜂鸣器、按键、直流电机、L293D等。 主要功能&#xff1a; 系统运行后&#xff0c;K3键启动运行&#xff0c;K1控制运行方向&#xff0c;K2键…

【Redis】Docker部署Redis数据库

Docker部署Redis数据库 1. Redis介绍2. CentOS 7 安装 & Docker 配置3. 拉取Redis 镜像、创建容器3.1 配置Docker镜像源3.2 拉取Redis 镜像3.3 容器创建 1. Redis介绍 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用…

oracle,CLOB转XML内存不足,ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE“,

通过kettle采集数据时&#xff0c;表输入的组件&#xff0c;查询报错。 ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE”, line 272 ORA-06512: at line 1 通过 ALTER SESSION SET EVENTS ‘31156 trace name context forever, level 0x400’; 修改会话配置 或直接修改…