`

MySQL基础语句(存储过程)

阅读更多
# 创建并选择数据库
create database mydata;
use mydata

# 显示数据库
show databases;
# 显示表
show tables;
# 查看表
desc 表的名字;

# 客户表
create table customers
(
cust_id int primary key, #主键
cust_name varchar(20),
cust_emil varchar(50)
);

# 订单表
create table orders
(
orders_num int primary key,
orders_date datetime,
cust_id int, #客户id 外键
foreign key (cust_id) references customers(cust_id)
);

insert into prod values (1, 'm', 'apq', '20', '1998-02-28');
commit;

select * from prod;

# 删除表
drop table orders;

# 删除表数据
delete from orders where orders_num=100; #删除一行
delete from orders; #删除表里的所有数据

# 自动递增字段
create table article
(
id int primary key auto_increment,
title varchar(10)
);

# 自动递增字段表里插入数据
insert into article (title) values('a');
insert into article (title) values('b');
+----+-------+
| id | title |
+----+-------+
|  1 | a     |
|  2 | b     |
+----+-------+

select * from prod limit 0,2;
select * from prod order by prod_id desc limit 3,2;

# 日期格式化
select date_format(now(), '%y-%m-%d %h:%i:%s');

可以显示数据库的编码
show create table table_name;

在写SQL语句之前,请加上这一句,以保证前台和后台的编码一致
set names gbk;
MySql安装目录下,请找到my.ini文件,在[mysql]下面把编码改成gbk, 在[mysqld]下面
编码改成utf8 这样以后就不用写set names gbk了!!之后重启MYSql
[mysql]
# 客户端的编码
default-character-set=gbk
[mysqld]
# 服务器端的编码
default-character-set=utf8


# 创建存储过程(不带参数的)
delimiter //
create procedure user_avg()
begin
	select avg(money) as avg_money from user;
end //
delimiter ;

# 调用存储过程
call user_avg();

# 删除存储过程
drop procedure if exists user_avg;

-------------------------------------
# 创建存储过程(带参数的), out是输出值
delimiter //
create procedure proce(
	out low decimal(8, 2),
	out high decimal(8, 2),
	out average decimal(8, 2)
)

begin
	select min(money) from user into low;
	select max(money) from user into high;
	select avg(money) from user into average;
end //
delimiter ;

# 调用存储过程
call proce(@low, @high, @average);

# 检索
select @low;
select @high;
select @average;
select @low, @high, @average;

-------------------------------------
# 创建存储过程(带参数的), in是输入值
create table products
(
	id int primary key auto_increment,
	name varchar(30),
	price float,
	quantity int
);

insert into products(name, price, quantity) values('umbrella', 20.0, 5);
insert into products(name, price, quantity) values('knife', 200.0, 10);
insert into products(name, price, quantity) values('trousers', 300.0, 20);

delimiter //
create procedure ordertotal(
	in number int,
	out total decimal(8, 2)
)
begin
	select sum(price * quantity) from products where id = number into total;
end //
delimiter ;

call ordertotal(1, @sum);
select @sum;

-------------------------------------
# 显示所有存储过程
show procedure status;
# 删除存储过程
drop procedure if exists ordertotal;
-------------------------------------

-------------------------------------
# \. D:\\SQL\\procedure.sql
-------------------------------------

public class Procedure {

	public static void main(String[] args) throws Exception {
		orderTotal("umbrella", 1); //umbrella: 100.0
		orderTotal("knife", 2); //knife: 2000.0
		orderTotal("trousers", 3); //trousers: 6000.0
	}
	
	static void orderTotal(String name, int id) throws Exception {
		Connection conn = null;
		CallableStatement cs = null;
		ResultSet rs = null;
		try {
			conn = JdbcUtils.getConnection();
			//创建语句
			String sql = "{ call ordertotal(?,?) }";
			cs = conn.prepareCall(sql);
			//注册输出参数
			cs.registerOutParameter(2, Types.DECIMAL);
			cs.setInt(1, id);
			cs.executeUpdate();
			
			//拿出输出参数
			float total = cs.getFloat(2);
			System.out.println(name + ": " + total);
		} finally {
			JdbcUtils.free(rs, cs, conn);
		}
	}

}


分享到:
评论

相关推荐

    Mysql存储过程常用语句模板

    Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三...

    Oracle Sql语句转换成Mysql Sql语句

    7. **视图和存储过程**:Oracle的视图和存储过程可能需要在MySQL中重新编写,因为两者的语法和权限管理不同。 OracleSqlConvert4MysqlSqlTool.java这个源码工具,根据描述,应该是实现了自动读取Oracle SQL语句,...

    mysql 查询存储过程的 sql 语句.docx

    ### MySQL 查询存储过程详解 #### 一、存储过程概述 MySQL 存储过程是一种存储在 MySQL 服务器中的 SQL 代码段,它能够被多个客户端多次调用。存储过程的主要优势在于能够简化复杂的 SQL 查询,执行常见的任务,...

    mysql存储过程——用于数据库的备份与还原

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许程序员或数据库管理员预编译一系列SQL语句,形成一个可重用的程序单元。在本场景中,我们关注的是如何利用存储过程进行数据库的备份与还原,这在数据管理中至...

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    mysql经典教程+mysql存储过程讲解

    本教程结合"mysql经典教程+mysql存储过程讲解"的主题,将深入探讨MySQL的基础知识以及核心特性——存储过程。 首先,我们需要理解什么是数据库。数据库是一个组织和存储数据的系统,允许用户以结构化方式访问和管理...

    MySQL SQL基础语句最佳实践

    MySQL是目前广泛使用的开源关系型数据库管理系统,其基础语句遵循结构化查询语言(SQL)标准,用于实现数据的存储、检索、更新和管理。SQL是一种功能强大且用途广泛的数据库编程语言,它由数据查询语言(DQL)、数据...

    MySQL存储过程基础教程.pdf

    MySQL语句在存储过程体中的合法性 在MySQL中,大多数合法的SQL语句都可以直接嵌入到存储过程体中执行。这些包括数据定义语言(DDL)、数据操纵语言(DML)以及事务控制语句。 #### 4. 特征和子句 存储过程中可以使用...

    MySQL存储过程学习

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列的SQL语句,形成一个可重复使用的代码块,以提高数据处理的效率和应用程序的性能。在这个"MySQL存储过程学习"的主题中,我们将深入探讨...

    MySQL存储过程的异常处理方法

    首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个分号(;)而不会导致命令提前结束。存储过程的定义如下: ```sql CREATE PROCEDURE ...

    java实体转mysql建表语句

    在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...

    MySQL5.0存储过程

    SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。...

    mysql数据库语句代码实例.rar_mysql数据库语句_图书管理mysql_增删查改基本sql语句_存储过程_数据库和代码

    本压缩包中的资源提供了关于MySQL数据库语句的实践代码实例,涵盖了数据库操作的基础知识,包括增(INSERT)、删(DELETE)、查(SELECT)和改(UPDATE),以及存储过程和多表连接的使用。以下是对这些知识点的详细...

    MySQL数据库存储过程

    MySQL数据库存储过程是数据库管理系统中一个非常重要的特性,它允许开发者编写一组预编译的SQL语句,以函数或过程的形式存储在数据库中,供后续调用。这极大地提高了数据库应用的性能和效率,因为存储过程只需要在...

    MySQL 存储过程入门到精通

    总之,“MySQL存储过程入门到精通”涵盖了从基础到高级的全部内容,无论你是初学者还是有经验的开发者,都能从中受益。通过学习这个资料,你将能够熟练地创建、管理和优化MySQL存储过程,提升数据库管理的效率和质量...

    MySQL实现创建存储过程并循环添加记录的方法

    在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的操作,用于执行复杂的业务逻辑。创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在...

    mysql触发器+存储过程

    MySQL数据库系统提供了强大的数据库管理功能,其中两个关键的特性是触发器(Triggers)和存储过程(Stored Procedures)。这两者都是数据库编程的重要组成部分,能够帮助用户实现更复杂的数据操作和业务逻辑。 首先...

    kettle批量导出mysql建表语句

    在这个场景中,“kettle批量导出mysql建表语句”是一个关于如何使用Kettle来自动化地从MySQL数据库中提取建表语句,包括数据表和视图的创建语句,以便于备份或在其他环境中重建相同结构的过程。 首先,我们需要了解...

    mysql基础语句大全及用法讲解.zip

    这份"mysql基础语句大全及用法讲解"的压缩包文件,显然是为了帮助初学者或进阶用户掌握MySQL的基本操作和语句用法。下面,我们将详细探讨MySQL中的关键知识点。 1. **数据类型**: MySQL支持多种数据类型,如整数...

Global site tag (gtag.js) - Google Analytics