Windows server 2016——SQL server 数据库和表的管理

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: Windows server 2016——SQL server 数据库和表的管理



介绍

SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。它具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何一种方式上运行。


一.SQL Server的数据存储结构

1.文件类型

数据文件:

  • 主数据文件(.mdf) 有且只有一个
  • 次要(辅助)数据文件(.ndf)可有可无,有可以多个。

事务日志文件(.ldf)至少有一个

  • 记录所有事务的SQL语句
  • 用于恢复数据库

 


二.数据库管理

1.创建数据库

数据库名称

数据文件和日志文件

  • 名称
  • 文件初始大小
  • 自动增长
  • 存储路径

2.扩展数据库

作用

  • 为数据文件和日志文件分配更多的空间

方法

  • 扩展现有文件的自动增长设置
  • 添加新文件

3.收缩数据库

作用

  • 释放数据库中未使用空间

方法

  • 手动收缩
  • 自动收缩

4.分离和附加数据库

作用

  • 将数据库更改到不同SQL Server 实例中

分离数据库

  • 将数据库从实例中移除

附加数据库

  • 通过定位主数据库文件,将数据库附加到另一实例

5.删除数据库

只能删除用户数据库,系统数据库无法删除


三.表的基本概念

1.数据完整性

实体完整性

每一行必须是唯一的实体

引用完整性

确保所有表中数据的一致性,不允许引用不存在的值

域完整性

检查每一列是否有效

用户定义的完整性

制定特定的业务规则


2.主键

  • 用于唯一标识表中的行数据
  • 由一个或多个字段组成
  • 具有唯一性
  • 不允许取空值(NULL
  • 一个表只能有一个主键

 


四.常用数据类型

数据类型

是数据的一种属性,指定对象可保存的数据的类型

SQL Server 数据类型

精准数字

近似数字

字符串

Unicode 字符串

二进制字符串

日期和时间

其他数据类型


精准数字

数据类型

描述

int

整型,存储-231231之间的整数,占4字节空间

bit

整型,取值01NULL。存储只有两种可能值的数据,如YesNo

decimal

存储从-1038-11038-1的固定精度和范围的数值型数据,须指定范围和精度。范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数

money

表示钱和货币值。存储从-922 337 203 685 477.5808  922 337 203 685 477.5807之间的数据,精确到货币单位的万分之一,占8字节空间

近似数字

数据类型

描述

float

表示浮点数值数据的大致数值。表示-1.79E+3081.79E+308 之间的任意数,占8字节空间

real

表示-3.40E+383.40E+38之间的浮点数。占字节空间

字符串

数据类型

描述

char

存储固定长度,非 Unicode 字符数据。须指定列长,最多包含 8000 个字符

varchar

存储可变长度,非 Unicode 字符数据。需要指定该列的最大长度,最多包含231个字符

text

存储大量的非 Unicode字符数据,最多可以有231-1或大约20亿个字符

Unicode字符串

数据类型

描述

nchar

存储定长Unicode字符型数据。Unicode使用双字节结构来存储每个字符,在空间占用上增加了一倍

nvarchar

存储变长Unicode字符型数据

ntext

存储大量的Unicode字符型数据

二进制字符串

数据类型

描述

binary

存储可达8000 字节长的定长的二进制数据

varbinary

存储可达8000 字节长的变长的二进制数据

image

存储变长的二进制数据,最大可达231-1或大约20亿字节

日期和时间

数据类型

描述

date

日期。存储从公元元年11日到公元9999年 1231日间所有的日期数据。占3字节空间

time

表示一天中某个时间,不能感知时区且基于 24 小时制,占5字节空间

datetime

表示日期和时间。存储从175311日到99991231日间所有的日期和时间数据,占8个字节空间


五.使用SSMS操作数据表

1.默认值

如果没有为列指定值,默认值则指定列中使用的值

没有为列指定默认值

如果允许空值,则将向该列中插入 NULL

如果不允许空值,在用户为该列提供值前,将无法保存行

2.标识列

包含系统自动生成的序号值的列

  • 列值由系统按一定规律生成,不允许空值
  • 列值不能重复,唯一标识表中每一行
  • 每个表只能有一个标识列

3.创建标识列(自增列)

  • 类型(type
  • 种子seed
  • 递增量(increment

4.检查约束

  • 限制列可接受的值
  • 通过逻辑表达式创建检查(CHECK)约束

例:

 成绩大于等于0并且小于等于100

  成绩>=0 and 成绩〈=100


六.使用T-SQL语句管理数据表

1.创建表

CREATE TABLE 表名
(
    列名1 数据类型(大小),
    列名2 数据类型(大小),
    列名3 数据类型(大小),
    ……    
)

2.删除表

DROP TABLE  <表名>

七.操作练习

操作要求:

(1)创建一个名为benet的数据库,数据库文件存放在c:\benet,如图所示:

(2)将benet数据库设置为自动收缩。

(3)创建一个名为student的表,表中字段如下图所示:

字段要求:学员编号为从1开始自动编号,身份证号为主键列,所在班级的默认值为t3145,成绩输入要求大于等于0,小于等于100(成绩  >=0  and  成绩 <=100 )。

(4)在图形界面下,输入数据,测试以上的要求是否符合要求。

(5)使用语句删除student表。

(6)使用语句再次创建student表。如图所示:

(7)在表的“设计”视图下查看是否符合上面表的要求。

(8)在图形界面下,输入数据,测试是否符合上面表的要求。


创作不易,求关注,点赞,收藏,谢谢~

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
16天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
16天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
88 6
|
3天前
|
SQL 数据管理 关系型数据库
如何在 Windows 上安装 SQL Server,保姆级教程来了!
在Windows上安装SQL Server的详细步骤包括:从官方下载安装程序(如Developer版),选择自定义安装,指定安装位置(非C盘),接受许可条款,选中Microsoft更新,忽略警告,取消“适用于SQL Server的Azure”选项,仅勾选必要功能(不包括Analysis Services)并更改实例目录至非C盘,选择默认实例和Windows身份验证模式,添加当前用户,最后点击安装并等待完成。安装成功后关闭窗口。后续文章将介绍SSMS的安装。
6 0
|
3天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
4天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
5天前
|
SQL XML 数据库
sql导入数据库命令
在SQL Server中,数据库导入可通过多种方式实现:1) 使用SSMS的“导入数据”向导从各种源(如Excel、CSV)导入;2) BULK INSERT语句适用于导入文本文件;3) bcp命令行工具进行批量数据交换;4) OPENROWSET函数直接从外部数据源(如Excel)插入数据。在操作前,请记得备份数据库,并可能需对数据进行预处理以符合SQL Server要求。注意不同方法可能依版本和配置而异。
|
8天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
9天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
17 0
|
11天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
24 0