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

目录

一、分页查询:

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

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值