SQLServer(MS SQLServer)
DBMS:数据库管理系统
1、开启SQLServer服务
2、进入数据库
3、创建数据库:
创建的SQLServer应该包含两个文件
mydb.mdf
mdf---主要数据文件,所有存储在mydb数据库的数据信息,都是存储在该文件
mydb.ldf
ldf----日志数据文件,它主要存储数据库的日志信息。主要包含一些操作信息
4、如果要把创建好的数据库,拷贝其他地方,必须先“分离数据库”
5、要把其他的数据库,添加到当前的数据库系统中,需要"附加数据库"
---------------------------
数据库系统中包含两种类型的数据库:
a、系统数据库(这些数据库由系统提供,主要存储系统信息)
b、用户自定义数据库(这些数据库用于存放用户自己的信息)
系统数据库master数据库称为:核心数据库
这个数据库用于存放其他数据库的系统信息
---------------------------
数据库中可以包含数据表,数据表用于存放具体的数据
数据表中的数据类型:
int ----用于存放整数
varchar(长度)-----用于存放字符串
varchar(20) ----可以存放20个长度的字符串
char(20) ----可以存放20个长度的字符串
datetime 日期时间类型 yyyy-MM-dd
------------------------------------------------
varchar(20) 与 char(20) 都可以存放20个长度的字符
区别在于:
char(20) 它是一种空间大小不可变的字符类型
----------------------
name char(20)--定义一个字段,它的空间大小可以存放20个字符
如果实际存的时候,只存了1个字符,系统将依然占用20个空间大小
--------------------------------------------------------------
varchar(20) 它是一种空间大小可以动态改变的字符类型
name varchar(20)--定义一个字段,它的空间大小可以存放20个字符
如果实际存的时候,只存放了1个字符,系统就会把空间收缩成一个空间的大小
---------------------------------------------------------
char 这种类型,存了数据以后,它不会检查空间的使用情况,不会额外消耗资源,所以速度会更快一些
varchar 这种类型存了数据以后,会检查空间是否用完,这个检查的过程是需要消耗资源的,所以它的速度相对慢一些
如果内容的长度是一个固定值,使用char速度会更快
如果内容的长度不确定,使用varchar类型,更节约空间
-----------------------------------------------------
nchar与nvarchar 它们之间的区别与char与varchar相同
------------------------------------------------------
nchar 与 char
nvarchar 与varchar
----------------------------
char(20) -----------这种类型,一个汉字,要占到2个长度
nchar(20)-------这种类型,一个汉字,只占一个长度
char,varchar这两种类型:
1个数字,1个字母,1个符号,只占1个长度
而1个汉字要占2个长度
-----------------------------
nchar,nvarchar 这种类型:
1个数字,1个字母,1个符号以及1个汉字,都占1个长度
数据库中可以包含数据表,数据表中可以存放数据
数据表是由行来构成
每一行是由列来构成
数据表在存储数据的时候,要保证数据的完整性
---------------------------------------
数据完整性:
1、实体完整性:
每一条数据,都可以被唯一的标识
要保证数据的实体完整性,有三种方式:
A、设置主键(如果某一列,设置成主键,这一列,就不允许出现重复数据)
primary 主要的
key 键
primary key 主键
---------------------------------------------------------------
B、设置标识列---自动增长列 (设置为标识列以后,这一列的值,用户不能指定,而是由系统生成一个编号)
标识种子: 初始值从几开始
标识增量: 每一次递增几个数
已经生成的生成过的标识列,即使把这一条数据删除掉,标识也不会重新生成
C、设置唯一键:这一列的数据不能重复
-----------------------------------------
可以同时指定,某一列,既是主键,也是标识列
主键,唯一键
主键约束
唯一约束
------------------------------------
一个表某一列设置为主键以后,可以保证该列的值是不重复,并且设置为主键列还可以与其他的表建立主外键关系
唯一键:只能保证该列的值不重复,但是,不能与其他的表建立主外键关系
数据完整性包括:
1、实体完整性(每一条数据可以被唯一标识)
A、主键
B、标识列
C、唯一键
2、域完整性(保证字段的值是有效的)
A、设置非空约束
B、设置检查约束 (限制内容的取值)
C、设置默认值约束
3、引用完整性(保证两个表之间可以正确建立,主外键关系)
-------------------------------------------
检查约束的命名习惯: ck_表名_列名
len(sname)>2 and len(sname)<7
限制姓名的长度必须在3-6之间
gender='男' or gender='女'
限制性别只能是'男'或者'女'
age>=1 and age<=150
限制年龄必须在1-150之间
地址设置默认值