SQL Server SQL语句

 在很多情况下,可以用CREATE TABLE语句创建数据表、使用ALTER TABLE语句修改表结构、使用DROP TABLE语句删除表;

  可以使用CREATE DATABASE创建数据库、ALTER DATABASE修改文件或文件组、DROP DATABASE语句删除数据库;

1、数据定义语句(DDL)
	表创建——CREATE
	表删除——DROP
	表修改——ALTER

复制

2、数据操作语句(DML)
	数据的插入——INSERT
	数据的更改——UPDATE
	数据的删除——DELETE
	数据的查询——SELECT 

复制

  查询是SQL语言的中心内容,而用于表示SQL查询的SELECT语句,是SQL语句中功能最强大也是最复杂的语句。其主要子句可归纳如下:

	[ WITH <common_table_expression>]
	SELECT select_list [ INTO new_table ]
	[ FROM table_source ] [ WHERE search_condition ]
	[ GROUP BY group_by_expression]
	[ HAVING search_condition]
	[ ORDER BY order_expression [ ASC | DESC ] ]

复制

1)UNION合并多个查询结果:

  表的合并操作将两个表的行合并到了一个表中,且不需要对这些行作任何更改。

  合并操作与联接相似,因为它们都是将两个表合并起来形成另一个表的方法。然而,它们的合并方法有本质上的不同,结果表的形状如下所示。

注:A和B分别代表两个数据源表。

  使用UNION合并不同类型的数据。合并有不同列数的两个表,还可以进行多表合并。

2)子查询与嵌套查询:

  子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。

  嵌套查询是指将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询。嵌套查询中上层的查询块称为外侧查询或父查询,下层查询块称为内层查询或子查询。

	使用比较运算符
	使用IN关键字
	使用ANY、SOME和ALL关键字
	使用EXISTS关键字

复制

3)联接查询:

  联接查询是由一个笛卡尔乘积运算再加一个选取运算构成的查询。首先用笛卡尔乘积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算,确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。联接的全部意义在于水平方向上合并两个数据集合,并产生一个新的结果集合。

  联接条件可在 FROM 或 WHERE 子句中指定,建议在 FROM 子句中指定联接条件。WHERE 和 HAVING 子句还可以包含搜索条件,以进一步筛选根据联接条件选择的行。

多表连接查询:

	相等连接
	不等连接
	带选择条件的连接
	自连接

复制

左外连接:

USE Test
SELECT student.s_id, stu_detail.addr
FROM student LEFT OUTER JOIN stu_detail
ON student.s_id = stu_detail.s_id;

复制

右外连接:

USE Test
SELECT student.name, stu_detail.s_id
FROM student RIGHT OUTER JOIN stu_detail
ON student.s_id = stu_detail.s_id;

复制

全外连接:

USE Test
SELECT student.name, stu_detail.addr
FROM student FULL OUTER JOIN stu_detail
ON student.s_id = stu_detail.s_id;

复制

4)使用CASE函数进行查询:

  联接可分为以下几类:内部联接、外部联接、交叉联接

  CASE函数用于计算条件列表并返回多个可能结果表达式之一。

  CASE函数具有两种格式:

	简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
	CASE 搜索函数计算一组布尔表达式以确定结果。

复制

  两种格式都支持可选的 ELSE 参数。

5)使用DISTINCT取消重复

6)使用TOP返回前n行

7)使用WHERE子句进行条件查询

	使用关系表达式查询
	使用BETWEEN AND表示范围
	使用IN关键字
	使用LIKE关键字
	使用IS NULL查询空值
	使用EXISTS关键字
	使用ORDER BY排序
	使用GROUP BY分组
	使用HAVING对分组结果过滤
	使用COMPUTE子句对查询结果小计
	使用COMPUTE BY子句分组小计
	使用UNION合并查询结果集

复制

8)使用聚合函数统计汇总

	使用SUM()求列的和
	使用AVG()求列平均值
	使用MAX()求列最大值
	使用MIN()求列最小值
	使用COUNT()统计

复制

  9)使用排序函数

	ROW_NUMBER函数
	RANK函数
	DENSE_RANK()函数
	NTILE()函数

复制

3、数据控制语句(DCL)
	给用户授予权限——GRANT
	拒绝权限操作——DENY 
	收回权限操作——REVOKE

复制

4、其他基本语句
	数据声明——DECLARE
	数据赋值——SET
	数据输出——PRINT

复制

5、流程控制语句
	BEGIN…END语句
	IF…ELSE语句
	CASE语句
	WHILE语句
	GOTO语句
	WAITFOR语句
	RETURN语句

复制

