《软件外包服务岗前技能训练》之SQLserver数据库

本文详细介绍了SQLSERVER的概念,包括创建服务器、数据库文件的构成、数据类型分类、表的设计、主键、外键和约束的使用,以及数据库脚本和T-SQL语言的应用。涵盖了创建新数据库、删除数据库以及数据操作的方方面面。

目录

SQL SERVER概念

1.创建服务器

2.数据库文件

2.1文件的存在形式

2.2文件组

3.数据库对象

4.数据类型

4.1数值型

4.2二进制数据类型

4.3字符型

4.4日期类型

4.5其他类型

5.创建表

5.1工具创建表

5.2创建主键

5.3创建外键

5.约束

5.1定义

5.2分类

6.数据库脚本

7.创建数据库(使用TSQL)

7.1 创建新数据库的脚本

7.2 删除数据库


SQL SERVER概念

1.创建服务器

方式:工具创建 /脚本创建

身份验证 Windows【无需密码】/ SQL Server身份验证【需要密码】

【windows身份验证登录】安全性——登录名——右键登陆名,选择新建登录名

【SQL server身份验证】设置密码,给他设置服务器角色(类似于权限)。

SQLserver登录通常使用较多,不会

创建数据库:找到数据库节点,选择新建数据库,设置数据库名称,大小,自动增长、路径即可。

2.数据库文件

数据库:文件的形式 ,由文件和文件组组成

2.1文件的存在形式

1)主要数据文件 存放数据和数据库初始化信息。每个数据库有且只能有一个主要数据文件。 .mdf 拓展名

2)次要数据文件 存放除了主要文件以外的所有数据的文件。 次要数据文件后缀名.ndf拓展名【次要文件并不是必须的,可以没有,如果有,可以能是一个,也可能是多个。】

3)事务日志文件 (默认.ldf拓展名) 存放用于恢复数据库的所有日志信息。每个数据库至少要有一个日志文件,也可以是多个。

2.2文件组

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

1)主文件组 primary 包含主要数据文件和没有明确指派给其他数据组的文件、

2)用户自定义的文件组 Create DateBasealter DateBase 语句中,用于 fileGroup 关键指定的文件组 。

设计原则

a. 文件只能是一个文件组的成员。

b. 文件或文件组不能有一个以上的数据库使用。

c. 数据和日志信息不能属于同一个文件或文件组。

d. 日志文件不能作为文件组的一部分。

3.数据库对象

1.表 包含数据库中所有数据的对象,由行和列组成,用于组织和存储数据。

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

3.视图 表(虚拟表)一张或多张表中导出的表 用户查看数据的一种方式,结构和数据的建立在对表的查询基础之上的。

4.索引 为了给用户提供一种快速访问数据的途径,索引依赖于表建立的,检索数据无需对整张表进行扫描,可以快速找到所需的数据。

5.存储过程 是一组为了完成特定功能的SQL语句的 集合(查询、插入、修改、删除),编译后,存储过程就会存储在数据库中,以名称/参数进行调用,当调用执行时,里面定义的操作就会被执行。

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

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

8.缺省值 对表中的列可以指定一个默认值,当进行插入时,如果没有为这个列插入值,那么就会自动以预算设置的默认值进行自动补充。

4.数据类型

4.1数值型

整形数据类型:bigint 8字节 > int 4字节 > smalint 2字节 > tinyint 1字节

浮点型:

float 表示近似数值,存在精度损失,数据类型是float(n)

real 也表示近似值,可以直接用float(24)表示

decimal 表示精确数值,不存在精度损失,数据类型是 decimal(p,s)需要分别指定小数的最大位(p)和最小位(s), p表示指定小数的最大位数,s表示小数点右侧的位数。

货币类型(可以精确到万分之一):

smallmoney 介于 -214,748.3648和214,748.3647之间

money 介于 -922,337,203,685,477.5808和923,337,203,685,477.5807之间

4.2二进制数据类型

bit 允许 0、1或null

binary(n) 固定长度的二进制,最多8,000字节。

varbinary(n)可变长度的二进制,最多8,000字节。

varbinary(max)可变长度的二进制,最多2GB。

image 可变长度的二进制数据,最多2GB。——图片存储位置

4.3字符型

character 字符串

char(n) 固定长度的字符串,最多8,000字节。 char ——固定位数,若表中字节不足,则以空格填满。

varchar(n) 可变长度的字符串,最多8,000字节。 varchar ——非固定位数,可自定义字节。

varchar(max) 可变长度的字符串,最多1,073,741,824字节。

text 可变长度的字符串,最多2G字符数据。

unicode字符串

nchar(n) 固定长度的 unicode 数据 ,最多4000字节。 (前面带n的不管是中文汉字还是英文或数字,他的存储大小都是两个字节)

nvarchar(n) 可变长度的 unicode数据,最多4000字节。——存储大小位两个字节,存储中文信息最常用。

nvarchar(max) 可变长度的 unicode数据,最多536,870,912字节。

ntext 可变长度的 unicode数据,最多2GB字符数据。

4.4日期类型

datetime 从1753年1月1日到9999年12月31日,精度3.33毫秒。——精度大

