Transact-SQL概述(SQL Server 2022)

news/2024/9/24 17:37:58/

新书速览|SQL Server 2022从入门到精通:视频教学超值版_sql server 2022 出版社-CSDN博客

《SQL Server 2022从入门到精通(视频教学超值版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)

SQL Server数据库技术_夏天又到了的博客-CSDN博客

在前面的章节中,其实已经使用了Transact-SQL语言,只是没有系统地对该语言进行介绍。事实上,不管应用程序的用户界面如何,与SQL Server 实例通信的所有应用程序都通过将Transact-SQL 语句发送到服务器进行通信。

数据库进行查询和修改操作的语言叫作SQL,其含义是结构化查询语言(Structured Query Language)。SQL有许多不同的类型,有3个主要的标准:①ANSI(American National Standards Institute,美国国家标准协会)SQL;②对ANSI SQL修改后在1992年采纳的标准,称为SQL92或SQL2;③最近的SQL99标准。SQL99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。其次,各大数据库厂商提供了不同版本的SQL。这些版本的SQL支持原始的ANSI标准,而且在很大程度上支持新推出的SQL92标准。

Transact-SQL语言是SQL的一种实现形式,它包含标准的SQL语言部分。标准的SQL语句几乎完全可以在Transact-SQL语言中执行,因为包含这些标准的SQL语言来编写应用程序和脚本,所以提高了它们的可移植性。Transact-SQL语言在具有SQL的主要特点的同时,还增加了变量、运算符、函数、流程控制和注释等语言因素,使得Transact-SQL的功能更加强大。另外,在标准的ANSI SQL99外,Transact-SQL语言根据需要又增加了一些非标准的SQL语言。在有些情况下,使用非标准的SQL语言可以简化一些操作步骤。

4.1.1  什么是Transact-SQL

Transact-SQL是Microsoft公司在关系数据库管理系统SQL Server中的SQL3标准的实现,是微软对SQL的扩展。在SQL Server中,所有与服务器实例的通信都是通过发送Transact-SQL语句到服务器来实现的。根据其完成的具体功能,可以将Transact-SQL语句分为四大类,分别为数据操作语句、数据定义语句、数据控制语句和一些附加的语言元素。

数据操作语句:

SELECT,INSERT,DELETE,UPDATE

数据定义语句:

CREATE TABLE,DROP TABLE,ALTER TABLE,CREATE VIEW,
DROP VIEW,CREATE INDEX,DROP INDEX,CREATE PROCEDURE
ALTER PROCEDURE,DROP PROCEDURE,CREATE TRIGGER,
ALTER TRIGGER,DROP TRIGGER

数据控制语句:

GRANT,DENY,REVOKE

附加的语言元素:

BEGIN TRANSACTION/COMMIT,ROLLBACK,SET TRANSACTION,
DECLARE OPEN,FETCH,CLOSE,EXECUTE

4.1.2  Transact-SQL语法的约定

表4-1列出了Transact-SQL参考的语法关系图中使用的约定,并进行了说明。

表4-1  语法约定

   

   

大写

Transact-SQL关键字

斜体

用户提供的Transact-SQL语法的参数

粗体

数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样输入的文本

下画线

指示当语句中省略了带下画线的值的子句时,应用的默认值

|(竖线)

分隔括号或大括号中的语法项。只能使用其中一项

[ ](方括号)

可选语法项。不要输入方括号

{ }(花括号)

必选语法项。不要输入花括号

[,...n]

指示前面的项可以重复n次。各项之间以逗号分隔

[...n]

指示前面的项可以重复n次。每一项由空格分隔

;

Transact-SQL语句终止符。虽然在此版本的SQL Server中大部分语句不需要分号,但将来的版本中需要

<label> ::=

语法块的名称。此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。可使用语法块的每个位置,由括在尖括号内的标签指示:<标签>

除非另外指定,否则所有对数据库对象名的Transact-SQL引用将由4部分名称组成,格式如下:

