删除操作
本篇文章重点在于SQL中的各种删除操作
题目一
删除表中的学号不全是数字的那些错误数据,学号应该是数字组成,不能够包含字母空格等非数字字符。方法之一:用substr函数,例如Substr(sid,1,1)返回学号的第一位,判断是否是数字。
delete from test3_01
where sid not in
(select sid
from test3_01
where regexp_like(sid, '^[0-9]+$'))
关键点:
1、利用正则表达式来实现
2、^:表示字符串开始;$:表示字符串结束;[0,9]:表示10个数字;+:表示有一种或多种前面[]中的数
3、允许空白字符可以用'^[0-9\s]+$'
题目二
删除表中的出生日期和年龄(截止到2012年的年龄,即年龄=2012-出生年份)不一致的那些错误数据。
delete from test3_02
where age <> 2012 - extract(year from birthday)
关键点:
Extract函数是在Oracle数据库中用于从日期或时间间隔类型数据中提取特定部分,如年、月、日、小时、分钟等的一个函数