目录
①:使用declare 变量名 变量类型来声明变量, 使用select字段名 into 变量名进行查询赋值
②使用declare 变量名 变量类型来声明变量, 使用set 变量名:=值 对变量手动赋值
一、分页查询:
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);