SQL server 简介
SQL server 简介
学习目的
SQL Server 是由微软公司开发的一种关系型数据库管理系统(RDBMS),用于存储和检索数据。它提供了一个可扩展的、安全的和可靠的数据存储和管理解决方案。
SQL Server 主要用于构建企业级应用程序,支持大规模数据处理,并拥有强大的数据分析和报告功能。它提供了一套强大的工具和功能,可以有效地管理和操作数据库,包括数据模型设计、数据导入和导出、事务处理、数据备份和恢复。
SQL Server 支持结构化查询语言(SQL),这是一种用于管理和操纵数据库的标准语言。通过使用 SQL,用户可以轻松地创建、修改和查询数据库中的表、视图、存储过程和触发器。
通过学习SQL server,可以深入了解SQL语言和SQL server数据库的基础知识,并学习数据安全性和防御机制的最佳实践。您将学习如何编写安全的查询语句、使用参数化查询和存储过程来防止SQL注入攻击。此外,了解SQL server的配置和权限管理也是确保数据库安全的重要方面。
SQL server专业术语
SQL Server 作为一个关系型数据库管理系统,涉及到一些专业术语。以下是几个常见的 SQL Server 专业术语的解释:
- 数据库(Database):
- 在 SQL Server 中,数据库是一个包含相关数据和对象的容器。它是数据的集合,可以包含多个表、视图、索引、存储过程等。
- 表(Table):
- 表是 SQL Server 中最常见的数据存储结构。它由一系列有序的行和列组成,用于存储数据。每个表有一个名称,并且由一个或多个列组成。
- 列(Column):
- 列是表中的一个数据字段,用于存储特定的数据类型。列定义了表中存储的数据的属性,例如名称、数据类型、长度等。
- 行(Row):
- 行是表中的一个记录,包含一组相关的数据值。每行都由表中的列组成,每个列都包含单个数据值。
- 查询(Query):
- 查询是指在 SQL Server 中检索和操作数据的命令。通过使用查询语言(如 SQL),可以从表中检索特定的数据行或执行更复杂的数据操作。
- 索引(Index):
- 索引是一种数据结构,用于加快在数据库表中检索数据的速度。它基于一个或多个列的值创建,并通过创建一个快速访问路径来提高数据检索的效率。
- 视图(View):
- 视图是一种虚拟的表,它实际上并不存储任何数据,而是根据已有的表或其他视图的查询结果生成的。视图提供了一种方便的方法来组织和呈现数据,同时还可以限制用户对数据的访问。
- 存储过程(Stored Procedure):
- 存储过程是一组预编译的 SQL 语句,存储在数据库中并可以被多次调用。存储过程有助于提高性能、重复使用代码,并通过封装复杂的业务逻辑来简化应用程序开发。
- 主键(Primary Key):
- 主键是表中用于唯一标识每一行数据的列或一组列。它确保表中的每一行都有一个唯一的标识,并且不允许重复值或空值。
- 外键(Foreign Key):
- 外键是表中的一列或一组列,用于与其他表中的主键建立关联。外键用于维护表之间的关系,确保数据的完整性和一致性。
- 触发器(Trigger):
- 触发器是与表相关联的特殊类型的存储过程,当满足特定的条件时会自动触发执行。触发器通常用于实现数据约束、触发日志记录或执行其他自动化操作。
- 事务(Transaction):
- 事务是一组相关的数据库操作,要么全部执行成功,要么全部回滚(撤销)。事务用于确保在数据库中的多个操作之间保持一致性和完整性。
- 日志(Log):
- SQL Server 日志用于记录对数据库的所有更改操作。它记录了从数据库的初始状态到当前状态的所有已执行操作,以及可以用于恢复数据库的信息。
- 备份和恢复(Backup and Recovery):
- 备份是指将数据库的副本创建并存储在另一个位置以防止数据丢失。恢复是指使用备份文件将数据库还原到原来的状态。
- 高可用性(High Availability):
- 高可用性是指系统具有足够的冗余性和可靠性,以确保系统在出现故障或错误时能够持续运行。在 SQL Server 中,高可用性功能包括数据库镜像、复制、故障转移和集群等。
- 分区(Partition):
- 分区是将表或索引分成多个逻辑部分的操作。分区可以提高查询性能和管理大型表或索引的能力。
SQL server的语法规则
SQL Server 是 Microsoft 公司提供的一种关系型数据库管理系统(RDBMS),其语法遵循 ANSI SQL 标准,并具有一些自身的扩展和特性。下面是 SQL Server 的一些常见语法规则:
- 语句终止符:
- SQL Server 中使用分号 (😉 或 GO 命令作为语句的终止符。分号通常用于终止一条语句,而 GO 命令用于批处理中的多个语句。
- 大小写不敏感:
- SQL Server 的语法是大小写不敏感的,即关键字和标识符不区分大小写。例如,“SELECT”和“select”被视为相同。
- 注释:
- 使用双横线 (–) 开头的文本被视为单行注释,可以用于在语句中添加注释。也可以使用 /* 注释文本 */ 进行多行注释。
- 数据类型:
- SQL Server 支持多种数据类型,包括整数、浮点数、字符、日期等。可以使用这些数据类型来定义表的列、存储过程的参数等。
- 表:
- 使用 CREATE TABLE 语句创建表,使用 SELECT 语句查询表中的数据,使用 INSERT、UPDATE、DELETE 语句操作表的数据。
- 查询语句:
- 使用 SELECT 语句来查询数据。可以使用 WHERE 子句进行条件过滤,使用 ORDER BY 子句进行排序,使用 GROUP BY 子句进行分组,使用 JOIN 子句进行表连接等。
- 存储过程:
- 使用 CREATE PROCEDURE 语句创建存储过程,使用 EXECUTE 或 EXEC 语句执行存储过程。存储过程是一组预定义的 SQL 语句集合,可以在数据库中进行复用。
- 触发器:
- 使用 CREATE TRIGGER 语句创建触发器,触发器是与表相关联的特殊类型的存储过程,可以在表上的 INSERT、UPDATE、DELETE 等操作发生时自动执行。
- 访问控制和权限:
- SQL Server 使用 GRANT 和 REVOKE 语句授予和撤销用户的权限。还可以使用角色进行权限管理,通过将权限授予角色,再将角色授予用户来实现权限的集中管理。
上述仅是 SQL Server 的一些常见语法规则,SQL Server 还有许多其他功能和特性,如索引、视图、事务处理等。
SQL server 的基本语句
SQL Server 提供了许多基本的 SQL 语句,用于对数据库进行操作和管理。以下是 SQL Server 中常用的基本语句示例:
- 创建数据库:
CREATE DATABASE database_name;
- 创建表:
CREATE TABLE table_name (column1 datatype1,column2 datatype2,...
);
- 插入数据:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
- 更新数据:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
- 删除数据:
DELETE FROM table_name
WHERE condition;
- 查询数据:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- 创建索引:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
- 创建视图:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
- 创建存储过程:
CREATE PROCEDURE procedure_name
AS
BEGIN-- SQL 语句和逻辑
END;
- 创建触发器:
CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT, UPDATE, DELETE
AS
BEGIN-- SQL 语句和逻辑
END;
SQL server 编程语言
Server 中,可以使用多种编程语言来与数据库进行交互和操作。
以下是一些常用的编程语言,可用于与 SQL Server 进行交互和编写应用程序:
-
Transact-SQL(T-SQL):Transact-SQL 是 SQL Server 的扩展,是一种关系型数据库编程语言。T-SQL 可以用于编写存储过程、触发器、函数和 SQL 查询。
-
.NET Framework:SQL Server 是 Microsoft 的产品,与 .NET Framework 集成得非常好。通过使用 C#、VB.NET 或其他 .NET 编程语言,可以使用 ADO.NET 或 Entity Framework 等 .NET 数据访问技术与 SQL Server 进行交互。
-
Java:通过使用 JDBC(Java Database Connectivity)技术,可以在 Java 中编写代码来连接和操作 SQL Server 数据库。
-
Python:通过使用 Python 的数据库接口库(如 pyodbc、pymssql、pymsql 等),可以在 Python 中编写代码来与 SQL Server 进行交互。
-
PHP:通过 PHP 的数据库扩展(如 mssql、sqlsrv、mysqli 等),可以在 PHP 中编写代码来连接和操作 SQL Server 数据库。
-
Node.js:通过使用 Node.js 的数据库模块(如 mssql、tedious 等),可以在 Node.js 中编写代码来与 SQL Server 进行交互。
上述仅是一些常见的编程语言,可以与 SQL Server 进行交互和操作。实际上,SQL Server 能够与多种编程语言和应用程序进行集成,以满足不同编程环境和需求的要求。
SQL server 的特殊符号
SQL Server 中有一些特殊符号用于在 SQL 查询和语句中使用。以下是一些常见的 SQL Server 特殊符号:
- 单引号 (‘’):用于表示字符串值。在 SQL 查询中,字符串值需要放在单引号之间,
- 例如:
SELECT * FROM table WHERE column = 'value';
- 例如:
- 百分号(%):用于模式匹配。在 SQL 查询中,可以使用百分号进行模糊匹配,
- 例如:
SELECT * FROM table WHERE column LIKE 'abc%';
- 例如:
- 下划线(_):用于单个字符的匹配。类似于百分号,下划线也用于模糊匹配,但只匹配一个任意字符,
- 例如:
SELECT * FROM table WHERE column LIKE 'a_';
- 例如:
- 方括号([]):用于转义标识符。当标识符包含保留字、特殊字符或空格时,可以将其放在方括号中,以避免语法错误,
- 例如:
SELECT [column] FROM [table];
- 例如:
- 双引号(“”):在某些情况下,双引号可以用于转义标识符,但不常用,并且需要在数据库设置中启用其使用。
- 逻辑运算符:SQL Server 支持逻辑运算符,如 AND、OR 和 NOT,用于组合条件。
- 例如:
SELECT * FROM table WHERE condition1 AND condition2;
- 例如:
- 点号(.):用于引用表名和列名之间的限定符,
- 例如:
SELECT table.column FROM table;
- 例如:
SQL server 与mysql的不同之处
SQL Server和MySQL是两种常见的关系型数据库管理系统(RDBMS),它们在很多方面有所不同。以下是SQL Server和MySQL之间的一些主要区别:
- 所有权和许可:
- SQL Server 是由 Microsoft 公司开发和拥有的商业数据库产品,需要为其购买许可。
- MySQL是一个开源数据库,可以免费使用,并且拥有开源社区的支持。
- 数据库架构:
- SQL Server 是基于客户-服务器模型的数据库系统,并且在一个单独的实例中可以容纳多个数据库。
- MySQL也是基于客户-服务器模型,但每个服务器实例只能运行一个数据库。
- 存储引擎:
- SQL Server 默认使用其自身的存储引擎,称为SQL Server存储引擎。
- MySQL则支持多个存储引擎,包括InnoDB、MyISAM等。
- 数据类型:
- SQL Server 和 MySQL 支持的数据类型在某些方面有所不同。
- MySQL 提供了 ENUM 和 SET 数据类型以及日期时间类型的不同子类型,
- SQL Server 则提供了更广泛的日期和时间类型选项。
- 存储过程和触发器:
- SQL Server 和 MySQL 均支持存储过程和触发器。但存储过程的实现语法和功能可能有所不同,并且SQL Server 有一种称为 Transact-SQL(T-SQL)的特定存储过程语言。触发器的支持和实现方式也可能有所不同。
- 安全和权限:
- SQL Server 和 MySQL 在安全和权限控制方面也有所不同。
- SQL Server 使用 Windows 身份验证和 SQL Server 身份验证进行身份验证,并支持细粒度的权限控制。
- MySQL 使用用户名和密码进行身份验证,并具有多级权限控制。
- 查询语法:
- 尽管 SQL 是一种标准的查询语言,但在具体语法和功能方面,SQL Server 和 MySQL 也存在一些差异
- 例如在字符串拼接、日期处理、NULL 处理等方面。
这只是 SQL Server 和 MySQL 之间的一些主要区别,实际上还有很多其他方面的不同。具体选择使用哪个数据库管理系统应根据项目需求、应用程序要求、性能需求、预算等因素进行评估。
相关文章:

SQL server 简介
SQL server 简介 学习目的 SQL Server 是由微软公司开发的一种关系型数据库管理系统(RDBMS),用于存储和检索数据。它提供了一个可扩展的、安全的和可靠的数据存储和管理解决方案。 SQL Server 主要用于构建企业级应用程序,支持…...

springboot 之以enable开头的注解
Spring 有很多 Enable 开头的注解,平时在使用的时候也没有注意过为什么会有这些注解 Enable 注解 首先我们先看一下有哪些常用的 Enable 开头的注解,以及都是干什么用的。 EnableRetry:开启Spring 的重试功能; EnableSch…...

#P1007. [NOIP2007提高组] 矩阵取数游戏
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mnm 的矩阵,矩阵中的每个元素 a_{i,j}ai,j 均为非负整数。游戏规则如下: 每次取数时须从每行各取走一个元素,共 nn 个。经过 mm 次后取完矩阵内所有元素&…...

TypeScript基础篇 - TS模块
目录 模块的概念 Export 语法(default) Export 语法(non-default) import 别名 Type Export语法【TS】 模块相关配置项:module【tsconfig.json】 模块相关配置项:moduleResolution 小节总结 模块的…...

安卓:Picasso——加载网络图片的库
目录 一、Picasso介绍及其优势 二、Picasso的使用方法 1、添加依赖: 2、Picasso常用方法: 1、加载图像: 2、图像显示: 3、图像处理: 4、图像占位符和错误处理: 5、缓存控制: 6、清除缓…...

1468-PIPI的魔咒
题目描述: 大魔术师PIPI有N个转换魔咒,每个转换魔咒可以将一个字符串变成另一个字符串。 比如说: “PIPI”->“POPO” “boy”->“girl” “boy”->“u” “isau”->“OJ” 那么对于字符串"PIPIisaboy",大魔术师PIPI可…...

3d激光slam建图与定位(1)_基于ndt算法定位
一.代码实现流程 二.ndt算法原理 一.该算法定位有三个进程文件 1.map_loader.cpp用于点云地图的读取,从文件中读取点云后对这个点云地图进行旋转平移后发布点云地图到ros #include "map_loader.h"MapLoader::MapLoader(ros::NodeHandle &nh){std::st…...

云安全攻防(二)之 云原生安全
云原生安全 什么是云原生安全?云原生安全包含两层含义:面向云原生环境的安全和具有云原生特征的安全 面向云原生环境的安全 面向云原生环境的安全的目标是防护云原生环境中的基础设施、编排系统和微服务系统的安全。这类安全机制不一定会具有云原生的…...

最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践
前言 知识点 定级:入门级GlusterFS 和 Heketi 简介GlusterFS 安装部署Heketi 安装部署Kubernetes 命令行对接 GlusterFS 实战服务器配置(架构 1:1 复刻小规模生产环境,配置略有不同) 主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100…...

笙默考试管理系统-MyExamTest(16)
笙默考试管理系统-MyExamTest(16) 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试管理系统-MyExa…...

初级算法-树
文章目录 二叉树的最大深度题意:解:代码: 验证二叉搜索树题意:解:代码: 对称二叉树题意:解:代码: 二叉树的层序遍历题意:解:代码: 将有…...

Harbor Failed to start docker.service: Unit docker.service not found.
有可能是修改配置文件导致了问题,最近肯定修改过某个配置文件 本文只针对配置Harbor过程中遇到该问题,很有是deamon.json的 insecure-registries和docker.service的 ExecStart/usr/bin/dockerd --insecure-registry冲突了,删掉一个就好 我使…...

网络安全/信息安全(黑客技术)自学笔记
一、网络安全基础知识 1.计算机基础知识 了解了计算机的硬件、软件、操作系统和网络结构等基础知识,可以帮助您更好地理解网络安全的概念和技术。 2.网络基础知识 了解了网络的结构、协议、服务和安全问题,可以帮助您更好地解决网络安全的原理和技术…...

ADB 命令结合 monkey 的简单使用,超详细
一:ADB简介 1,什么是adb: ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。ADB 也是 Android SDK 中的一个工具&…...

级联选择框
文章目录 实现级联选择框效果图实现前端工具版本添加依赖main.js导入依赖级联选择框样式 后端数据库设计 实现级联选择框 效果图 实现 前端 工具版本 node.js v16.6.0vue3 级联选择框使用 Element-Plus 实现 添加依赖 在 package.json 添加依赖,并 npm i 导入…...

如何在3ds max中创建可用于真人场景的巨型机器人:第 5 部分
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. After Effects 中的项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 我有真人版 我在After Effects中导入的素材。这是将 用作与机器人动画合成的背景素材。 实景镜头 步骤 3 有背景 选定的素材…...

【MATLAB第61期】基于MATLAB的GMM高斯混合模型回归数据预测
【MATLAB第61期】基于MATLAB的GMM高斯混合模型回归数据预测 高斯混合模型GMM广泛应用于数据挖掘、模式识别、机器学习和统计分析。其中,它们的参数通常由最大似然和EM算法确定。关键思想是使用高斯混合模型对数据(包括输入和输出)的联合概率…...

Mnist分类与气温预测任务
目录 传统机器学习与深度学习的特征工程特征向量pytorch实现minist代码解析归一化损失函数计算图Mnist分类获取Mnist数据集,预处理,输出一张图像面向工具包编程使用TensorDataset和DataLoader来简化数据预处理计算验证集准确率 气温预测回归构建神经网络…...

Pytorch深度学习-----神经网络的卷积操作
系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…...

微信小程序转抖音小程序的坑:The component <xxx> used in pages/xxx/xxx is undefined
微信小程序组件定义在根目录的 app.json 中了,在抖音小程序中出现找不到的情况。 在需要用到组件的 pages 目录中页面文件夹的 json "usingComponents": {} 大括号中添加页面使用的组件,即可使用......

Vue+element Ui的el-select同时获取value和label的方法总结
1.通过ref的形式(推荐) <template><div class"root"><el-selectref"optionRef"change"handleChange"v-model"value"placeholder"请选择"style"width: 250px"><el-optionv-for&q…...

乐划锁屏充分发挥强创新能力,打造内容业新生态
乐划锁屏作为新型内容媒体,在这一市场有着众多独特的优势,不仅能够通过多场景的联动给内容创作者带来了更多可能性,还促进了更多优质作品的诞生,为用户带来更加丰富多彩的锁屏使用体验。 作为OPPO系统原生的OS应用,乐划锁屏一直致力于打造为用户提供至美内容的内容平台,吸引了全…...

防御第三天
1.总结当堂NAT与双机热备原理,形成思维导图 2.完成课堂NAT与双机热备实验 fw1: <USG6000V1>sy [USG6000V1]int g0/0/0 [USG6000V1-GigabitEthernet0/0/0]ip add 192.168.18.2 24 [USG6000V1-GigabitEthernet0/0/0]service-manage all permit (地址无所谓&…...

用JavaScript和HTML实现一个精美的计算器
文章目录 一、前言二、技术栈三、功能实现3.1 引入样式3.2 编写显示页面3.2 美化计算器页面3.3 实现计算器逻辑 四、总结 一、前言 计算器是我们日常生活中经常使用的工具之一,可以帮助我们进行简单的数学运算。在本博文中,我将使用JavaScript编写一个漂…...

基于postgresl的gaussDB(DWS)地址省市区解析函数
地址格式为: 省(自治区,直辖市)、市、区。 直辖市的地址格式为, 北京市北京市海淀区xxxxx。 若是北京市海淀区xxx,自己改改就可以了 采用的是笨办法,穷举。 涉及的两个主要内置函数。 1. instr( <start_positio…...

【Golang】Golang进阶系列教程--Go 语言 new 和 make 关键字的区别
文章目录 前言new源码使用 make源码使用 总结 前言 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 在 Go 语言中,有两个比较雷同的内置函数…...

Day 9 C++ 内存分区模型
目录 内存四区 代码区 全局区 栈区 堆区 内存四区意义: 程序运行前后内存变化 程序运行前 代码区 全局区 程序运行后 栈区 堆区 new操作符 基本语法 创建 释放(delete) 内存四区 代码区 代码区(Code Segment&…...

STM32 CubeMX 定时器(普通模式和PWM模式)
STM32 CubeMX STM32 CubeMX 定时器(普通模式和PWM模式) STM32 CubeMXSTM32 CubeMX 普通模式一、STM32 CubeMX 设置二、代码部分STM32 CubeMX PWM模式一、STM32 CubeMX 设置二、代码部分总结 STM32 CubeMX 普通模式 一、STM32 CubeMX 设置 二、代码部分 …...

mysql清除主从复制关系
mysql清除主从复制关系 mysql主从复制中,需要将主从复制关系清除,需要取消其从库角色。这可通过执行RESET SLAVE ALL清除从库的同步复制信息、包括连接信息和二进制文件名、位置。从库上执行这个命令后,使用show slave status将不会有输出。reset slave是各版本Mysql都有的功…...

Spring Cloud Eureka 服务注册和服务发现超详细(附加--源码实现案例--及实现逻辑图)
文章目录 EurekaEureka组件可以实现哪些功能什么是CAP原则?服务注册代码实战搭建注册中心服务A搭建服务B搭建启动服务启动注册中心启动服务A启动服务B 结束语 Eureka 这篇文章先讲述一下Eureka的应用场景、代码实现案例,多个服务模块注册到Euraka中&…...