数据库常用对象:
1:表(包含数据库中所有数据的对象、行和列组成,用于组织和存储数据)
2:字段(表中的列,一个表可以有多个列,自己的属性数据类型(决定了该字段存储了哪种类型的数据),大小(长度))
3:视图:(表虚拟表)一张或多张表
4:索引:为了给用户提供一种快速访问数据的途径,索引是依赖于表而建立的,检索数据时,不用对整个表进行扫描。
5:存储过程:是一组为了完成特定功能的SQL语句的集合(可以查询、插入、修改、删除),编译后,存储在数据库中,以名称进行调用,当调用执行时,这些操作就会被执行。
6:触发器:在数据库中,属于用户定义的SQL事务命令集合,针对与表来说,当对表执行增删改查操作时,命令就会自动触发而去执行。
7:约束:对数据表的列,进行的一种限制。可以更好地规范表中的列。
8:缺省值:对表中的列可以指定一个默认值,当进行插入时,如果没有为这个列插入值,那么就会自动预先设置默认值进行自动补充。
数据类型介绍
数值型:
1)整型数据:bigint(8字节),int(4字节),smallint(2字节) , tinyint(1字节)
2)浮点型:float近似数值 存在精度损失 real 近似数值,float(24)
decimal精度准确,不存在精度损失 decimal(18,2)
- 货币类型:money,smallmoney
- 二进制数据类型:
bit(允许0、1或null)
binary(固定长度的二进制数据,最多8000字节)
varbinary(可变长的二进制数据,最多8000字节)
varbinary(max)
image(可变长的二进制数据,最多2GB)
字符型:
- character字符串:char 固定长度 8000
varchar 可变长字符串8000
varchar(max)
text 可变长字符串
- unicode字符串
nchar(n)、nvarchar(n)、nvarchar(max)、ntext 存储大小character字符串的一半
前面带n,存储中文汉字还是英文或数字,长度都是1,存储大小2个汉字。不带n,英文或数字,就是1个长度,中文就是两个长度
日期型:
- datetime 精确度高
- datetime2 精确度更高(100纳秒)
- smalldatetime 精度到一分钟,时间范围小
- date 存储日期(不包含小时、分钟)
- time 存储时间
其他类型:
1)uniquedentifier guid全球唯一标识符
创建主键、外键:
主键:唯一标识的一条数据,主键值唯一、不能为空。
标识列:一个列设置成标识列,它就不能手动插入。插入时,自动生成的,这个列,类型必须是不带小数的数值型。
外键:在两个表要建立之间的联系时使用(创建一个列为外键时,他在另外一个比表必须是主键)
foreign key(school_id) references school(id)
(school为一张表名,id为列名)
约束条件:
规定表中的数据规则。如果存在违反约束的数据行为,行为就会被阻止。在什么时候创建约束?创建表之后,使用脚本创建表,可以在创建的过程中,也可以创建后再来建立约束。
分类:
主键:Primary Key约束外键: Foreign Key约束 加强两个表的一个列或多个列数据之间的连接的。先建立主表的主键,然后在定义从表中的外键。只有主表的主键才能被从表的用来作为外键使用。主表限制了从表更新和插入的操作。当删除主表中的某种数据,应该是先删除从表中相关的数据,再删除主表。
Unique约束:唯一性约束 确保表中的一列数据没有相同的值。与主键约束符合,但又不同,主键只能有一个,但一个表中可以定义多个唯一的约束
Check约束:通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。
Default约束:默认值约束。用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列。
如果没有设置默认值,系统就会默认为NUll值