- 浏览: 622247 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (334)
- java core (12)
- struts2.x (2)
- spring (3)
- hibernate (8)
- jpa (6)
- maven (2)
- osgi (5)
- eclipse (4)
- struts2.x+spring2.x+hibernate 整合 (5)
- ebs (0)
- html (0)
- vaadin (1)
- css (0)
- jquery (0)
- javascript (0)
- svn (1)
- cvs (0)
- axas2.x (0)
- eclipse+maven (9)
- annotation (0)
- 基于OSGi的动态化系统搭建 (1)
- notenet (1)
- jboss eclipse (4)
- eclipse工具 (4)
- jdk1.6+maven3.0.3+nuxeo+svn+felix+cxf+spring+springDM (6)
- spring dm (1)
- Nexus介绍 (1)
- proxool listener (0)
- oracle (4)
- mysql (8)
- 搭建你的全文检索 (1)
- hibernatehibernatehibernate (0)
- cvsearchcvsearch (0)
- mycvseach (0)
- asdfasdfasdf (0)
- propertiey (0)
- hibernate annotation (0)
- libs (0)
- icam (2)
- start 数据库配置 (0)
- jboss (1)
- 让Eclipse启动时显示选择workspace的对话框 (1)
- table表头固定 (1)
- s2s3h4 (0)
- leaver (0)
- mycvsaerchddd (0)
- 关于jboss5.0.1部署 (4)
- bookmarks (0)
- PersistenceUnitDeployment (0)
- mycom (0)
- HKEY_CURRENT_USER = &H80000001 (0)
- syspath (1)
- css div (1)
- Dreamweaver CS5 (0)
- generate (0)
- mysql查看表结构命令 (1)
- LOG IN ERROR EMAIL TO SB (0)
- struts2 handle static resource (1)
- jsf (2)
- log4j (1)
- jbpm4.4 (2)
- down: jbpm4.4 (1)
- jstl1.2 (1)
- spring annotation (1)
- java design pattern (1)
- cache (1)
- ehcache (1)
- 11111 (0)
- myge (0)
- pom.xml (0)
- springquartz (0)
- OpenStack (9)
- hadoop (2)
- nginx (1)
- hadoop openstack (1)
- os (1)
- hadoop-2.6.0 zookeeper-3.4.6 hbase-0.98.9-hadoop2 集群 (5)
- hadoop2.7.0 ha Spark (2)
- tess (0)
- system (1)
- asdf (0)
- hbase (2)
- hbase create table error (1)
- ekl (1)
- gitignore (1)
- gitlab-ci.yml (1)
- shell (1)
- elasticsearch (2)
- Azkaban 3.0+ (1)
- centos用命令 (1)
- hive (1)
- kafka (1)
- CaptureBasic (0)
- CentOS7 (1)
- dev tools (1)
- README.md (1)
- Error (1)
- teamviewerd.service (1)
- scala (1)
- spark (1)
- standard (1)
- gitlab (1)
- IDEA (0)
- ApplicationContext (1)
- 传统数仓 (1)
- redis install (1)
- MYSQL AND COLUME (1)
- java版本选择 (1)
- hue (1)
- npm (1)
- es (1)
- 版本管理 (1)
- 升级npm版本 (1)
- git (1)
- 服务器参数设置 (1)
- 调大 IDEA 编译内存大小 (0)
- CentOS8安装GitLab (1)
- gitlab安装使用 (1)
最新评论
-
ssydxa219:
vim /etc/security/limits.confvi ...
ekl -
Gamehu520:
table中无数据
hbase 出现的问题 -
Xleer0102:
为什么都是只有问没有答,哭晕在厕所
hbase 出现的问题 -
jiajiao_5413:
itext table -
CoderDream:
不完整,缺com.tcs.org.demostic.pub.u ...
struts2.3.1.1+hibernate3.6.9Final+spring3.1.0+proxool+maven+annotation
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
1,变量
DECLARE声明,SET赋值
INT, INTEGER
BIGINT
FLOAT
DOUBLE
DECIMAL(precision, scale), NUMERIC(precision, scale)
DATE
DATETIME
CHAR(length)
VARCHAR(length)
BLOB, TEXT
LONGBLOB, LONGTEXT
可以在DECLARE变量时用DEFAULT设置默认值,不设则为NULL
2,参数
参数分IN、OUT和INOUT类型
3,用户变量
以@开头的为用户变量,作用域为session,所以可以当作全局变量使用
4,注释
//为单行注释
/*
|
| 多行注释
|
*/
5,操作符
算术操作符
+
-
*
/ # 结果可能为小数
DIV # 结果为整数
%
比较操作符
>
<
<=
>=
BETWEEN
NOT BETWEEN
IN
NOT IN
=
<>, != # 不等号
<=> # Null safe equal (returns TRUE if both arguments are Null)
LIKE
REGEXP
IS NULL
IS NOT NULL
逻辑操作符
AND
OR
XOR
位操作符
|
&
<<
>>
~
6,内建函数
分为字符串函数、算术函数、日期和时间函数和其他函数
常用MySQL函数
ABS
CEILING
CONCAT
CURDATE
DATE_ADD
DATE_SUB
FORMAT
GREATEST
IF
IFNULL
INSERT
INSTR
ISNULL
LEAST
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MOD
NOW
POWER
RAND
REPEAT
REPLACE
ROUND
RPAD
RTRIM
SIGN
SQRT
STRCMP
SUBSTRING
UPPER
VERSION
7,数据类型
MySQL中所有的变量都为单元素,没有数组的概念。
String类型
CHAR:定长,不足的部分用空格,超出的部分截断,最大255字节
VARCHAR:变长,不足的部分变短,超出的部分截断,最大65532字节
ENUM类型
SET类型
SET与ENUm类似,但是可以有多个值
CREATE PROCEDURE sp_set(in_option SET('Yes', 'No', 'Maybe'))
BEGIN
SELECT in_option;
END
--------------
CALL sp_set('Yes')
--------------
+-----------+
| in_option |
+-----------+
| Yes |
+-----------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
--------------
CALL sp_set('Yes,No,Maybe')
--------------
+--------------+
| in_option |
+--------------+
| Yes,No,Maybe |
+--------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
--------------
CALL sp_set('Yes,No,Go away')
--------------
ERROR 1265 (01000): Data truncated for column 'in_option' at row 1
Numeric类型
DATE和DATETIME类型
DATE用于存储日期,DATETIME用于存储日期和时间
TEXT和BLOB类型
TEXT可以存储64K,LONGTEXT可以存储4G
BLOB和LONGBLOB与之类似,但是它们还可以存储二进制数据
8,sql_mode
'STRICT_TRANS_TABLES'(默认值): 对transactional的table做严格数据类型限制
'STRICT_ALL_TABLES': 对所有table都做严格数据类型限制
在strict mode下,如果出现Data truncate错误(如将String赋值给Integer)会raise error,而在no strict mode下则会出现不可预料的行为(如将String赋值给Integer时值变为0)并且只能在“show warnings;”时看到。
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'b' at row 1 |
| Warning | 1265 | Data truncated for column 'c' at row 1 |
+---------+------+----------------------------------------+
存储过程应该一直在strict mode下工作,这样可以避免不可预期的错误。
一个存储过程包括名字,参数列表,以及可以包括很多 SQL 语句的 SQL 语句集。
创建存储过程:
语法: CREATE PROCEDURE p() BEGIN /* 此存储过程的正文 */ END |
CREATE PROCEDURE productpricing() BEGIN SELECT Avg(pro_price) AS priceaverage FROM products; END; # begin…end 之间是存储过程的主体定义 # mysql 的分界符是分号(;) |
调用存储过程的方法是:
# CALL 加上过程名以及一个括号 # 例如调用上面定义的存储过程 CALL productpricing(); # 哪怕是不用传递参数,存储过程名字后面的括号“()”也是必须的 |
删除存储过程的方法是:
DROP PROCUDURE productpricing; |
创建带参数的存储过程:
CREATE PROCUDURE productpricing( OUT p1 DECIMAL(8,2), OUT ph DECIMAL(8,2), OUT pa DECIMAL(8,2) ) BEGIN SELECT Min(prod_price) INTO pl FROM products; SELECT Max(prod_price) INTO ph FROM products; SELECT Avg(prod_price) INTO pa FROM products; END; # DECIMAL 用于指定参数的数据类型 # OUT 用于表明此值是用于从存储过程里输出的 # MySQL 支持 OUT, IN, INOUT |
调用带参数的存储过程:
CALL productpricing(@pricelow, @pricehigh, @priceaverage); # 所有的参数必须以 @ 开头 # 要想获取 @priceaverage 的值,用以下语句 SELECT @priceaverage; # 获取三个的值,用以下语句 SELECT @pricehigh, @pricelow, @priceaverage; |
另一个带 IN 和 OUT 参数的存储过程:
CREATE PROCEDURE ordertotal( IN onumber INT, OUT ototal DECIMAL(8,2) ) BEGIN SELECT Sum(item_price*quantity) FROM orderitems WHERE order_num = onumber INTO ototal; END; CALL ordertotal(20005, @total); SELECT @total; |
DELIMITER $$
DROP PROCEDURE IF EXISTS `dbcall`.`get_page`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_page`(
/**//*Table name*/
tableName varchar(100),
/**//*Fileds to display*/
fieldsNames varchar(100),
/**//*Page index*/
pageIndex int,
/**//*Page Size*/
pageSize int,
/**//*Field to sort*/
sortName varchar(500),
/**//*Condition*/
strWhere varchar(500)
)
BEGIN
DECLARE fieldlist varchar(200);
if fieldsNames=''||fieldsNames=null THEN
set fieldlist='*';
else
set fieldlist=fieldsNames;
end if;
if strWhere=''||strWhere=null then
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
else
if sortName=''||sortName=null then
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
else
set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
end if;
end if;
PREPARE stmt1 FROM @strSQL;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END$$
DELIMITER ;
- cvsearch.7z (2.5 MB)
- 下载次数: 5
发表评论
-
[Err] 1055 - Expression ---mysql
2020-11-11 12:28 340[Err] 1055 - Expression #1 of O ... -
windows下Mysql安装启动及常用操作
2020-11-11 09:50 350这里我将端口修改为:330 ... -
MySQL 插入速度调高至 10000条/秒
2018-11-05 10:33 2175(1)提高数据库插入性 ... -
mysql cluster
2014-11-20 15:40 681配置之前,先补充一些Linux常用命令: ls 浏览 l ... -
mysql
2014-09-22 16:06 806mysqld_safe --skip-grant-ta ... -
MySQL有几个不同的日志文件
2014-09-04 19:12 1464、日志类型: MySQL有几个不同的日志文件,可以帮助你找 ... -
linux mysql
2014-03-24 12:44 0【下载】 登录MySQL官网下载页 http://dev.m ... -
MYSQL定时执行存储过程
2014-02-05 15:32 4454//**MYSQL定时执行存储过程查看event是否开启: ... -
mysql查看表结构命令
2012-11-27 09:22 0mysql查看表结构命令,如下: desc 表名; sho ... -
mysql imp exp
2012-03-07 16:15 01.导出整个数据库 mysqldump -u 用户名 - ...
相关推荐
`MYSQL_mysql proc_mysql教程`的标题提示我们,这份资料将深入讲解MySQL的存储过程(PROC),这是数据库管理员和开发人员在编写复杂逻辑时经常使用的特性。 存储过程是预编译的SQL语句集合,可以在需要时调用执行。...
MySQL数据库中的`proc`表是存储过程和函数的元数据表,它包含了关于用户自定义的存储过程和函数的信息。这个表在MySQL的系统数据库`mysql`中,用于记录所有数据库实例上的这些对象的详细信息。`proc.frm`, `proc.MYD...
本篇将详细解析标题“mysql_proc_page_order.zip_page_proc_page_排序MYSQL”所涵盖的知识点,以及如何在MySQL中实现翻页与排序的存储过程。 首先,我们需要了解SQL中的`ORDER BY`子句,它是用于对查询结果进行排序...
MySqlCommand myCommand = new MySqlCommand("call error_test_proc(1)", myConnection); myCommand.ExecuteNonQuery(); } catch (MySqlException MyException) { Console.WriteLine("Stored procedure error: ...
-j`grep processor /proc/cpuinfo | wc -l` \ -DMYSQL_DATADIR=/var/mysql/data \ -DWITH_BOOST=/usr/local/boost_1_59_0 \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -D...
- 通过cat /proc/cpuinfo命令和grep、cut、uniq等管道命令组合来统计CPU的数量和型号。 - 使用top命令查看CPU的实时使用情况。 - 查看系统中CPU的使用率是否超过80%,根据系统负载情况对数据库进行优化或调整。 ...
如果你需要执行更复杂的SQL操作,如存储过程调用,可以使用TSQLQuery组件,并设置其`StoredProc`属性为True,然后填写`SQL.Text`以指定存储过程名。 为了确保连接的安全性和稳定性,你还可以考虑以下几点: 1. ...
- `cat /proc/version`:显示当前正在运行的内核版本。 - `uname -a`:展示更多关于系统的信息,包括内核版本、架构等。 这些步骤可以帮助我们了解服务器的基本情况,确保后续的安装过程顺利进行。 #### 二、...
例如,在 SQL Server 中,我们可以使用 `CREATE PROCEDURE proc_name @out VARCHAR(50) OUTPUT` 来定义一个输出参数,而在 MySql 中,我们可以使用 `CREATE PROCEDURE proc_name(OUT out VARCHAR(50))` 来实现同样的...
MySQL Proxy 是一个轻量级的中间件,它作为数据库客户端和MySQL服务器之间的代理,提供了一系列的优势和功能。MySQL Proxy 的主要优点在于其灵活性和透明性,它可以无感知地插入到应用和数据库之间,使得对数据库的...
【标题】"给予Linux和MySQL的pos收银机完整代码" 涉及的主要知识点包括Linux操作系统、MySQL数据库系统以及编程技术ncurses、ProC。这个项目是一个在Linux环境下运行的单机版超市收银系统,它利用了开源和免费的软件...
MySQL 存储过程实例 MySQL 存储过程实例详细介绍了 MySQL 存储过程的开发步骤,本节将通过具体的实例讲解 PHP 是如何操纵 MySQL 存储过程的。 创建存储过程 存储过程的创建是 MySQL 存储过程的基础,MySQL 5.0 ...
这些权限由`mysql.db`、`mysql.tables_priv`、`mysql.columns_priv`和`mysql.proc_priv`等字典表管理。例如,`mysql.db`和`mysql.tables_priv`都可以定义用户对表的操作权限,但MySQL通过权限粒度来区分,更具体的...
- 使用命令 `ldd --version` 或者 `grep GLIBC /proc/version` 来查看glibc版本。 3. **下载MySQL安装包**:可以通过提供的百度网盘链接下载MySQL 64位安装包。 - 下载地址:[mysql-5.6.30-linux-glibc2.5-x86_64....
mysql 存储过程 ,存储函数的调用示例
### 数据库讲义mysql05知识点总结 #### 一、MySQL简介与特点 - **MySQL**:一种流行的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发。 - **特性**: - 高性能:支持大量并发连接,处理速度较快。 - ...
CREATE PROCEDURE sp_name ([proc_parameter[,...]]) routine_body routine_body:存储过程的主体部分,也叫做存储过程体。里面包含了在过程调用的时候必须执行的语句,这个部分总是以BEGIN开始,以END结束。当然,...
例如,如果有一个名为`my_proc`的存储过程,接收两个参数`arg1`和`arg2`,则命令字符串应为`"CALL my_proc(?, ?)"`。 2. 创建预处理语句。使用`mysql_stmt_prepare()`函数,将SQL命令字符串传递给MySQL服务器预编译...
1. cat /proc/cpuinfo 2. sysbench --test=cpu --cpu-max-prime=20000 run I/O基准测试: 1. 创建测试数据文件fileio文件 sysbench --test=fileio --file-num=16 --file-total-size=1G prepare 2. 查看已经创建的...