免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1461 | 回复: 0
打印 上一主题 下一主题

MySQL学习笔记(十九)—— MySQL的命令集(9) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-05 17:08 |只看该作者 |倒序浏览
24)  声明命令
DECLARE name [, …] sql_type [DEFAULT value]
DECLARE name CURSOR FOR statement
DECLARE condition CONDITION
FOR {SQLSTATE [VALUE] sqlstate | mysql_error_code}
DECLARE {CONTINUE | EXIT | UNDO} HANDLER
FOR {condition | SQLSTATE [VALUE] sqlstate | mysql_error_code | SQLWARNING | NOTFOUND | SQLEXCEPTION } statement
第一种语法定义存储过程中的局部变量。
第二种语法声明存储过程中使用的游标。
第三种和第四种语法定义特定状态下的状态处理器,其中第三种语法创建一个与特定SQL状态或MySQL错误码相关联的状态,第四种语法定义了基于已定义状态或其它状态的状态处理器。
25)  分隔符命令
DELIMITER delimiter
修改SQL语句中所用的分隔符。默认分隔符是分号。修改分隔符最常使用的环境是定义存储过程时。注意在修改分隔符时,最好避免使用转移符(\)。
示例:     DELIMITER //
26)  删除命令
DELETE [LOW_PRIORITY | QUICK]
FROM table
[WHERE clause]
[ORDER BY column, …] [LIMIT n]
DELETE [LOW_PRIORITY | QUICK] table1[.*], table2[.*], …, tablen[.*]
FROM tablex, tabley, …, tablez
[WHERE clause]
DELETE [LOW_PRIORITY | QUICK]
FROM table1[.*], table2[.*], …, tablen[.*]
USING references
[WHERE clause]
由表中删除行。如果不带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
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68342/showart_727253.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP