unicode编码:两个字节表示一个字符
非unicode编码:一个字节表示一个字母,两个字节表示一个汉字
可以加括号,括号内设置最大的字符个数,限定位数
char 定长 最大8000字符,非unicode编码
varchar 变长 最大8000字符(非unicode)
varchar可以对多出的空间进行回收,节省空间,虽然优点,但以下情况要用char
数据长度定长,应该用char,一旦在select起来,效率更高
nvchar
nvchar(10)
char都是定长不可变8000位非unicode,
var转为可变:多出的空位会被回收节省空间
n转为unicode:从一个字节表示一个字符变成两个字节表示一个字符
括号内的数字就是限定字符个数,不是位数
ntext 可变长度unicode数据,最大2的30次方-1
text可变非unicode数据最大2的31次方-1
区别text字节格式存储引文,可存中文但有时会乱码
ntext多字节格式存储unicode,可存各种文字
unicode两字节,可存英文中文
ascii一个字节,英文
BIG5 繁体
iso 8895-1
gb2312 国标码中文简体
GBK 支持更多中文简体
日期类型:
datetime(表示日期)
timestamp(时间戳)
一般情况下推荐用datetime
--sql server提供专门的时间函数 getdate()
insert into 表名 value(getdate())
图片:
image保存图片,但很少用,一般用路径保存图片,软件公司常用图片服务器和图文技术。
如果图片有安全要求,可以考虑放入数据库,而且图片不建议太大
视频:
binary字段可以存放,但往往都把视频放在文件服务器上,server中只保存文件路径,存取效率高
如果视频有安全要求,可以考虑放入数据库,而且视频不建议太大
独立的文件服务器专门存文件,其他主机的访问依靠路径访问
create table clerk(clkid int primary key,
clkname nvarchar(10),age int)
添加:insert into clerk values(1,‘贾宝玉’,12)
insert into clerk values(1,‘贾宝玉ta爹’,12)
添加第二个出错,因为第一个字段的值为主键,唯一标示,不可重复
insert into clerk (clkid,clkname) value(3,'林黛玉')
只给前两个字段赋值,当插入部分字段,需要在表名后指定字段列表,
主键不可重复,不可少,主键不可省略,不允许为空。
改:update 表 set 字段=值,字段=值…… where 条件
如果条件是null,不能写 字段=null,应该写 字段 is null
sqlserve的逻辑语句 and 和 or 或