Boolean
tinyint(1) 由于MySql中没有boolean类型,所以会用到tinyint[1]类型来表示,在mysql中boolean=tinyint[1]
把长度变大 ,或者查询出来的字段*1 就会解决查出来的结果是 true或false的问题
字符类型
declare @a1 varchar(20),@a2 int,@a3 char(6)
select @a1='char(2)可以存',@a2=1,@a3='个中文'
select @a1+cast(@a2 as varchar(4))+@a3
从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
char(n)
varchar(n) 是变长类型,也受n限制,超出n的存不下
nvar(n) 是unicode类型char,英文单词和中文都用一个存
char
int
text
前面加n的是unicode类型,一个占2字节,存英文有损失,但又中文时尽量用,字符串处理时用,统一中英文长度。
nchar
ntext
前面加var的是变长类型,也有最大长度限制,节省空间用的,索引效率会降低。
varchar
nvarchar
int
float
decimal,numeric
money
date
declare @t1 datetime,@t2 datetime,@t3 int
select @t1=getdate() --得到当前时间
select @t2=getdate()
select @t2=dateadd(hh,3,@t1) --给t1 加三个小时
select @t3=datediff(ss,@t1,@t2) --得到t1和t2相差多少s
select datepart(yy,@t2) --得到t2的年
select @t1,@t2,@t3
yy mm dw dd hh mi ss ms
qq(quarter)
wk(week of year)
dy(day of year)
set
选项表 , 逗号分隔的多个值。
dreate table votes(
username varchar(30),
hobby set('登山','游泳','编程','唱歌'),
);
insert into votes(username,hobbby,gender) values('Joy','编程,唱歌');
select * from votes where find_in_set('编程',hobby);
评论区