Day76(分页查询,联合查询,数组处理之增删改DML语言)

2024-02-25 14:18

本文主要是介绍Day76(分页查询,联合查询,数组处理之增删改DML语言),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分页查询

#进阶8:分页查询 ★/*
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求
语法:select 查询列表from 表【join type join 表2on 连接条件where 筛选条件group by 分组字段having 分组后的筛选order by 排序的字段】limit 【offset,】size;offset要显示条目的起始索引(起始索引从0开始)size 要显示的条目个数
特点:①limit语句放在查询语句的最后②公式要显示的页数 page,每页的条目数sizeselect 查询列表from 表limit (page-1)*size,size;size=10page  1	02  	103	20*/
#案例1:查询前五条员工信息SELECT*
FROMemployees
LIMIT 0, 5;SELECT*
FROMemployees
LIMIT 5;#案例2:查询第11条——第25条SELECT*
FROMemployees
LIMIT 10, 15;#案例3:有奖金的员工信息,并且工资较高的前10名显示出来SELECT*
FROMemployees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 1

联合查询

#进阶9:联合查询/*
union 联合 合并:将多条查询语句的结果合并成一个结果
语法:
查询语句1
union
查询语句2
union
...
应用场景:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
特点:★
1、要求多条查询语句的查询列数是一致的!
2、要求多条查询语句的查询的每一列的类型和顺序最好一致
3、union关键字默认去重,如果使用union all 可以包含重复项
*/
#引入的案例:查询部门编号>90或邮箱包含a的员工信息SELECT*
FROMemployees
WHERE department_id > 90
UNION
SELECT*
FROMemployees
WHERE email LIKE '%a%';#案例:查询中国用户中男性的信息以及外国用户中年男性的用户信息SELECTid,cname
FROMt_ca
WHERE csex = '男'
UNION
ALL
SELECTt_id,tname
FROMt_ua
WHERE tGender = 'male';

数组处理之增删改DML语言