6、批处理语句

  批处理是从应用程序发送到SQL Server并得以执行的一条或多条T-SQL语句。使用批处理时,有下面一些注意事项。

  一个批处理中只要存在一处语法错误,整个批处理都无法通过编译。

  批处理中可以包含多个存储过程,但除第一个过程外,其他存储过程前面都必须使用EXECTUE关键字。

  某些特殊的SQL指令不能和别的SQL语句共存在一个批处理中,如CREATE TABLE和CREATE VIEW语句。这些语句只能独自存在于一个单独的存储过程中。

  所有的批处理使用GO作为结束的标志,当编译器读到GO的时候就把GO前面的所有语句当成一个批处理,然后打包成一个数据包发给服务器。

  GO本身不是T-SQL的组成部分,只是一个用于表示批处理结束的前端指令。

  CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE SCHEMA、CREATE TRIGGER和CREATE VIEW语句不能在批处理中与其他语句组合使用。批处理必须以 CREATE 语句开头,所有跟在该批处理后的其他语句将被解释为第一个 CREATE 语句定义的一部分。

  不能在删除一个对象之后,在同一批处理中再次引用这个对象。

  如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。

  不能在定义一个CHECK约束之后,在同一个批处理中使用。

  不能在修改表的一个字段之后,立即在同一个批处理中引用这个字段。

  使用SET语句设置的某些选项值不能应用于同一个批处理中的查询。

7、规则、默认和完整性约束

  规则是对存储的数据表的列或用户定义数据类型中的值的约束,规则与其作用的表或用户定义数据类型是相互独立的,也就是说,对表或用户定义数据类型的任何操作与对其设置的规则不存在影响。

1)规则的基本操作:

	创建规则
	把自定义规则绑定到列
	验证规则作用
	取消规则绑定
	删除规则

复制

2)默认的基本操作

	创建默认
	把自定义默认绑定到列
	验证默认作用
	取消默认绑定
	删除默认

复制

3)完整性约束

	主键约束
	外键约束
	唯一性约束
	CHECK约束
	DEFAULT约束
	NOT NULL约束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34979.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】MySQL基本语句大全

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️MySQL】 文章目录 前言结构化查询语句分类MySQL语句大全&#x1f4da;DDL&#xff08;对数据库和表的操作&#xff09;&#x1f916;DQL&#xff08;查询语句&#xff09;&#x1f4bb;关键字&#x…

AI最新开源:LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊

一周SOTA&#xff1a;LMSYS Org开源LongChat、法律大语言模型ChatLaw、中文医疗对话模型扁鹊 文章目录 1. LMSYS Org发布LongChat&#xff0c;上下文碾压64K开源模型2. 北大团队发布法律大模型 ChatLaw3. 扁鹊&#xff1a;指令与多轮问询对话联合微调的医疗对话大模型 1. LMSY…

目标检测的评估指标

Precision(精确率/查准率)&#xff1a;是指在所有被预测为正的样本中&#xff0c;确实是正样本的占比。当Precision越大时&#xff0c;FP越小&#xff0c;此时将其他类别预测为本类别的个数也就越少&#xff0c;可以理解为预测出的正例纯度越高。Precision越高&#xff0c;误检…

使用 Jackson 库对日期时间的动态序列化反序列化操作

0.背景 因某项目中的数据报表功能在创建年报 和月报时需要生成不同的日期格式&#xff0c;但数据结构未变&#xff0c;为避免类的冗余定义&#xff0c;故使用如下方式来动态设置日期格式&#xff0c;在不同报表是使用不同格式的时间格式来保存数据。 1.代码介绍 PS:此介绍有Cha…

Quiz 12: Regular Expressions | Python for Everybody 配套练习_解题记录

文章目录 Python for Everybody课程简介Regular Expressions单选题&#xff08;1-8&#xff09;操作题Regular Expressions Python for Everybody 课程简介 Python for Everybody 零基础程序设计&#xff08;Python 入门&#xff09; This course aims to teach everyone the …

OpenCV——分水岭算法

目录 一、分水岭算法1、概述2、图像分割概念3、分水岭算法原理 二、主要函数三、C代码四、结果展示1、原始图像2、分割结果 五、参考链接 一、分水岭算法 1、概述 分水岭算法是一种图像分割常用的算法&#xff0c;可以有效地将图像中的目标从背景中分离出来。本文以OpenCV库中…

神坑:ElasticSearch8集群启动报错“Device or resource busy”(Docker方式)

昨天在Docker中配置ElasticSearcch8集群模式时&#xff0c;先初步配置了master主节点。然后主节点启动就报错&#xff0c;看日志&#xff0c;提示“Device or resource busy”。异常第一句大概这个样子&#xff1a; Exception in thread "main" java.nio.file.FileS…

