‘壹’ sql server数据库中是电子邮件的应该用什么类型
email在数据库中可用varchar2类型。
因为email地址是字符,而varchar2就是存储字符类型的。
1、创建测试表:
1
2
3
4
create table test
(id int,
name varchar2(10),
email varchar2(50));
其中varchar2(50)中的50为长度,可以适当扩展。
2、插入数据:
1
2
insert into test values (1,'张三','[email protected]');
commit;
3、结果:
‘贰’ SQL Server 2005中“邮箱”的数据类型该设置成什么
可以设置成char(?)型,?表示字符串的长度,可以根据需要自己设置,如20、30、40
‘叁’ 如何用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 行)
*/
‘肆’ 数据库表字段邮箱是什么类型的
VARCHAR。长度一般设为50。
VARCHAR:存储变长数据,其长度不超过 8KB。存储效率没有CHAR高。
如果一个字段可能的值是不固定长度的,但是知道这清碰个字段是不可能超过10个字符,那么把它定义为 VARCHAR(10)。
Varchar 对每个英文(ASCII)字符都占用2个字节,答蔽谈对一个汉字也只占用两个字节。
VARCHAR类型的实际长度是它的值的实际长度+1。因为VARCHAR字段的长度是不固定的,所以这一个字节用于保存实际使用了多大的长度。
(4)sql邮箱是什么扩展阅读:
char:存储定长数据,CHAR字段上的索引效率级高。其长度最多为 8KB。超过8KB的ASCII 数据可以使用Text 数据类型存储。
比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。
所以,从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节。
TEXT:存储并激可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
‘伍’ 在sql 2000中 邮箱的数据类型
选varchar就行了,然后用检查约束限制格式,就OK了
‘陆’ SQL数据库中email的@约束怎么写
SQL数据库中email的@约束可用check语句。
工具:sqlserver 2008 R2
步骤:
1、打开sqlserver 2008 R2中的SSMS,连接到指定数据库。
2、创建员工表,其中包含email字段,并且要对email字段加以@的约束,语句如下:
createtable员工
(工号varchar(10),
姓名varchar(20),
性别varchar(2),
emailvarchar(50)check(emaillike'%@%'))
3、测试email字段包含@的数据,可正常插入。
insertinto员工values('001','东东','男','[email protected]')
‘柒’ 什么是AD,DHCP ,DNS, IIS ,Web ,Email,MssQL分别是什么
AD是域控制器,DHCP是动态分配服务器、DNS是域名服姿清务器、IIS是系统组件、Web网站服务器、Email是邮件服务器贺局、MySQL是数据禅册让库。
‘捌’ SQL Server中如何配置数据库邮件
SQL Server中的数据库邮件功能可以实现自动发送邮件,这个功能在实际的项目中非常的有用。那么如何配置SQLServer的数据库邮件功能呢?下面我给大家分享一下。
工具/材料
SQLServer Managment
首先打开数据库的管理文件夹,然后右键单击数据库邮件选项,选择配置数据库邮件,如下图所示
接下来会弹出数迹拆据库邮件配置向导界面,这里直接点击下一步即可,如下图所示
然后需要选择配置任务,这里我们选择第一个选项即可,如果已经配置过数据库邮件的话则可以选择第二个选项,如下图所示
接下来在新建配置文件界面中给配置文件起一个名字,然后点击添加按钮,如下图所示
然后会进入新建数据库邮件账户界面,在这个界面中需要配置邮件服务器的地址以及端口,如下图所示
添加好邮件账户以后回到配置文件界面,这个时候新添加的邮件账户就在账户列表中了,然后点姿灶枣击下一步,如下图所示
接下辩亮来进入管理配置文件安全性的界面,我们勾选配置文件,然后点击下一步即可,如下图所示
然后需要进行系统参数的配置,这里大家根据自己的需要配置即可,如果没有特殊要求直接默认即可,如下图所示
接下来SQL Server会把刚才的配置都列举出来,我们检查一下,没有问题的话直接点击完成即可,如下图所示
最后我们打开数据库邮件的发送界面,用刚才配置好的数据库邮件发送一封测试邮件试试,如果正常发送则证明配置没问题
‘玖’ SQL中email的约束条件怎么写
一分都不枝厅银给,真铁公鸡也
假如我的邮伏纯箱是:abcdefg.163.com或hjk.sina.com
建表
CREATE TABLE user
(
......
email char(30) CHECK(email LIKE '%.163.com' OR email LIKE '.sina.com)
.....
);
但是猛宴个人觉得email就一个字符串而已,email char(30),这样就行了吧
‘拾’ 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