首页 > 数据库 >MySQL基础(1) 分页查询 函数 过程

MySQL基础(1) 分页查询 函数 过程

时间:2024-07-21 12:54:04浏览次数:22  
标签:语句 20 分页 sno 查询 MySQL 主键 SELECT

目录

一、分页查询:

1、分页查询语法:

情况1.每页显示20条记录,此时显示第1页

情况2.每页显示20条记录,此时显示第2页

2、分页查询公式:(当前页数-1) * 每页条数,每页条数

3、倒序

(1)desc:

(2)order by:

情况1:根据学生序号 sno 倒序排列

情况2:查询员工表中工资最高的员工信息

二、MySQL中的主键自增长:

创建一张表: 

①要设置主键:设置主键语句:

②如果有中文字 ,在末尾插入语句:

 ③创建表的格式:

④清除一张表

插入语句 ,张三的序号sno不需要输入,会自增长

三、查询系统时间

例1:

例2:

四、时间字段的存值:

传入:

读取:

转换格式 :

 五、创建函数格式:

创建表语法:

例1:求两个数的值

例2:返回现在的时间

调用函数语法:

无参:

有参:

清除函数语法:

无参:

有参:

在函数中调用参数进行赋值:

①:使用declare 变量名 变量类型来声明变量, 使用select字段名 into 变量名进行查询赋值

②使用declare 变量名 变量类型来声明变量, 使用set 变量名:=值 对变量手动赋值

六、存储过程(procedure)

定义格式

调用存储过程

语法:call 存储过程名();


一、分页查询:

select 语句,limit 起始条数,每页条数

注意:MySQL不能将算数运算的计算公式写在 sql语句中

我们可以在java中按照(页数)*每页条数的工商算出起始条数,传给sql语句来执行。

分页显示: 将数据库中的结果集,一段一段显示出来需要的条件

1、分页查询语法:
# 放在查询语句的末尾
LIMIT 【位置偏移量,】 行数
情况1.每页显示20条记录,此时显示第1页
SELECT 
  employee_id,
  last_name 
FROM
  employees 
LIMIT 0, 20 ;
情况2.每页显示20条记录,此时显示第2页
SELECT 
  employee_id,
  last_name 
FROM
  employees 
LIMIT 20, 20 ;
2、分页查询公式
(当前页数-1) * 每页条数,每页条数
3、倒序
(1)desc:
(2)order by:
情况1:根据学生序号 sno 倒序排列
SELECT * FROM my_student2 s
ORDER BY s.sno desc 
LIMIT 3,6
情况2:查询员工表中工资最高的员工信息
SELECT 
  * 
FROM
  employees 
ORDER BY salary DESC 
LIMIT 1 ;

二、MySQL中的主键自增长:

在create table语句中,主键字段名的后面使用 auto_Increment可以使用主键自增长,我们在Insert语句中无需传值,只要写null即可

创建一张my_student2表,主键sno设置成为自增长的主键

CREATE TABLE  my_student2(
	sno INTEGER auto_increment,
	sname VARCHAR ( 20 ),
	sage INTEGER,
	createtime DATETIME,
PRIMARY KEY ( sno )) DEFAULT charset = utf8;
创建一张表: 
①要设置主键:设置主键语句:
PRIMARY KEY ( sno )
②如果有中文字 ,在末尾插入语句:
 DEFAULT charset = utf8
 ③创建表的格式:
CREATE TABLE  表名(
	键名1 数据类型,
	键名2 数据类型,
    ……
PRIMARY KEY ( 键名 )) ;
④清除一张表
drop table 表名;

插入语句 ,张三的序号sno不需要输入,会自增长


INSERT into my_student2 VALUES(NULL,'张三','20','2024-07-19 15:40:23');

三、查询系统时间

语句: now();

例1:
SELECT now();

查询当前时间

例2:
INSERT into my_student2 VALUES(NULL,'李四','22',now());

 李四的createtime值为当前时间

四、时间字段的存值:

传入:

我们只需要传入yyyy-mm-dd hh:mi:ss的格式时间字符串即可,无需手动转换

INSERT into my_student2 VALUES(NULL,'张三','20','2024-07-19 15:40:23');
读取:

但是Java不支持这种日期格式,需要转换成字符串

转换格式 :

被转换的变量名(源表的日期格式的键名  , '%Y-%m-%d  %H:%i:%s')源表的日期格式的键名

SELECT
	sno,
	sname,
	sage,
	DATE_FORMAT( CREATEtime, '%Y-%m-%d  %H:%i:%s' ) CREATEtime 
FROM
	my_student2;

 五、创建函数格式:

创建表语法:
create function 函数名()

returns 返回值类型 注意:是returns

begin

程序体;

end;
例1:求两个数的值
CREATE FUNCTION fn2(a int,b int )
RETURNS int
BEGIN
 return a+b;
 end;
 SELECT fn2(3,4);
例2:返回现在的时间
CREATE FUNCTION fn1 () RETURNS datetime BEGIN
	RETURN now();
	
END;
SELECT
	fn1 ();
 
调用函数语法:
无参:
SELECT
	fn1 ();
有参:
SELECT fn2(3,4);
清除函数语法:
无参:
 drop FUNCTION fn1;
 
有参:
 drop FUNCTION fn2;
