数据类型
整型 int
小数 double
精确度要求高的 ———Decimal(18,4)
对应Java中的类型 BigDecimal
字符串:nvarchar(32) varchar char
char:定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间)
varchar:可变字符串
nvarchar()防止乱码出现
varchar(n),nvarchar(n) 中的n怎么解释:
nvarchar(n)最多能存n个字符,不区分中英文。
varchar(n)最多能存n个字节,一个中文是两个字节。
所占空间:
nvarchar(n)一个字符会占两个字节空间。
varchar(n)中文占两字节空间,英文占一个。
n的取值范围:
nvarchar(n)?? n的范围是:1与4000之间
varchar(n)?? n的范围是:1与8000之间
n的大小是否会影响性能:
varchar及nvarchar里的长度 n 不会影响空间大小及性能。除非n是max并且内容大于4000或8000
设置n更多的是业务需要,如限制身份证只能输入18位,再多就报错,或者防止恶意攻击撑爆硬盘。对空间及性能都没有影响
n设置多大比较好:
既然对空间及性能都没有影响,那我们只要考虑业务需要就可以了,我分析过微软的数据库,大都设置为:256,也会看到64,128,512,max等,可能是便于记忆吧。
varchar(n),nvarchar(n)存储空间举例解释:
包含 n 个字符的可变长度 Unicode 字符数据。字节的存储大小是所输入字符个数的两倍。?
两字段分别有字段值:我和coffee?
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。?
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。
varchar和nvarchar如何选择?
varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节.
3.日期类型
DateTime
函数一定要加小括号!!!!
2. 创建数据库
create database 数据库名
创建表
create table 表名(
列名 类型(int) 主键(primary key) 自增(auto_increment) 属性(not null),
);
添加记录
insert into 表名(列名) values(值);
约束添加:
1.主键约束
alter table 表名1
add constraint pk_列名1 primary key 表名2(列名2);
删除主键
alter table 表名 drop primary key
2.外键约束
alter table `表名1` add constraint fk_表名1_表名2
foreign key (`表1中的列名`) references `表2`(表2中的列名);
3.唯一约束
alter table 1表 add constraint uk_l.1列 unique key(1.1列);
4.添加默认约束
alter table 表名
alter column 列名 set default '默认值';
5.检查约束(不起作用)
alter table 表名
add constraint ck_列名 check (条件);
3.不会设置外键
解析:1.找到外键表 1的一方是主表
2.外键表中有非法数据
3.主外键表中公共列的类型必须相同
4.什么是引擎?
解析:能让程序启动并执行的一个程序,也称之为驱动。
5.
1.修改表名
将student改成student2
alter table 旧表名 rename 新表名
2.添加列
alter table 1 add 1.1 varchar(32) not null;
3.修改列名
alter table 表名 change 列名 新列名 (类型)bit not null;
4.删除字段
alter table 表名 drop 字段名