常用Sql語句及sql資料型別

2021-07-04 14:40:11 字數 2904 閱讀 4506

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 儲存可變長度的字串 可包含字母 數字以及...