在函数中调用参数进行赋值:
①:使用declare 变量名 变量类型来声明变量, 使用select字段名 into 变量名进行查询赋值
CREATE FUNCTION fn4 () RETURNS VARCHAR ( 200 ) BEGIN
	DECLARE
		v_param VARCHAR ( 200 );
	SELECT
		sname INTO v_param 
	FROM
		my_student2 
	WHERE
		sno = '3';
	RETURN v_param;

declare 定义一个VARCHAR(200)类型的v_param变量,并且把满足条件:sno(主键值)='3' sname的值赋给v_param,函数返回值return

②使用declare 变量名 变量类型来声明变量, 使用set 变量名:=值 对变量手动赋值
CREATE FUNCTION fn3()
RETURNS VARCHAR(200)
BEGIN
 DECLARE v_param VARCHAR(200);
 set v_param:='hello mysql';
 return v_param;
 end;
 SELECT fn3();

先定义类型为VARCHAR(200)的v_param,通过set语句把v_param的值设置成‘hello mysql’,最后返回语句  

六、存储过程(procedure)

定义格式
delimiter 结束表示

create procedure 存储过程名()

BEGIN

程序体

end ;结束表示

例1:选择$$作为结束表示 过程:把值插入表中 

delimiter $$
CREATE PROCEDURE p1 () BEGIN
	INSERT INTO my_student2
	VALUES
		(
			NULL,
			'xiaoming',
			'20',
		NOW());
	
END $$ 

调用存储过程
语法:call 存储过程名();
CALL p2 (90);

关闭虚拟机:shutdown -h 0

标签:语句,20,分页,sno,查询,MySQL,主键,SELECT
From: https://blog.csdn.net/xjdkxnhcoskxbco/article/details/140556480

相关文章

  • MySQL数据库基本操作包括MySQL过程、MySQL声明
    MySQL数据库操纵数据库查看数据库showdatabases;创建数据库createdatabase<database_name>;删除数据库dropdatabase<database_name>;使用数据库usemysql操纵数据表查看数据表showtables;创建数据表CREATETABLETBL_USER(#创建user,tableU_IDINTPR......
  • mysql常用命令总结
    连接数据库格式mysql-h连接地址-u用户-p密码-P端口例如mysql-h127.0.0.1-uroot-p123456-P3310 常用用户管理操作https://dev.mysql.com/doc/refman/8.0/en/create-user.html创建用户CREATEUSER'用户名字'@'%'IDENTIFIEDBY'密码';例如CREATEUSER'wxh......
  • 一文了解MySQL的子查询
    文章目录☃️1.需求分析与问题解决❄️❄️1.1实际问题❄️❄️1.2子查询的基本使用❄️❄️1.3子查询的分类☃️2.单行子查询❄️❄️2.1单行比较操作符❄️❄️2.2代码示例❄️❄️2.3HAVING中的子查询❄️❄️2.4注意的问题☃️3.多行子查询❄️❄️3.1多行比较操作符❄️❄️3.2代码示例☃️4.相......
  • 在休息端点中验证查询字符串参数的默认方法是什么?
    我正在使用Python和Flask设计一个RESTAPI。我很好奇,如果有人输入无效的查询字符串参数,会发生什么?GEThttps://www.example.com/users?page=1;count=20;dummyinvalidparameter=dummyvalue例如,如果用户输入一个名为dummyinvalidparameter的查询参数怎么办......
  • Python/Flask mysql 游标:为什么它不起作用?
    fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='localhost'app.config['MYSQL_USER']='root'app.config['MYSQL_PASSWORD']='password'a......
  • 将AWS RDS MySQL实例从存储未加密改为加密的方案
    问题描述:因为AWSRDS官方文档【1】中已经明确说明,MySQLRDS的存储为EBS卷,用KMS进行RDS加密有如下限制:您只能在创建RDS的时候,选择加密。对于已经创建的RDS实例,您无法将为加密的实例,直接改为加密实例。(文档【1】中的AmazonRDS加密的数据库实例的限制部分)因此,对于一个我们已......
  • 玄机-第二章日志分析-mysql应急响应
    文章目录前言简介应急开始准备工作日志分析步骤1步骤2步骤3步骤4总结补充erro.log前言这里应急需要知道mysql提权的一些姿势,还有能够提权成功的前提。5金币就当复习一下了。这里考察的是mysql应急响应,我们应该是根据找flag的需求去就行,但是我做了之后发现......
  • 如何确定SQLAlchemy在用户请求期间执行的查询数量?
    我搜索了互联网,没有找到一个非常简单问题的答案。我有一个简单的Web应用程序(由web.py提供支持),它使用SQLAlchemy0.7.8+psycopg2,所以sqltap对我不起作用。因此,我可以在引擎中启用echo=True或对保存在threadlocal中的当前会话执行任何操作。计算查询数......
  • 玄机-第二章日志分析-mysql应急响应
    目录前言简介应急开始准备工作日志分析步骤1步骤2步骤3步骤4总结补充mysql中的/var/log/mysql/erro.log记录上传文件信息的原因前言这里应急需要知道mysql提权的一些姿势,还有能够提权成功的前提。5金币就当复习一下了。这里考察的是mysql应急响应,我们应该是根据找flag......
  • MySQL数据库MHA实现
    前提:关闭所有机器的防火墙关闭selinux1、主库54从库52/53三台服务器环境mysql8.0.25配置文件:cat>/fan/etc/mysql80/my.cnf<<EOF[mysqld]server_id=54binlog_format=rowdatadir=/fan/data/mysql80/basedir=/fan/softwares/mysql80/port=3308socket=/tmp/mysql330......