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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

ural 1026. Questions and Answers 查询

1026. Questions and Answers Time limit: 2.0 second Memory limit: 64 MB Background The database of the Pentagon contains a top-secret information. We don’t know what the information is — you

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return