mysql常用导出数据命令:
1.mysql导出整个数据库
mysqldump
-hhostname
-uusername
-ppassword
databasename
>
backupfile.sql
mysqldump
-hlocalhost
-uroot
hqgr>
hqgr.sql
(如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下)
2.mysql导出数据库一个表
mysqldump
-hhostname
-uusername
-ppassword
database
tablename>
导出的文件名
mysqldump
-hlocalhost
-uroot
hqgr
t_ug_user>
user.sql
3.mysql导出一个数据库结构
mysqldump
-hhostname
-uusername
-ppassword
-d
--add-drop-table
databasename>d:hqgrstructure.sql
-d
没有数据
--add-drop-table
在每个create语句之前增加一个drop
table
4.如果需要导出mysql里面的函数或者存储过程
mysqldump
-hhostname
-uusername
-ppassword
-ntd
-R
databasename
>
backupflie.sql
mysqldump
-hlocalhost
-uroot
-ntd
-R
hqgr
>
hqgr.sql
其中的
-ntd
是表示导出存储过程;-R是表示导出函数
mysql常用导入数据的命令:
1.mysql命令
mysql
-hhostname
-uusername
-
ppassword
databasename
<
backupfile.sql
2.source命令
mysql>source
backupfile.sql
php调用mysql存储过程和函数的方法存储过程和函数是MySql5.0刚刚引入的。关于这方面的 *** 作在PHP里面没有直接的支持。但是由于Mysql PHP API的设计,使得我们可以在以前的PHP版本中的mysql php api中支持存储过程和函数的调用。
在php中调用存储过程和函数。
1。调用存储过程的方法。
a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,
一个php变量(也可以不必,只是没有php变量时,没有办法进行动态输入),一个Mysql
变量。
b。如果存储过程有OUT变量,声明一个Mysql变量。
mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句。
入set @mysqlvar=$phpvar
c。使用mysql_query()/mysql_db_query()执行mysql 变量声明语句。
mysql_query("set @mysqlvar=$pbpvar")
这样,在mysql服务器里面就有一个变量,@mysqlar。如果是IN参数,那么其值可以由phpar传入。
d。 如果是存储过程。
1。执行 call procedure()语句。
也就是mysql_query("call proceduer([var1]...)")
2. 如果有返回值,执行select @ar,返回执行结果。
mysql_query("select @var)"
接下来的 *** 作就和php执行一般的mysql语句一样了。可以通过mydql_fetch_row()等函数获得结果。
如果时函数。 直接执行 select function() 就可以了。
$host="localhost"
$user="root"
$password="11212"
$db="samp_db"
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql")
mysql_select_db($db,$dblink)
or die("can't select samp_db")
$res=mysql_query("set @a=$password",$dblink)
$res=mysql_query("call aa(@a)",$dblink)
$res=mysql_query("select @a",$dblink)
$row=mysql_fetch_row($res)
echo $row[0]
从存储过程返回表类型的值也有二种:1.存储过程使用浮标参数,即同时指定CURSOR VARYING OUTPUT项.调用者可以使用while及fetch循环遍历该浮标.2.直接将存储过程返回的结果集插入到表中,即使用insert into 表名 exec 存储过程.此种方式中注意存储过程返回的结果集列与insert的列要完全对应,可以在insert中指定列名来保证对应关系.------------------------------------------------------------------------------测试:----------------------------------------------------------------------------------建立测试用的临时表create table #tmp (colx int,coly int)insert into #tmp values(1,2)insert into #tmp values(2,3)insert into #tmp values(3,4)select * from #tmpGO----创建返回游标的存储过程create proc sp_c @cur CURSOR VARYING OUTPUTASbeginset @cur = CURSOR for select colx from #tmpopen @cur /*该过程返回游标,该游标为colx列的查询结果*/endGO----创建返回表的存储过程create proc sp_dasselect coly from #tmp /*该过程返回coly列的查询结果*/go----创建用于调用以上二个存储过程的存储过程create proc sp_easbegindeclare @x intdeclare @cur cursor----接收游标,并遍历游标EXEC sp_c @cur OUTPUTfetch next from @cur into @xwhile (@@FETCH_STATUS = 0)beginprint @xfetch next from @cur into @xENDclose @curdeallocate @cur----将存储过程返回的列值再重新插入源表中insert into #tmp(coly) EXEC sp_dselect * from #tmpendGOEXEC sp_edrop proc sp_cdrop proc sp_d欢迎分享,转载请注明来源:内存溢出
评论列表(0条)