#DML语言/*
数据操作语言:
插入:insert
修改:update
删除:delete
*/
#一、插入语句
#方式一:经典的插入/*
语法:
insert into 表名(列名,...) values(值1,...);
*/
SELECT*
FROMbeauty;#1.插入的值的类型要与列的类型一致或兼容INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id
)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',9,2);#2.不可以为null的列必须插入值。可以为null的列如何插入值?
#方式一:INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id
)
VALUES(13,'佟丽娅','女','1992-2-2',13988892827,NULL,1);#方式二:INSERT INTO beauty (id, NAME, phone)
VALUES(14, '董璇', '14819389467');#3.列的顺序是否可以调换INSERT INTO beauty (phone, NAME, id)
VALUES(15892848245, '刘亦菲', 16);#4.列数和值的个数必须一致INSERT INTO beauty (phone, id, NAME, photo)
VALUES(18211992288, 17, '范文芳', NULL);#5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致INSERT INTO beauty
VALUES(18,'迪丽热巴','女','1993-3-3',19387276364,NULL,NULL);#方式二:/*
语法:
insert into 表名
set 列名=值,列名=值,...
*/
INSERT INTO beauty SET id = 19,
NAME = '刘涛',
phone = 14890348569;#两种方式大pk ★
#1、方式一支持插入多行,方式二不支持INSERT INTO beauty (id, NAME, phone)
VALUES(20, '景甜', 15208472824),(21, '张柏芝', 15493837586);#2、方式一支持子查询,方式二不支持INSERT INTO beauty (id, NAME, phone, boyfriend_id)
SELECT22,'杨丞琳',15394854758,6;INSERT INTO beauty (id, NAME, phone, boyfriend_id)
SELECT23,'女神',14444444444,id
FROMboys
WHERE boyName = '张无忌';#二、修改语句/*
1.修改单表的记录★
语法:
update 表名
set 列=新值,列=新值,...
where 筛选条件;
2.修改多表的记录【补充】
语法:
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;
sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;
*/
#1.修改单表的记录
#案例1:修改beauty表中姓董的女神的电话为13899888899UPDATEbeauty
SETphone = '13899888899'
WHERE `name` LIKE '董%';#案例2:修改boys表中id好为2的名称为张飞,魅力值 10UPDATEboys
SETuserCP = 10,boyName = '张飞'
WHERE id = 2;#2.修改多表的记录
#案例 1:修改张无忌的女朋友的手机号为114UPDATEbeauty bLEFT JOIN boys boON b.`boyfriend_id` = bo.`id` SET phone = 114
WHERE bo.`boyName` = '张无忌';#案例2:修改没有男朋友的女神的男朋友编号都为2号UPDATEbeauty bLEFT JOIN boys boON b.`boyfriend_id` = bo.`id` SET b.`boyfriend_id` = 2
WHERE bo.`id` IS NULL;#三、删除语句/*
方式一:delete
语法:
1、单表的删除【★】
delete from 表名 where 筛选条件
2、多表的删除【补充】
sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
方式二:truncate
语法:truncate table 表名;
*/
#方式一:delete
#1.单表的删除
#案例:删除手机号以9结尾的女神信息DELETE
FROMbeauty
WHERE phone LIKE '%9';#2.多表的删除
#案例:删除黄晓明的女朋友的信息DELETEb
FROMbeauty bLEFT JOIN boys boON b.boyfriend_id = bo.id
WHERE bo.boyName = '黄晓明';#案例:删除黄晓明的信息以及他女朋友的信息DELETEb,bo
FROMbeauty bINNER JOIN boys boON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName` = '黄晓明';#方式二:truncate语句
#案例:将魅力值>100的男神信息删除TRUNCATE TABLE aaaa;#delete pk truncate【面试题★】/*
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.
*/
#案例讲解
#1.	运行以下脚本创建表my_employeesUSE myemployees;CREATE TABLE my_employees (Id INT (10),First_name VARCHAR (10),Last_name VARCHAR (10),Userid VARCHAR (10),Salary DOUBLE (10, 2)
);CREATE TABLE users (id INT,userid VARCHAR (10),department_id INT
);#2.	显示表my_employees的结构DESC my_employees;#3.	向my_employees表中插入下列数据/*
ID	FIRST_NAME	LAST_NAME	USERID	SALARY
1	patel		Ralph		Rpatel	895
2	Dancs		Betty		Bdancs	860
3	Biri		Ben		Bbiri	1100
4	Newman		Chad		Cnewman	750
5	Ropeburn	Audrey		Aropebur	1550
*/
#方式一:INSERT INTO my_employees
VALUES(1, 'patel', 'Ralph', 'Rpatel', 895),(2, 'dancs', 'Betty', '8dancs', 860),(3, 'Biri', 'Ben', 'Bbiri', 1100),(4, 'Newman', 'Chad', 'Cnewman', 750),(5,'Ropeburn','Audrey','Aropebur',1550);#方式二:INSERT INTO my_employees
SELECT1,'patel','Ralph','Rpatel',895
UNION
SELECT2,'Dancs','Betty','Bdancs',860
UNION
SELECT3,'Biri','Ben','Bbiri',1100
UNION
SELECT4,'Newman','Chad','Cnewman',750
UNION
SELECT5,'Ropeburn','Audrey','Aropebur',1550;#4.	 向users表中插入数据/*
1	Rpatel	10
2	Bdancs	10
3	Bbiri	20
4	Cnewman	30
5	Aropebur	40
*/
INSERT INTO users
VALUES(1, 'Rpatel', 10),(2, 'Bdancs', 10),(3, 'Bbiri', 20);#5.将3号员工的last_name修改为“Drelxer”UPDATEmy_employees
SETlast_name = 'Drelxer'
WHERE id = 3;#6.将所有工资少于900的员工的工资修改为1000UPDATEmy_employees
SETsalary = 1000
WHERE salary < 900;#7.将userid 为Bbiri的user表和my_employees表的记录全部删除DELETEu,m
FROMusers uINNER JOIN my_employees mON m.`Userid` = u.userid
WHERE u.`userid` = 'BBiri';#8.删除所有数据DELETE
FROMusers;DELETE
FROMmy_employees;#9.检查所作的修正SELECT*
FROMmy_employees;SELECT*
FROMusers;#10.清空表my_employeesTRUNCATE TABLE my_employees;

这篇关于Day76(分页查询,联合查询,数组处理之增删改DML语言)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745739

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu