『壹』 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