【ARIMA-WOA-CNN-LSTM】合差分自回归移动平均方法-鲸鱼优化-卷积神经网络-长短期记忆神经网络研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Redis优化

目录 一、Redis高可用 二、Redis持久化 1.RDB持久化 1.1触发条件 1.1.1手动触发 1.1.2自动触发 1.2其他自动触发机制 1.3执行流程 1.4启动时加载 2.AOF 持久化 2.1开启AOF 2.2执行流程 2.2.1命令追加(append) 2.2.2文件写入(write)和文件同步(sync) 2.2.3文件重…

docker-compose实现微服务jar+mysql的容器服务发布(经典版)

一 安装mysql服务 1.1 拉取镜像 1.拉取&#xff1a; docker pull mysql:5.7.29 2.查看镜像&#xff1a; docker images 1.2 在宿主机创建文件存储mysql 1.创建映射目录&#xff1a;mysql-c5 在/root/export/dockertest 目录下&#xff0c;mkdir -p mysql-c5 &#…

SpringBoot实战(十九)集成Ribbon

目录 一、负载均衡的分类1.服务端负载均衡2.客户端负载均衡 二、定义和依赖1.Ribbon2.Spring Cloud Ribbon3.Spring Cloud Loadbalancer 三、搭建测试项目1.Maven依赖2.yaml配置3.配置类4.启动类5.接口类 四、测试五、补充&#xff1a;认识 Ribbon 的组件 一、负载均衡的分类 …

open3D cmake+win10+vs2019编译

已经采用python版open3D实现和验证了功能&#xff0c;但是在C迁移上却遇到了不少问题&#xff1a; 1、可能是与本地的编译器存在差异&#xff0c;在使用open3D git上的winows版本时&#xff0c;存在地址访问冲突和std::bad_alloc等问题。前者在适用IO读写时必现&#xff0c;后者…

【动态规划上分复盘】下降路径最小和|礼物的最大价值

欢迎 前言一、动态规划五部曲二、下降路径最小和思路&#xff1a;动态规划解法具体代码如下 三、礼物的最大价值思路&#xff1a;动态规划具体代码如下: 总结 前言 本文主要讲述动态规划思路的下降路径最小和以及礼物的最大价值两道题。 一、动态规划五部曲 1.确定状态表示&a…

Linux【系统学习】(shell篇)

第 1 章 Shell 概述 1&#xff09;Linux 提供的 Shell 解析器有 Ubuntu 使用的是dash 2&#xff09;bash 和 sh 的关系 3&#xff09;Centos 默认的解析器是 bash 第 2 章 Shell 脚本入门 1&#xff09;脚本格式 &#xff08;结尾不是必须以 .sh 结尾&#xff0c;只是为了区…

ModaHub魔搭社区:基于 Amazon EKS 搭建开源向量数据库 Milvus

目录 01 前言 02 架构说明 03 先决条件 04 创建 EKS 集群 05 部署 Milvus 数据库 06 优化 Milvus 配置 07 测试 Milvus 集群 08 总结 01 前言 生成式 AI&#xff08;Generative AI&#xff09;的火爆引发了广泛的关注&#xff0c;也彻底点燃了向量数据库&…

【网络原理之三】应用层协议HTTP和HTTPS

HTTP什么是HTTP工作过程协议格式协议内容HTTP请求MethodURLURL的encode和decode Version请求报头请求正文 HTTP响应状态码响应报头 HTTPSHTTPS执行过程加密对称加密非对称加密 证书 HTTP 什么是HTTP HTTP&#xff1a;超文本传输协议。是一种应用非常广泛的应该层协议。 所谓 “…

图片加载失败捕获上报及处理

图片加载失败捕获上报及处理 前端页面中加载最多的静态资源之一就是图片了&#xff0c;当出现图片加载失败时&#xff0c;非常影响用户体验。这时候我们就需要对图片是否成功加载进行判断&#xff0c;并对图片加载失败进行处理。 图片加载监听 单个捕获 HTML中的img标签可以…

集群 第一章

目录 1.群集的含义 2.群集分类 3.群集架构 4.负载调度工作模式 5.lvs 虚拟服务器 6.nat 模式 lvs 负载均衡群集部署 7.总结 1.群集的含义 由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名与IP地址&#xff09;&#…

威胁和漏洞管理增强远程 IT 安全性

威胁和漏洞管理是保护组织设备和数据的主动方法。它可以帮助管理员识别漏洞并检查安全设置是否薄弱。通过使用此方法&#xff0c;可以在任何弱点成为安全漏洞之前对其进行修复。 对远程威胁和漏洞管理工具的需求 随着越来越多的员工远程工作&#xff0c;网络攻击的可能性也在…