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

相关文章

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN