SQL Server基础笔记

227 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

SQL Server

基础知识&软件操作

创建数据库

方式:

  1. 工具创建
  2. 脚本创建

工具创建:

**服务器名称:**local / . / 127.0.0.1 远程:服务器Ip,端口号

**身份验证:**windows身份验证 / SQL Server身份验证(登录名+密码)

windows身份验证登录,安全性——登录名——右击登录名,选择新建登录名,选择SQL Server身份验证,设置登陆密码,给它设置服务器角色(赋予权限)

**创建数据库:**右击数据库节点,选择新建数据库,设置数据库名称,路径,点击确定,成功创建好了数据库

数据的组成

**数据库:**由文件和文件组组成

数据库文件:

  1. **主要数据文件:**存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件。扩展名为.mdf
  2. **次要数据文件:**存放除了主要数据文件以外的所有数据文件。次要数据文件并不是必须的,可以没有,如果存在,可以是一个,也可以是多个。扩展名为.ndf
  3. **事务日志文件:**存放用于恢复数据库的所有日志信息。每个数据库至少要有一个日志文件,也可以有多个。默认扩展名为.ldf。

数据库文件组

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

  1. 主文件组: Primary 主要数据文件和没有明确指派给其他文件组的文件
  2. 用户自定义的文件组: Creat DateBase/alter database语句中 , fileGroup关键字指定的文件组

设计原则:

  1. 文件只能是一个文件组的成员
  2. 文件或文件组不能由一个以上的数据库使用
  3. 数据和日志信息不能属于同一个文件或文件组
  4. 日志不能作为文件组的一部分

数据库常用对象

  1. **表:**包含数据库中所有数据的对象,行和列组成,用于组织和存储数据。
  2. **字段:**表中的列,一个表可以有多个列,自己的属性:列名、数据类型(决定了该字段存储了哪种类型的字段)、大小(长度)等
  3. **视图:**表(虚拟表)从一张或多张表中导出的表,是用户查看数据的一种方式,结构和数据是建立在对表的查询的基础之上的。
  4. **索引:**为了给用户提供一种快速访问数据的途径。
  5. **存储过程:**是一组为了完成特定功能的SQL语句的集合(可以有查询、插入、修改、删除等操作),编译后,存储在数据库中,以名称进行调用,当调用执行时,这些操作就会被执行。
  6. **触发器:**在数据库中,属于用户定义的SQL事务命令集合,针对于表来说,当对表执行增删改操作时,命令就会自动触发执行。
  7. **约束:**对数据表的列,进行的一种限制。可以更好的规范表中的列。
  8. **缺省值:**对表中的列可以指定一个默认值,如果没有为这个列插入值,则会自动以预先设置的默认值进行自动补充。

数据库数据类型

  • 数值型
    • 整型
      • bigint
      • int
      • smallint
      • tinyint
    • 浮点型
      • float
      • real(=float(24))
      • decimal(p,s)(不存在精度损失)
        • p(precision):指定小数的最大位数,小数点左侧和右侧的数字总数量不能超过p
        • s(scale):指定在小数点右侧的小数位数,p-s是小数点左边的最大位数,大小必须是从0到p
    • 货币类型
      • smallmoney
      • money
  • 字符型
    • character字符串
      • char(n) 固定长度8000个字符
      • varchar(n) 可变长度字符串 最多8000个字符
      • varchar(max) 可变长度 最多1073741824个字符
      • text 最多2GB
    • Unicode字符串(中文字符建议使用)
      • nchar(n)
      • nvarchar(n)
      • nvarchar(max)
      • ntext
  • 日期型
    • datetime 精确度高,3.33毫秒
    • datetime2 精度更高,100纳秒
    • smalldatetime 精确到一分钟
    • date 存储日期,精确到日
    • time 存储时间
  • 其他类型
    • uniqueidentifier guid 全球唯一标识符

工具创建表

**标识列:**一个列设置成标识列,它就不能再手动插入,而是插入时自动生成的。这个列的类型必须是不带小数的数值型,整形。

**标识种子:**标识列的起始值

**增量:**每个标识的增量

数据库约束

分类

  • 主键 Primary Key约束
  • 外键 Foreign Key约束 贾蔷两个表的一列或多列之间的连接的。先建立主表的主键,然后再定义从表中的外键。只有主表中的主键才能被从表用来作为外键使用。主表限制了从表的更新和插入的操作。当删除主表中的某条数据,应该是先删除从表中相关的数据,再删除主表。
  • Unique约束 唯一性约束,确保表中的一列数据没有相同的值。与主键约束相似,但又不同。主键只能有一个,但一个表中可以定义多个唯一约束
  • Check约束 通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围
  • Default约束 默认值约束。用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列。如果没有设置默认值,系统就会默认为NULL