Ⅰ 如何用sql语句检测邮箱格式
自己没亲自写过 这是引用别人的 先申明一下 使用正则表达式比较好
CREATE FUNCTION F_EMAIL
(
@EMAIL VARCHAR(50)
)
RETURNS INT --返回1是正确;返回0是错误
BEGIN
DECLARE @VALUE INT,@LEN INT
DECLARE @TMP VARCHAR(50)
DECLARE @CHECK1 VARCHAR(50)
DECLARE @CHECK2 VARCHAR(50)
DECLARE @CHECK3 VARCHAR(50)
SET @TMP=RTRIM(LTRIM(@EMAIL))
SET @LEN=LEN(@TMP)
IF @LEN-LEN(REPLACE(@TMP,'@',''))=1 AND @LEN-LEN(REPLACE(@TMP,'.',''))>=1 AND CHARINDEX('@',@TMP)<>1
BEGIN
SET @CHECK1=LEFT(@TMP,CHARINDEX('@',@TMP)-1)
SET @CHECK2=STUFF(@TMP,1,CHARINDEX('@',@TMP),'')
SET @CHECK3=STUFF(@CHECK2,1,CHARINDEX('.',@CHECK2),'')
SET @CHECK2=LEFT(@CHECK2,CHARINDEX('.',@CHECK2)-1)
IF LEN(@CHECK1)>0 and LEN(@CHECK2)>0 AND LEN(@CHECK3)>0
BEGIN
IF PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK1)>0
SET @VALUE=0
ELSE
BEGIN
IF PATINDEX('%[^a-zA-Z0-9_-]%',@CHECK2)>0
SET @VALUE=0
ELSE
BEGIN
IF CHARINDEX(UPPER(@CHECK2),UPPER('gmail,QQ,163,sina,yahoo'))>0
BEGIN
IF PATINDEX('%[^a-zA-Z0-9._-]%',@CHECK3)>0
SET @VALUE=0
ELSE SET @VALUE=1
END
ELSE SET @VALUE=0
END
END
END
ELSE SET @VALUE=0
END
ELSE SET @VALUE=0
RETURN @VALUE
END
--测试
create table tb
(
id int identity,
email varchar(50),
CONSTRAINT chk_email CHECK (dbo.F_EMAIL(email)=1)
)
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT '[email protected]'
insert into tb SELECT 'AS@[email protected]'
/*
(所影响的行数为 1 行)
服务器: 消息 547,级别 16,状态 1,行 1
INSERT 语句与 COLUMN CHECK 约束 'chk_email' 冲突。该冲突发生于数据库 'Test',表 'tb', column 'email'。
语句已终止。
(所影响的行数为 1 行)
(所影响的行数为 1 行)
服务器: 消息 547,级别 16,状态 1,行 1
INSERT 语句与 COLUMN CHECK 约束 'chk_email' 冲突。该冲突发生于数据库 'Test',表 'tb', column 'email'。
语句已终止。*/
SELECT * FROM TB
/*
id email
----------- --------------------------------------------------
1 [email protected]
3 [email protected]
4 [email protected]
(所影响的行数为 3 行)
*/
Ⅱ 用T_SQL语句在学生表中添加新列电子邮件,类型为字符型,长度为二十个字符,允许为空
alter table 学生表 add email char(20)
Ⅲ sql查询邮箱使用情况
create table #temp (email varchar(100))
insert into #temp (email) values ('[email protected]')
insert into #temp (email) values ('[email protected]')
insert into #temp (email) values ('[email protected]')
insert into #temp (email) values ('[email protected]')
insert into #temp (email) values ('[email protected]')
insert into #temp (email) values ('[email protected]')
select substring(email,PATINDEX('%@%',email)+1,len(email)-PATINDEX('%@%',email)),count(*)
from #temp
group by substring(email,PATINDEX('%@%',email)+1,len(email)-PATINDEX('%@%',email))
drop table #temp
Ⅳ 以学生表为数据源,用sql语句实现选择查询,查找所有学生信息,该怎样写
select*from学生表
Ⅳ SQL查询语句,如何查询 一个邮箱的域名,比如一个邮箱为[email protected],使用查询语句如何返回163.com
select substring(email_address, charindex('@',email_address,1)+1,len(email_address) - charindex('@',email_address,1)) as domain
from tablename
Ⅵ SQL数据库查找E-mail域名代码!!!
select right(E-mail, length(E-mail) - instr(E-mail, 1, '@'))
from table
where 学号 = 'y21003007'
right(str, N):取字符串str右边起N位字符
length(str): 取字符串N的长度
instr(str,1,char):从字符串str的第一位开始,找字符char首次出现的位置
这三个函数不同数据库可能名称不一致
Ⅶ 关于SQL数据库查询语句的问题!高手帮忙下~
发我邮箱[email protected]
9.检索XK数据库的COURSE表的课程信息,要求显示报名人数与限选人数之比.
select *,WillNum/LimitNum as rate from Course
10. 检索课程表中最小的报名人数、最大的报名人数以及平均报名人数.
select min(WillNum) as a,max(WillNum) as b,avg(WillNum) as c from Course
11.检索课程信息(包括报名人数与限选人数之比),要求检索结果按照报名人数升序排序.
select *,WillNum/LimitNum as rate from Course
order by WillNum
26.按课程分类统计平均报名人数.
select kind,avg(WillNum) as '平均数' from Course
group by Kind
27.检索”信息技术”类课程的平均报名人数.
select avg(WillNum) as '平均数' from Course
where Kind='信息技术'
28.检索平均报名人数大于25人的课程分类和类平均报名人数.
select Kind,avg(WillNum) from Course
group by Kind
having avg(WillNum)>25
29.检索报名人数大于平均报名人数的课程编码,课程名称,报名人数.
select CouNO,CouName,WillNum from Course
where WillNum>(select avg(WillNum) as '平均数' from Course)
30.从班级表中检索班级名,从系表中检索系部名称,使用UNION运算符合并上面两个结果.
select ClassName from Class
UNION
select DepartName from Department
25.按类显示课程表的课程编码,课程名称,课程分类,报名人数,并计算每类平均报名人数.
select a.couno,a.couname,a.kind,b.avg_wn
from course a,(select kind,avg(willnum) as avg_wn from course group by kind) b
where a.kind=b.kind
order by a.kind
Ⅷ sql查询。。。。。
select 学好,姓名,联系电话,家庭地址 from 什么表 where 班级=0701
select 学好,姓名,联系电话 from 什么表 where 姓名=‘张三’
select count(学生) from 什么表 where 入学年份=2011
select max(班级人数) from 什么表 where 上课状态=‘上课’
......
我就不全部写了 你也知道 其实这很简单,随便网络一下都有的。
http://www.w3school.com.cn/sql/ 可参考这些语法。
前面简单的查询直接根据条件查询即可。
后面有什么状况下的可以有sql函数来得到.
自己学习 记忆深刻
Ⅸ 跪求SQL学生宿舍管理系统 数据库SQL 发我邮箱 .谢 拉
额,如有,发一份到我邮箱,谢谢,[email protected]
Ⅹ 编写SQL语句,更新邮箱字段email等于名字name加上qq.com,怎样写
UPDATE 表名称 SET email=concat(name,‘qq.com’)WHERE 列名=“修改的人的标识”。
Update 语句用于修改表中的数据。
语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值。
update与select结合使用,update用来更新用select选择出的数据。
(10)sql查询学生使用的邮箱扩展阅读:
update使用注意:
用途:更新表中原有数据
1、单独使用则更新相应表中相应的列的全部的数据,使用时需要注意,否则会对数据表的数据造成破坏。
2、为了修改制定的记录,可以使用where匹配字段,这样就可以对修改记录进行筛选,修改指定的记录。
3、set后面,更新字段值,既可以一次一项,也可以一次多项。
SQL功能:
1、SQL数据定义功能,能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。
2、SQL数据操纵功能,包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能,主要是对用户的访问权限加以控制,以保证系统的安全性。