sql server 01


1. 数据库管理系统(DateBase Management System )DBMS

  1. 是专门为管理数据库而设计的一个电脑软件系统
  2. 分为两种:

(1)关系数据库:建立在关系模型基础上的数据库,比如 SqlServer , MySQL, Oaracle, Access

​ 所以 SqlServer是数据库的一个管理软件,利用此工具建立一个数据库。

(2)非关系数据库:与关系数据库不同点就是,不使用SQL作为查询语言

  1. 数据库(DateBase)DB:

    按照一定的数据结构来组织,存储和管理数据的仓库。是存储在一起的相关的数据的一个集合。

  2. 数据库系统:由数据库和数据库管理系统组成。

    2. 打开数据库:

    (1)启动服务:可以使用 SQL SERVER配置管理器

    (2)打开 SQL SERVER Management Studio ,使用工具连接到数据库

    可以使用Windows身份验证 :

    ​ 要求必须先登录Windows,数据库装到了某个Windows上(本机连接)

    ​ 在 服务器名称 :浏览更多–》数据库引擎—》选择创建过的数据库实例

    或者

    SQL SERVER 身份验证

    ​ 在建立数据库实例时,要选择混合模式,设定 SQL SERVER系统管理员sa账户指定密码

    ​ 当数据库 和 服务器 分离时(远程连接),使用此方式; 必须登录:登录名和密码,还有 服务器名称 :就是SQL SERVER系统的IP地址

    (3)如何自己创建一个登录名:
    首先,以Windows身份验证登录,在安全性结点—》登录名—》右击登录名—》选择新建登录名—-》设置登录名,可以选择设置为 SQL Server身份验证,输入密码

    最重要的是:在左边选择”服务器角色“—-》选择 public 和 sysadmin

    相当于给予了它管理的权限

    这样下次访问这个数据库时,就可以使用 SQL Server身份验证,输入自定义的登录名和密码

    3. 新建数据库

    右击数据库结点—》 新建数据库 —》 自定义数据库名称,最好是可以代表存储何种数据的名称,后缀可以是DB,比如StuDB

    下方有数据库文件:

    有两行:第一行叫做 数据库组文件(数据库名称) ; 第一行叫日志文件(数据库名称_Log)

    后面有文件的默认大小,

    还有“ 路径 ” 的设置:默认是C:/Program Files/Microsoft SQL Server/MSSQL14.SQL01/MSSQL/DATA/

    因为以后要将数据库分离,并且要将此文件拷走,所以路径一般会设置在一个自定义比较固定的位置上,可以放到专门存放这个数据库的文件夹里。

    点击数据库结点—》就可以看到我们新建的数据库

    4. 数据库文件和文件组的组成

    因为数据库最终是在计算机上以文件的形式存在,数据库以文件和文件组 组成。

    1. 数据库文件:

    (1) 主要数据文件,存放数据和数据库的初始化信息。以.mdf扩展名结尾,每个数据库有且只有一个主要数据文件。

    (2)次要数据文件,存放除了主要数据文件以外的所有数据的文件。默认以.ndf扩展名结尾; 次要数据文件并不是每个数据库必须的。有的话,也可以是多个。

    (3)事务日志文件,存放用于恢复数据库的所有日志信息。(就是对数据库的所有操作信息,包括添加或删除一条信息等都是存储在此文件中),默认以.ldf扩展名结尾,每个数据库至少要有一个事务日志文件,也可以有多个。

    1. 数据库文件组:

      是数据库文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便对文件的分配和管理。

      分类:

      (1)主文件组:Primary 包含主要数据文件和没有明确指派给其他文件组的文件。

      (2)用户自定义的文件组:在Create DateBase或alter DateBase 使用fileGroup关键字指定的文件组

    对文件进行文件组的分类原则:

    (1)文件只能是一个文件组的成员。

    (2)文件或文件组不能由一个以上的数据库使用。

    (3)数据和日志信息不能属于同一个文件或文件组。

    (4)日志不能作为文件组的一部分(因为数据和日志是分开管理的,在备份时可以分离式进行)

