1. char
固定長度,最長n個字元。
2. varchar
最大長度為n的可變字串。
(n為某一整數,不同資料庫,最大長度n不同)
char和varchar區別:
varchar必char節省空間,但在效率上比char稍微差一些。
說varchar比char節省空間,是因為varchar是可變字串,比如:用varchar(5)儲存字串「abc」,只占用3個位元組的儲存空間,而用char(5)儲存,則占用5個位元組(「abc 」)。
說varchar比char效率稍差,是因為,當修改varchar資料時,可能因為資料長度不同,導致資料遷移
3. nvarchar
nvarchar和varchar的不同主要是在對於資料的儲存方式上:
1). varchar:按位元組儲存資料
varchar(6),最多能儲存6個位元組的資料,比如:「哈哈哈」,「abcdef」......
備註:乙個中文字元在資料庫裡佔多少個位元組,要看unicode的編碼方式,比如:utf8在mysql上佔3個位元組,sqlserver的chinese_prc_ci_as佔2個位元組...
2). nvarchar:按字元儲存資料
nvarchar(6),最多能儲存6個字元/中文資料,比如:"哈哈哈哈哈哈",「abcdef」......
nvarchar(m)最大儲存的實際位元組長度=n*m(n跟據編碼方式而定),如果nvarchar儲存的是英文本元,也是根據編碼方式儲存n的位元組長度。也就是說,如果用nvarchar儲存英文本元,會浪費一半以上的儲存空間.
在大資料量應用中,使用char和nvarchar有可能導致大量的儲存空間的浪費
varchar(n)
長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。
nvarchar(n)
包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。
兩欄位分別有字段值:我和coffee
那麼varchar欄位佔2×2+6=10個位元組的儲存空間,而nvarchar欄位佔8×2=16個位元組的儲存空間。
如字段值只是英文可選擇varchar,而字段值存在較多的雙位元組(中文、韓文等)字元時用nvarchar
上面是乙個總結介紹,通過上面的介紹,可以知道。
varchar(4) 可以輸入4個字元,也可以輸入兩個漢字
nvarchar(4) 可以輸四個漢字,也可以輸4個字母,但最多四個
增insert into table1 values('fx','fy')
insert into table1(username,passworld) values('admin','123456')
insert into table1 select *from table2
刪delete from table1
delete from table1 where carno=001
改update table1 set name='abc',passworld='123456' where userid=001
查select * from table1 where carid=001 order by updatetime desc
select * from table1 where carid like '%001%' order by updatetime asc
select top 10 number,fx,fy from table1 order by updatetime desc
select top 10 * from table1 where carid=001 order by updatetime desc
select top 10 * from table1 order by updatetime desc
selcet * from table1 where carno in ('001','002','003') and updatetime >=23:12:56
select * from table1 where carno between 001 and 002
select * from tbregusers where snickname='sggn' and spassword='sggn'
select id ,name from table1
觸發器的使用
建立更新觸發器
create trigger up_table on student
for update
as if update(name)or update(***)
begin
update student2
set username=student.name,user***=student.***
from inserted student
where student.sno=student2.id
end
刪除觸發器
drop trigger up_table2
更新後兩個表的字段都更新
update student set name='wer' where sno=2
建立插入觸發器
create trigger in_table on student
for insert
as begin
insert into student2(username,user***) select name,***
from inserted student
end插入後兩個表額字段都插入了資料
insert into student(sno,name,***) values(3,'sggn','男')
SQL語句 資料型別
檢視資料所佔空間的兩個函式 檢視所佔位元組數 select length 你好,世界 from dual 檢視所佔字元數,即多少個字母,多少個漢字 select lengthb 您好,美女 from dual 比如 create table aaa a varchar2 6 insert into ...
SQL常用資料型別介紹
1.字串 char 定長字串,不夠時自動補齊。最大長度8000 text 用來儲存極其大量的資訊,可達2 varchar 可變長度的字串,最大長度8000 2.unicode 字串 nchar 最大長度8000 2 nvarchar ntext 3.日期和時間型別 datetime 8位元組,精度3...
sql與mysql資料型別 SQL 資料型別
mysql 資料型別 在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。text 型別 資料型別描述 char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及...