當前位置:首頁 » 存儲配置 » sybase創建存儲過程

sybase創建存儲過程

發布時間: 2022-11-02 18:21:33

Ⅰ 請教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 資料庫的存儲過程怎麼寫

//給你個舉個列,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 存儲過程名 ();//後才算執行完畢,才能看到存儲過程的結果;

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372