5. 数据库常用对象

  1. 表:包含数据库中所有数据的对象,由行和列组成,用于组织和存储数据。点击建好的数据库—->右击表–》新建表—》有三部分:列名,数据类型,允许null值

  2. 字段:就是表中的列,一个表可以有多个列,一个字段有自己的属性,数据类型(决定该字段存储那种类型的数据),大小(长度);

  3. 视图:是一个虚表,可以从一张或多张表中导出的表,是用户查看数据的一种方式,结构和数据是建立在对表的查询之上。

  4. 索引:为了给用户提供一种快速访问数据的途径,索引是依赖于表而建立的。使得在检索数据时,不用对整张表进行扫描。

  5. 存储过程:是一组为了完成特定功能的SQL语句的集合。(可以有查询,插入,修改,删除等)编译过后,就存储在数据库中,以后以名称进行调用执行这些操作。

  6. 触发器:在数据库中属于用户定义的SQL食物命令集合,针对于表来说,当对表增,删,改操作时,指定的命令就会自动触发去执行。

  7. 约束:对数据表的列进行的一种限制。可以更好地规范表中的列值。

  8. 缺省值:对数据表的列指定一个默认值。当进行插入时,若没有为列插入值,就会自动赋予此默认值。

    6. 数据库的数据类型

    1. 数值型:

    (1)整数:bigint( 8字节) int(4字节) smallint (2字节) tinyint (1字节)

    (2)浮点型:float(近似值) real(近似值) decimal(精确值,不存在精度的损失,decimal(a,b)a指定数的总位数,b指定小数点后的位数)

    (3)货币类型(可以精确到万分之一):money( 8字节) smallmoney(4字节)

    二进制数据类型:

    bit

    binary(n):固定长度的二进制数据,最多8000字节

    varbinary(n):可变长度的二进制数据,最多8000字节

    varbinary(max):可变长度的二进制数据,最多8000字节

    2. 字符型:

    1.Character字符串:

    (若数据只有英文建议,因为汉字是占两个char字符,char(2),而nchar不论是英文还是中文都是占一个字符,nchar(1) )

    (1)char(n)固定长度的字符串,若达不到n,就以空格补全,最多8000个字符

    (2)varchar(n)可变长度的字符串,最多8000个字符

    (3)varchar(max)可变长度的字符串

    2.Unicode字符串:(若数据有中英文混合建议)

    (1)nchar(n)固定长度的Unicode数据,最多4000个字符

    (2)nvarchar(n)可变长度的Unicode数据,最多4000个字符

    (3)nvarchar(max)可变长度的Unicode数据

    前面带n,不论是英文还是中文都是占一个字符,存储大小2个字节,前面不带n,英文或数字,存储1个字节,而中文存储2个大小(长度)

    3. 日期型:

    datetime : 精确度高,精确到毫秒

    datetime2 : 精确度高,精确到纳秒

    smalldatetime : 精确到1分钟,时间范围小

    date : 仅存储日期

    time: 仅存储时间

    4. 其他类型:

    uniqueidentifer : 存储全球标识符(GUID)

    7. 创建表及主外键

    1.工具创建表:

    列名 数据类型 允许null值(勾选,就是允许为空); 并且对每一个列值,还可以在下方手动设置默认值: 比如:对于时间,可以设为getdate() 函数,来获取当前时间。

    按ctr+ s 保存,可以自定义表名

    ​ 因为一个表会有许多记录(行),需要一个列来唯一标识一条数据。就要创建 主键(主码),主键的选择:首先此列的值不可以有重复,且不可为空

    标识列:一旦一个列设为标识列,它就不能再手动插入,插入时自动生成的;

    首先此列必须是不带小数的数值型(可以理解为整形)

    标识列包含标识种子(第一条记录标识列的值)和增量(每增加一条数据在原来基础上增加的值)

    2. 创建主键:

    选择列名—-》右击—》设置主键,发现它前面有一个钥匙的小标记。

    有时,会选择多个列作为主键,是指它们组合起来作为一个主键,又称:联合主键

    创建一个主键,同时会自动创建一个聚集索引

    3. 创建外键

    外键(外码):一般是在两个表之间要建立关联的时候创建。

    比如:在Stu表中的主码是UserId, 还有一个列名DeptId, 关于部门的信息保存在另一张表Dept中,Dept表的主码是DeptId; 两个表通过DeptId进行关联;

    其中Stu表是参照表(外键表),Dept表是被参照表(主键表),

    DeptId称为参照表的外码,是被参照表的主码。

    在被参照表中DeptId设为主键,

    在参照表中DeptId设为外键:右击—》选择“关系”—》“添加”—》在右侧的“表和列规范”点击后面的省略号—》会有主键表和外键表的选择,然后下一行是各个表的选择关联的列 DeptId

    8. 数据库约束

    想打开新建好的表,在右侧的对象资源管理器—》右击新建的表—》设计

    就可以继续手动插入新的列或者新的约束条件

    1. 约束定义:

    规定表中的数据规则;若操作数据时违反了约束,就会被阻止;

    在使用软件创建,创建表之后建立约束。

    或者

    使用脚本创建表,可以在创建过程中,也可以在创建后来建立约束。

    2. 约束的分类:

    1. 主键: Primary Key 约束

    唯一性, 非空, 不可修改

    2. 外键: Foreign Key约束

    实现两个表的一列或多列数据之间的连接的。

    先建立主键表中的主键,再定义外键表中的外键。

    主键表限制了外键表的更新和插入的操作;当删除主键表中的某条数据,应该是先删除外键表中相关的数据,再删除主键表中的数据;

    3. Unique约束:唯一性约束(确保表中一列数据没有相同的值)

    与主键约束相似,但一个表中:主键只可以有一个,而Unique约束可以有多个,也可以没有。

    右击属性列—>选中 索引/键(I)—-》添加 —-》看到有以IX开头的就是唯一性约束,在右侧的列 最右侧的省略号点击—》选择此属性—-》确定—-》在是唯一的处的后面,选择是—》关闭

    4. Check 约束:通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围。

    比如:在属性列 age —>右击—>CHECK约束—>添加—>在右侧的表达式—》输入Age>10 and Age<30—》确定—》关闭

    再点进去就会显示表达式是: ([Age]>(10) AND [Age]<(30))

    5. Default 约束: 默认值约束。

    当在插入新的数据行时,若该行没有指定数据,系统就会将默认值赋给该列。

    若没有设置默认值,系统会默认为null

    选中属性列—》在下方的栏中的默认值或绑定,自己输入默认值

原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/245013.html

(0)
上一篇 2022年4月18日
下一篇 2022年4月18日

相关推荐

发表回复

登录后才能评论