datetime2 从1753年1月1日到9999年12月31日,精度100纳秒。——精度最准

smalldatetime 从1900年1月1日到2079年6月6日,精度位1分钟。——精度小

date 仅存储日期,从0001年到1月1日到9999年21月31日。 ——仅存储日期

time 进存储时间,精度位100纳秒。

datetimeoffset 与datetime2相同,外加时间偏移。

timesstamp 存储唯一的数字,每当创建或修改某行时,该数字和时间会更新。timestamp是基于内部时钟,不对应真实时间,每个表只能由一个timestamp变量。

getdate() 创建日期

4.5其他类型

sql variant 存储最多8000字节不同数据类型的数据,除了text、ntext以及timestamp

uniqueidentifier *存储全局标识符 (GUID)

xml 存储xml格式化的数据,最多2GB。

cursor 存储在用于数据库操作的指针的引用。

table 存储结果集,供稍后处理。

5.创建表

5.1工具创建表

表中含有:列 数据类型 是否null

一个表中,会有很多条记录,需要一个列唯一标识一条数据

主键:唯一表示一条数据。

【设置为主键的条件:值 不能重复,不能为空】

标识列: 不能手动插入,是数据插入时自动生成的

【若表中设置有标识列,数据库里删除了数据,因为有标识列的存在,再插入就会导致数据不连续】

【设置标识列条件:数据类型是整形,不带小数】

【标识种子,以1开始及为1,以100开始及为100,增量设置为几就每次自动增长多少。】

5.2创建主键

联合主键:唯一标识; 创建一个主键,同时自动创建一个聚集索引

5.3创建外键

外键:一般两个表之间要建立关联的时候,需要创建外键

【设置外键的条件:一个列创建为外键,它在另一个表中必须是主键】 【添加外键的方式:SQL SERVER进入表,右键对应列中的关系,添加外键,选择外键关系,选定对应字段。】

【一个表可以有多个外键关系,一个表只能有一个主键,也可以没有主键】

外键约束:两个表一但建立外键关系,外键表里对应的外键列,它的值必须是他对应的主键表里的主键值,如果想插入一个不存在的值,无法插入。

5.约束

5.1定义

规定表中的数据规则,如果存在违反约束的数据行为,行为就会被阻止。

什么时候可以创建约束:【a.使用软件工具创建,在创建表之后;b.使用脚本创建表,可以在创建过程中,也可以在创建表之后】

5.2分类

主键约束(Primary key):主键唯一标识、不能重复、不能为空、不能被修改。

外键约束(Foreign key):加强两个表(主表从表)一列或多列数据之间的连接。【配置顺序:先建立主表的主键,然后再定义从表中的外键,只有主表中的主键才能被从表用来作为外键使用。】

唯一约束(Unique 约束):唯一性约束,确保表中的一列数据没有相同的值。与主键约束相似,但又不同,主键只能有一个,但一个表中可以定义多个唯一约束。

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

默认约束(Default约束):默认值约束,在插入新的数据行时,如果该行没有指定数据,那么系统就会将默认值赋给该列,如果没有设置默认值,系统就会默认为NULL。

6.数据库脚本

数据库脚本:用于创建数据库对象的语句结合。

T-SQL:Transact-SQL 基于SQL的结构化查询语言,用于应用程序和数据库之间沟通的编程语言。Sql server支持的脚本语言。

SQL语言:一种有目的的编程语言,用于存取数据、查询、更新和管理关系数据库,高级非过程化的编程语言。【作用:可以完成移植,可以提高数据访问效率,同时完成对数据的相关处理】

SQL语言分类:

1)DQL 数据查询语言

Select From 表面 where 条件

2)DML 数据操作语言

a. Insert插入 insert into 表名 (列1,列2,...) values (对应的值,对应的值)

b. Update更新 update 表名 set 列名 = 值,列明 = 值 where条件

c. Delete删除 delete from 表名 where 条件

3)DDL 数据定义语言

创建数据库及其对象 Create Datebase(数据库)/Table(表)/View(视图)/Proc(存储过程)/Index(索引)

4)DCL 数据控制语言 用于授权或回收访问数据库某种权限 commit 提交、rollback回滚、grant 授权

7.创建数据库(使用TSQL)

为什么要选择master数据库?【不要修改master数据库的初始文件,可以进行查询,别修改】

master数据库:

a.系统数据库,它记录了SQL Server系统的所有系统级信息;

b.记录了所有其他数据库的存在,数据库文件的位置;

c.SQL Server的初始环境。

7.1 创建新数据库的脚本

create database 数据库名称

on primary --主文件组 其中添加主要数据文件

name='主要数据库的逻辑文件名',

filename='数据库路径.mdf', --绝对路径

size=‘初始大小’

filegrowth='文件增量'

)

log on--创建日志文件

name='数据库日志文件的逻辑名',

filename='日志文件的路径.ldf', --绝对路径

size=‘初始大小’

filegrowth='文件增量'--设置为10%即可

go--go语句分隔的部分会被分别编译为两个执行计划

7.2 删除数据库

drop database 数据库名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值