server_name .[database_name].[schema_name].object_name
| database_name.[schema_name].object_name
| schema_name.object_name
| object_name

  1. server_name:指定链接的服务器名称或远程服务器名称。
  2. database_name:表示如果对象驻留在SQL Server 的本地实例中,则指定SQL Server数据库的名称。如果对象在链接服务器中,则database_name将指定OLE DB目录。
  3. schema_name:表示如果对象在SQL Server 数据库中,则指定包含对象的架构的名称。如果对象在链接服务器中,则schema_name将指定 OLE DB 架构名称。
  4. object_name:表示对象的名称。

引用某个特定对象时,不一定要指定服务器、数据库和架构供SQL Server数据库引擎标识该对象。但是,如果找不到对象,就会返回错误消息。

除使用时完全限定引用时的4个部分外,在引用时若要省略中间节点,则需要使用句点来指示这些位置。表4-2显示了引用对象名的有效格式。

表4-2  引用对象名的有效格式

引用对象名的格式

   

server . database . schema . object

4个部分的名称

server . database .. object

省略架构名称

server .. schema . object

省略数据库名称

server ... object

省略数据库和架构名称

database . schema . object

省略服务器名

database .. object

省略服务器和架构名称

schema . object

省略服务器和数据库名称

object

省略服务器、数据库和架构名称

许多代码示例用字母N作为Unicode字符串常量的前缀。如果没有N前缀,则字符串被转换为数据库的默认代码页。此默认代码页可能不识别某些字符。


http://www.ppmy.cn/news/1529911.html

相关文章

机器学习和深度学习的区别:从基础到前沿

随着人工智能&#xff08;Artificial Intelligence, AI&#xff09;的不断发展&#xff0c;机器学习&#xff08;Machine Learning, ML&#xff09;和深度学习&#xff08;Deep Learning, DL&#xff09;这两个术语变得越来越重要。它们在推动AI技术进步中发挥着关键作用&#…

【Kubernetes】常见面试题汇总(三十三)

目录 85.简述 kube-proxy 的三种工作模式和原理。 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于【Kubernetes】的生产应用题。 85.简述 kub…

uber-go/zap sirupsen/logrus

文章目录 uber-go/zap 和 sirupsen/logrus日志库对比1. **性能**2. **易用性和灵活性**3. **结构化日志**4. **生态系统和可扩展性**5. **输出格式**6. **使用场景**总结 Zap库在Gin中的实践1. **安装 zap**2. **封装 zap 日志**logger.go - 封装 zap 日志3. **将 zap 集成到 g…

Linux打包压缩命令

1.tar&#xff1a;文件的归档&#xff08;打包&#xff09;和压缩 优点 &#xff1a;节约硬盘的资源 &#xff0c;加快文件传输速率 用法&#xff1a;tar [选项] 压缩后生成文件 打包文件 参数&#xff1a; -c&#xff1a;创建文件 …

MySQL_数据类型简介

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

车辆合格证识别接口-汽车管理智能化-python示例

随着汽车行业的蓬勃发展和数字化进程的加快&#xff0c;如何高效、准确地管理车辆信息成为众多企业面临的重要挑战。新车合格证作为新车上牌、车辆注册和管理的重要凭证&#xff0c;其识别与录入的准确性直接关系到业务流程的顺畅。新车合格证识别接口应运而生&#xff0c;为汽…

Python知识点:如何使用Python进行物联网数据处理

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 物联网数据处理&#xff1a;Python实战指南 物联网&#xff08;IoT&#xff09…

Visual Studio 2022 - QT 环境中文字符乱码问题

Visual Studio 2022 - QT 环境中文字符乱码问题 一、Visual Studio 2022 - Qt 环境 在 QT 中使用中文字符串常会出现乱码现象&#xff0c;如下&#xff1a;以下提供了几个解决方法&#xff0c;仅供参考 QString str "百香果真是一直可爱的小猫咪"; qDebug() <…