sybase创建存储过程
1.EXEC的使用
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理。以下所讲的都是第二种用法。
下面先使用EXEC演示一个例子,代码1
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql =
'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+
CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'
EXEC(@sql);
sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要为重用执行计划提供更好的支持。
为了和EXEC作一个鲜明的对比,我们看看如果用代码1的代码,把EXEC换成sp_executesql,看看是否得到我们所期望的结果
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT ,@sql2 NVARCHAR(MAX);
SET @TableName = 'Orders ';
SET @OrderID = 10251;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC'
EXEC sp_executesql @sql
Ⅱ sybase 数据库的存储过程怎么写
//给你个举个列,html控件数组的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
Ⅲ 什么是Sybase
数据库,虽然没有oracle、db2名气响,但是国内许多大企业都使用它,尤其金融企业。经本人在winxp sp2/win2000 server上安装测试通过。绝对企业版,注册文件在/crack目录中。第二个文件为sybase for linux 12.5企业版。本人没有测试。
Adaptive Server Enterprise (ASE) 是 Sybase 的旗舰式 RDBMS 产品,一直致力于以最低的系统总拥有成本 (TCO) 为企业提供一个高性能的数据和事务处理系统。最新版 ASE12.5.1/12.5.2 在继续保持以前版本的关键业务性能和高效计算的同时,在易用性、系统性能和支持新应用程序方面进行了增强和改进, 并进一步提高了系统安全和 Linux 的可扩展性。
Sybase Adaptive Server Enterprise 12.5.1 完善和扩展了 ASE 产品系列,使其成为用于各种平台 (从基于 Linux 的 Intel 系统到来自 Sun 或 HP 的基于 RISC 的 64 处理器平台) 的理想数据库系统。当今的企业需要一个更易于使用、资源效率更高、更可靠,而且可以与企业级应用轻松集成的企业基础架构技术,以有效控制和降低成本。 Sybase ASE 12.5.1 专门设计用于增强这些功能。
最新推出的 ASE12.5.2 继续遵循 ASE12.5.1 提出的降低应用整体 TCO 的技术策略,并进一步发展和完善了实时数据服务,动态数据归档等扩展功能,以期达到帮助用户进一步降低TCO的关键目标。
现在,如果采用 Sybase RTDS 实时数据服务包,Sybase 的 ASE 最新版可以通过JMS消息总线为高性能的实时消息服务提供集成数据库的支持。用户可以将它用于关键业务信息系统中,Sybase ASE 实时消息服务功能可以提供实时报警和通知,并且用户可以直接获得这些改变。
Sybase ASE 确保最高的操作有效性和各种平台上的吞吐量,从 32/64 位 Linux/Intel 到各种大规模的 SMP 系统。
ASE 帮助您的企业:
* 降低运行成本 - 自我管理功能提高系统运行的可伸缩性 — 这个功能可以在人员和系统资源较少的情况下实现更高的性能。
* 降低开发成本 - 增强的 Web 服务和 XML 功能可以更快地、更容易地开发、提交和维护新的业务应用。
* 降低硬件成本 - ASE 支持大规模数据集,能够提高各种平台上的数据量,包括 32 和 64 位的 Linux/Intel 系统。
目前版本 - ASE 12.5.3 Interim Release 具有新的功能,包括跨平台 Dump 和 Load,便于系统迁移。
Ⅳ 请教sybase的存储过程中如何实现动态sql
1.EXEC的使用
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理。以下所讲的都是第二种用法。
下面先使用EXEC演示一个例子,代码1
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql =
'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+
CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'
EXEC(@sql);
sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要为重用执行计划提供更好的支持。
为了和EXEC作一个鲜明的对比,我们看看如果用代码1的代码,把EXEC换成sp_executesql,看看是否得到我们所期望的结果
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT ,@sql2 NVARCHAR(MAX);
SET @TableName = 'Orders ';
SET @OrderID = 10251;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC'
EXEC sp_executesql @sql
Ⅳ sybase数据库drop存储过程报错 is currently in use
如果不想重启数据库,可以这样操作:
假设出错的存储过程名为name。
重命名出错的存储过程为nameDelete。
然后新建存储过程取名为name,把nameDelete中的代码复制到name中,进行修改调试。
在合适的时间,比如下次重启数据库之后,删除之前重命名的存储过程nameDelete。
如果对您有帮助,请采纳答案好吗,谢谢!
Ⅵ 请问如何保存sybase系统过程,分类存储过程的结果
目前没有直接可行的办法,只能照搬并修改存储过程。
以sp_databases为例,在master数据库中的“扩展存储过程”中找到sp_databases过程,将全部代码COPY出来,新建一个新的存储过程。
查看代码发现它是将数据库的信息写到临时表#databases中,将其修改成为写到固定表data(删除建立临时表语句,建立固定表,修改insert语句),需要时调用该存储过程,在从data表中即可得到所需的信息。
Ⅶ sybase 存储过程
因为你在存储过程中使用的是变量,而没有使用输入参数,如果将你的这个变量声明成输入参数,就可以实现了。create proc data(@username varchar(20)) as . begin ..... end.
Ⅷ 在sybase centrl如何生成ddl不乱吗
如果要制作一个相同的数据库备份,但又担心现有的建库脚本跟已有数据库不一致,那就需要从已有数据库中导出一份一模一样的数据字典。
最常用的方法有如下2种:
1、采用PowerDesigner的反向工程来导出DDL。
2、采用Sybase自带的DDL生成工具ddlgen。
下面着重描述下ddlgen的用法。
ddlgen的描述:
A java-based tool that generates definitions for server- and database-level
objects in Adaptive Server. ddlgen supports Adaptive Server version 11.9.2 and
later.
程序所在目录:
windows平台下:$SYBASE/sybcent32
Unix/Linux平台下:$SYBASE_HOME/ASEP/bin
用法:
1、存储过程
ddlgen -Usa -P -Sip:port -Duserdb -TP -N% -O proc.ddl
2、数据库
ddlgen -Usa -P -Sip:port -Duserdb -TDB -Nuserdb -O db.ddl
3、表结构
ddlgen -Usa -P -Sip:port -Duserdb -TU -N% -O table.ddl
4、视图
ddlgen -Usa -P -Sip:port -Duserdb -TV -N% -O view.ddl
注意:
1、正常只要导出这些就可以了。当然如果你定义了触发器或需要导出用户信息都可以。
2、导出数据库的情况下,已经包含了导出表结构定义。如果不需要创建数据库,可以只导表结构定义。
3、表结构定义的所有外键是在最后的,因此无需担心表的先后顺序。
4、用户权限必须是数据库的dbo或sa。
语法:
ddlgen
-Ulogin
-Ppassword
-Shost_name : port_number
[-Tobject_type]
[-Nobject_name]
[-Ddatabase_name]
[-Xextended_object_type]
[-Ooutput_file]
[-Eerror_file]
Or
ddlgen -v
参数说明:
-U login
specifies a login name, and is case-sensitive.
-P password
specifies your password.
-Shost_name : port_number
specifies the host name or IP address of Adaptive Server, as well as its port
number. Separate host_name and port_number with a colon, without spaces
before or after it.
Note You must use the -S option because ddlgen does not connect to a default
server, and does not support interface files.
-Tobject_type
specifies the type of object you are creating. If you do not use -T, ddlgen
creates a DDL for the default database of login. Table 6-3 lists object types
for -T.
-Nobject_name
specifies the fully qualified name of the object you are creating, such as
-Ndb_name.owner.table.index.
The -N option:
is required if you specify any object_type other than DB (database) in
the -T parameter.
accepts wildcards with the use of %.
Use -N% to generate a DDL for all items of a specific object type on your
server.
-Ddatabase_name
specifies the name of the database for the object you specify in the -N option.
The default is the user’s default database.
-Xextended_object_type
differentiates user tables (OU) from proxy tables (OD) when you specify a
table as your object type (-TU). If object_type (-T) is U (table) and -X is not
specified, ddlgen generates DDL for both user tables and proxy tables. To
generate a DDL only for:
user tables – use the OU extended object type with the -X option.
proxy tables – use the OD extended object type with the -X option.
-Ooutput_file
specifies an output file for the generated DDL. If you do not specify -O, the
DDL you create appears in a console window.
-Eerror_file
specifies a log file for recording errors. If you do not specify -E, the
generated errors appear in a console window.
-v
displays the version and right message of ddlgen and returns to the
operating system.
Object type描述:
C cache
D default
DB database
DBD database device
DPD mp device
EC execution class
EG engine group
GRP group
I index
L login
P stored procere
R rule
RO role
RS remote server
SGM segment
TR trigger
U table
UDD user-defined datatype
USR user
V view
XP extended stored procere
Ⅸ sql创建存储过程
CREATE PROCEDURE 语句
说明 在数据库中创建新过程。
语法 CREATE PROCEDURE [ owner.]procere-name ( [ parameter , ... ] ) {
[ RESULT ( result-column, ... ) | NO RESULT SET ] [ ON EXCEPTION
RESUME ] compound statement | AT location-string | | [ DYNAMIC
RESULT SETS integer-expression ]
[ EXTERNAL NAME java-call LANGUAGE JAVA ]
}
参数 parameter:
parameter_mode parameter-name data-type [ DEFAULT expression ]
| SQLCODE
| SQLSTATE
parameter_mode:
IN | OUT | INOUT
result-column:
column-name data-type
library-call:
'[email protected]; ...'第 6章 SQL 语句
参考手册 439
java-call:
'[package-name.]class-name.method-name method-signature'
method-signature:
( [ field-descriptor,...] ) return-descriptor
field-descriptor | return-descriptor:
Z | B | S | I | J | F | D | C | V | [descriptor | Lclass-name;
示例 • 以下过程使用 case 语句对查询结果归类。
CREATE PROCEDURE ProctType (IN proct_id INT, OUT
type CHAR(10))
BEGIN
DECLARE prod_name CHAR(20) ;
SELECT name INTO prod_name FROM "DBA"."proct"
WHERE id = proct_id;
CASE prod_name
WHEN 'Tee Shirt' THEN
SET type = 'Shirt'
WHEN 'Sweatshirt' THEN
SET type = 'Shirt'
WHEN 'Baseball Cap' THEN
SET type = 'Hat'
WHEN 'Visor' THEN
SET type = 'Hat'
WHEN 'Shorts' THEN
SET type = 'Shorts'
ELSE
SET type = 'UNKNOWN'
END CASE ;
END
• 以下过程使用游标并循环通过游标的行以返回单值。
CREATE PROCEDURE TopCustomer (OUT TopCompany CHAR(35),
OUT TopValue INT)
BEGIN
DECLARE err_notfound EXCEPTION
FOR SQLSTATE '02000' ;
DECLARE curThisCust CURSOR FOR
SELECT company_name, CAST(
sum(sales_order_items.quantity *
proct.unit_price) AS INTEGER) VALUE
FROM customer
LEFT OUTER JOIN sales_order
LEFT OUTER JOIN sales_order_items
LEFT OUTER JOIN proctCREATE PROCEDURE 语句
440 Sybase IQ
GROUP BY company_name ;
DECLARE ThisValue INT ;
DECLARE ThisCompany CHAR(35) ;
SET TopValue = 0;
OPEN curThisCust ;
CustomerLoop:
LOOP
FETCH NEXT curThisCust
INTO ThisCompany, ThisValue ;
IF SQLSTATE = err_notfound THEN
LEAVE CustomerLoop ;
END IF ;
IF ThisValue > TopValue THEN
SET TopValue = ThisValue ;
SET TopCompany = ThisCompany ;
END IF ;
END LOOP CustomerLoop ;
CLOSE curThisCust ;
END
用法 CREATE PROCEDURE 在数据库中创建过程。具有 DBA 授权的用户可以
通过指定 owner 为其他用户创建过程。过程由 CALL 语句激活。
过程的主体由复合语句组成。有关复合语句的信息,请参见“BEGIN...
END 语句”(第 384 页)。
CREATE PROCEDURE 参数名必须符合其它数据库标识符(如列名)
的规则。它们必须是有效的 SQL 数据类型(请参见第 4 章“SQL 数据
类型”)并且必须使用前缀 IN、OUT 或 INOUT。这些关键字具有以下
含义:
• IN 此参数是一个为过程提供值的表达式。
• OUT 此参数是一个可由过程赋值的变量。
• INOUT 此参数是一个为过程提供值的变量,并且可由过程赋值。
使用 CALL 执行过程时,不需要指定所有的参数。如果在 CREATE
PROCEDURE 语句中提供了缺省值,缺少的参数会被分配缺省值。如果
CALL 语句中没有提供参数并且没有设置缺省值,则发生错误。
SQLSTATE 和 SQLCODE 是特殊参数, 它们在过程结束时输出 SQLSTATE 或
SQLCODE 值(它们是 OUT 参数) 。无论是否指定 SQLSTATE 和 SQLCODE
参数,总是可以在过程调用后立即检查 SQLSTATE 和 SQLCODE 特殊值以
测试过程的返回状态。第 6章 SQL 语句
参考手册 441
SQLSTATE 和 SQLCODE 特殊值在执行下一个 SQL 语句时被修改。将
SQLSTATE 或 SQLCODE 作为过程参数提供可允许返回代码存储在变
量中。
RESULT RESULT 子句可声明结果集中列的数量和类型。 RESULT 关键字
后面括在括号内的列表可定义结果的列名和类型。描述 CALL 语句时,嵌
入式 SQL DESCRIBE 或 ODBC SQLDescribeCol 返回此信息。列出允许使用
的数据类型的章为第 4 章“SQL 数据类型”
有关从过程返回的结果集的详细信息,请参见 《Sybase IQ 系统管理指
南》中的第 8 章 “使用过程和批处理”。
因执行的方式不同,有些过程可返回多个结果集,并且列数也不同。例
如,下面的过程在有些情况下返回两列,在有些情况下返回一列。
CREATE PROCEDURE names( IN formal char(1))
BEGIN
IF formal = 'n' THEN
SELECT emp_fname
FROM employee
ELSE
SELECT emp_lname,emp_fname
FROM employee
END IF
END
Ⅹ 谁有 Sybase 函数手册(最好chm)
看他们网上的,写得都是千篇一律,同时,好多也写得不是很好,下面是我自己总结的有关mysql的使用细节,也是我在学习过程中的一些记录吧,希望对你有点帮助,后面有关存储过程等相关操作还没有总结好,下次总结好了再发给你吧,呵呵~~~~~
MySql学习笔记
MySql概述:MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。这样就增加了速度与提高了灵活性。并且MySql软件是一个开放源码软件。
注意,MySql所支持的TimeStamp的最大范围的问题,在32位机器上,支持的取值范围是年份最好不要超过2030年,然后如果在64位的机器上,年份可以达到2106年,而对于date、与datetime这两种类型,则没有关系,都可以表示到9999-12-31,所以这一点得注意下;还有,在安装MySql的时候,我们一般都选择Typical(典型安装)就可以了,当然,如果还有其它用途的话,那最好选择Complete(完全安装);在安装过程中,一般的还会让你进行服务器类型的选择,分别有三种服务器类型的选择,(Developer(开发机)、Server Machine(服务器)、Dedicated MySql Server Machine(专用MYSQL服务器)),选择哪种类型的服务器,只会对配置向导对内存等有影响,不然其它方面是没有什么影响的;所以,我们如果是开发者,选择开发机就可以啦;然后接下来,还会有数据库使用情况对话框的选择,我们只要按照默认就可以啦;
连接与断开服务器:
连接:在windows命令提示符下输入类似如下命令集:mysql –h host –u user –p
例如,我在用的时候输入的是:mysql –h localhost –u root –p
然后会提示要你输入用户密码,这个时候,如果你有密码的话,就输入密码敲回车,如果没有密码,直接敲回车,就可以进入到数据库客户端;连接远程主机上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123
断开服务器:在进入客户端后,你可以直接输入quit然后回车就可以了;
下面就数据库相关命令进行相关说明
你可以输入以下命令对数据库表格或者数据库进行相关操作,在这里就省略了,然后直接进行文字说明了;
Select version(),current_date;//从服务器得到当前mysql的版本号与当前日期
Select user(); //得到当前数据库的所有用户
Use databasename; 进入到指定的数据库当中,然后就可以操作这个数据库当中的表格了
Show databases; //查询目前数据库中所有的数据库,并且显示出来;
Create batabase databasename;创建数据库,例如:create database manager;
Show tables; //查看当前数据库中的所有表格;
Create table tablename(colums);创建表,并且给表指定相关列,例如:create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);
Describe tablename;将表当中的所有信息详细显示出来,例如:describe pet;
可以用命令一次插入多条记录,例如:
Insert into pet values(‘Puffball’,’Diane’,’hamster’,’f’,’1993-12-3’,null),( ‘Puffball’,’Diane’,’hamster’,’f’,’1993-12-3’,now());
Select * from pet; 从pet表当中查询出所有的记录,显示出来;
Delete from pet where id=1;删除ID为1的那一条记录;
Update pet set birth=’2001-1-3’ where name=’Bowser’;更新name为Bowser的记录当中的birth字段的值;
Select distinct owner from pet;从pet表中选择出owner字段的值唯一的行,如果有多行记录这个字段的值相同,则只显示最后一次出现这一值的一行记录;
有关日期计算:
Select name,birth,curdate(),(year(curdate())-year(birth)) as age from pet;
此处,year()函数用于提取对应字段的年份,当然类似的还有month(),day()等;
在mysql当中,sql语句可以使用like查询,可以用”_”配任何单个字符,用”%”配任意数目字符,并且SQL模式默认是忽略大小写,例如:select * from pet where name like ‘%fy’;
当然也可以用正则表达式模式进行配。
同时在sql当中,也要注意分组函数、排序函数、统计函数等相关用法,在这里只列举一二;
Select species,count(*) from pet group by speceis;
Select * from pet order by birth desc;
查询最大值的相关操作:
Select max(age) from pet;
取前多少项记录,这个主要用于分页查询操作当中,
Select * from pet order by birth desc limit 3;取前三条记录,
Select * from pet order by birth desc limit 0,3;这个可以用于分页查询,limit后面的第一个参数,是起始位置,第二个参数是取记录条数;
有关创建表格自增长字段的写法:
Create table person(id int(4) not null auto_increment,name char(20) not null,primary key (id));
修改表操作:
向表中增加字段:注意,在这个地方,如果是增加多个字段的时候,就要用括号括起来,不然会有问题,如果是单个字段的话,不用括号也没事;
Alter table test add(address varchar(50) not null default ‘xm’,email varchar(20) not null);
将表中某个字段的名字修改或者修改其对应的相关属性的时候,要用change对其进行操作;
Alter table test change email email varchar(20) not null default ‘zz’;//不修改字段名
Alter table test change email Email varchar(30) not null;//修改字段名称
删除表中字段:
Alter table test drop email;//删除单个字段
Alter table test drop address,drop email;//删除多列
可以用Drop来取消主键与外键等,例如:
Alter table test drop foreign key fk_symbol;
删除索引:
Drop index index_name on table_name;
例如:drop index t on test;
向表中插入记录:注意,当插入表中的记录并不是所有的字段的时候,应该要在前面列出字段名称才行,不然会报错;
Insert into test(name) values(‘ltx’);
Insert into test values(1,’ltx’);
也可以向表中同时插入多列值,如:
Insert into test(name) values(‘ltx’),(‘hhy’),(‘xf’);
删除表中记录:
Delete from test;//删除表中所有记录;
Delete from test where id=1;//删除表中特定条件下的记录;
当要从一个表或者多个表当中查询出一些字段然后把这些字段又要插入到另一个表当中的时候,可以用insert …..select语法;
Insert into testt(name) (select name from test where id=4);
从文件中读取行插入数据表中,可以用Load data infile语句;
Load data infile ‘test.txt’ into table test;
可以用Describe语法进行获取有关列的信息;
Describe test;//可以查看test表的所有信息,包括对应列字段的数据类型等;
MySql事务处理相关语法;
开始一项新的事务:start transaction或者begin transaction
提交事务:commit
事务回滚:rollback
set autocommit true|false 语句可以禁用或启用默认的autocommit模式,只可用于当前连接;
例子:
Start transaction;
Update person set name=’LJB’ where id=1;
Commit | rollback;
数据库管理语句
修改用户密码:以root用户为例,则可以写成下面的;mysql –u root –p 旧密码 –password 新密码
Mysql –u root –password 123;//将root用户的密码修改成123,由于root用户开始的时候,是没有密码的,所以-p旧密码就省略了;
例如修改一个有密码的用户密码:mysql –u ltx –p 123 –password 456;
增加一个用户test1,密码为abc,让他可以在任何时候主机上登陆,并对所有数据库有查询、插入、修改、删除的权限。
Grant select,insert,update,delete on *.* to test1@”%” identified by ‘abc’;
增加一个test2用户,密码为abc,让他只可以在localhost上登陆,并且可以对数据库进行查询、插入、修改、删除操作;
Grant select,insert,update,delete on mydb.* to test2@localhost identified by ‘abc’;
如果不想让用户test2有密码,可以再输入以下命令消掉密码:
Grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;
备份数据库常用命令:mysqlmp –h host –u username –p dbname>保存路径与文件名
然后回车后,会让你输入用户密码,输入密码后,再回车就OK啦;
Mysqlmp –hlocalhost –uroot –p test >E:\db\test.sql
这一命令具体解释下:
这个命令就是备份test数据库,并且将备份的内容存储为test.sql文件,并且保存在E:\db下面;
命令当中-p 前面的test是数据库名,然后在数据库名后面要跟上一个”>”,然后接下来,就是写要保存的位置与保存文件的文件名;
将备份好的数据库导入到数据库当中去:也就是运行.sql文件将数据库导入数据库当中去->
首先你得创建数据库,然后运行如下命令:mysql –hlocalhost –uroot –p linux<E:\db\test.sql然后回车,再输入密码就可以啦;
解释下上面的命令:linux是就要导入的数据库名字,然后后面要紧跟着“<”符号,然后后面就是要导入的数据库文件;
将数据库导出保存成XML文件、从XML文件导入数据到数据库:
导出表中数据:mysql –X –h hostName –u userName –p Pwd –e “use DatabaseName;sql;” >xml文件名
或者用另外一种方式也行:mysqlmp –xml –h hostName –u userName –p pwd dbName tableName //这一种只用于显示在当前的mysql客户端,不保存到文件当中;
相关说明:-X代表的是文件的格式是XML,然后-e一写不能掉,还有就是要用双引号将要操作的语句括起来;单引号不行;
例如:mysql –X –hlocalhost –uroot –p –e “use test;select * from pet;”>E:\db\out.xml
从XML文件导入数据到数据库:
Insert into tableName values(1,load_file(‘filepath’));
例如:insert into pet values(1,load_file(“E:\db\out.xml”));
查看数据库状态与查询进程:
Show status;//查看状态
Show processlist;//查看进程
更改用户名,用以下命令:
Update set user=”新名字” where user=”旧用户名”;
给数据库用户设置管理员权限:
Mysqladmin –h host –u username –p pwd;
以root用户为例;
Mysqladmin –h localhost –u root –p 123;
存储过程与函数
存储程序和函数分别是用create procere和create function语句,一个程序要么是一个程序要么是一个函数,使用call语句来调用程序,并且程序只能用输出变量传回值;
要想在MySql5.1中创建子程序,必须具有create routine权限,并且alter routine和execute权限被自动授予它的创建者;
创建存储过程:
首先声明分隔符,所谓分隔符是指你通知mysql客户端你已经输入一个sql语句的字符或字符串符号,在这里我们就以“//”为分隔符;
Delimiter 分隔符\
如:delimiter //
再创建存储过程:
Create procere 存储过程名 ( )
声明存储过程开始:
begin
然后开始写存储过程体:
Select * from pet;
结束存储过程:
End;//
刚刚的例子全部写出来,完整的代码就是:
Delimiter //
Create procere spt () //注意,这个地方,存储过程名与括号之间要有个空格
Begin
Select * from pet;
End;//到这里,整个存储过程就算写完啦
执行存储过程:
Call 存储过程名 ();//
如,我们执行刚刚创建的存储过程,就是:
Call spt ();//
需要说明的是存储过程名后面一定要加个空格,而后面那个括号,则是用于传送参数的参数列表;另外,我们创建存储过程完成后,也只是创建了,但是只有调用call 存储过程名 ();//后才算执行完毕,才能看到存储过程的结果;