常用Sql语句及sql数据类型

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(sex)
begin
update student2
set username=student.name,usersex=student.sex
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,usersex) select name,sex
from inserted  student
end

插入后两个表额字段都插入了数据
insert into student(sno,name,sex) values(3,'sggn','男')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值