您的位置:首页 > 数据库 > MySQL

MySQL学习笔记(十九)―― MySQL的命令集(9)

2008-03-03 21:28 429 查看
24) 声明命令
DECLARE name[/i] [, …] sql_type [DEFAULT value[/i]]
DECLARE name[/i] CURSOR FOR statement[/i]
DECLARE condition[/i] CONDITION
FOR {SQLSTATE [VALUE] sqlstate[/i] | mysql_error_code[/i]}
DECLARE {CONTINUE | EXIT | UNDO} HANDLER
FOR {condition[/i] | SQLSTATE [VALUE] sqlstate[/i] | mysql_error_code[/i] | SQLWARNING | NOTFOUND | SQLEXCEPTION } statement[/i]
第一种语法定义存储过程中的局部变量。
第二种语法声明存储过程中使用的游标。
第三种和第四种语法定义特定状态下的状态处理器,其中第三种语法创建一个与特定SQL状态或MySQL错误码相关联的状态,第四种语法定义了基于已定义状态或其它状态的状态处理器。
25) 分隔符命令
DELIMITER delimiter[/i]
修改SQL语句中所用的分隔符。默认分隔符是分号。修改分隔符最常使用的环境是定义存储过程时。注意在修改分隔符时,最好避免使用转移符(\)。
示例: DELIMITER //
26) 删除命令
DELETE [LOW_PRIORITY | QUICK]
FROM table[/i]
[WHERE clause[/i]]
[ORDER BY column[/i], …] [LIMIT n[/i]]
DELETE [LOW_PRIORITY | QUICK] table1[/i][.*], table2[/i][.*], …, tablen[/i][.*]
FROM tablex[/i], tabley[/i], …, tablez[/i]
[WHERE clause[/i]]
DELETE [LOW_PRIORITY | QUICK]
FROM table1[/i][.*], table2[/i][.*], …, tablen[/i][.*]
USING references[/i]
[WHERE clause[/i]]
由表中删除行。如果不带WHERE子句,则删除整个表并创建新的空表;如果有WHERE子句,则删除与条件相匹配的行,并返回删除的行数。
当省略WHERE子句而删除整表时,语句不会返回删除的行数,如果你确实需要删除的行数,可以使用如下命令:DELETE FROM TBL WHERE 1 = 1;
LOW_PRIORITY可使MySQL等待所有客户端的读操作都完成后才执行删除。对于MyISAM表,QUICK可使删除时不用合并索引,这样可以提高删除的速度。
LIMIT子句可以限定删除的最大行数。
当删除MyISAM表时,MySQL只是删除对空间的链接,操作系统并不回收空间,后续的插入操作会占用删除的空间,不过,如果你需要立即回收空间,可以运行OPTIMIZE TABLE语句或使用mysqlcheck工具。
后两种语法可由多个表删除列。
删除时需要拥有数据库的DELETE权限。
示例: DELETE FROM olddata
DELETE FROM sales WHERE year = 2005本文出自 “第二次启航” 博客,请务必保留此出处http://riser.blog.51cto.com/252482/63999
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: