SQL Server SQL语句

news2024/12/23 1:36:59

 在很多情况下,可以用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约束

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web安全php基础_php变量命名及其作用域

php变量命名规则 php变量命名规则 变量以 $ 符号开始&#xff0c;后面跟着变量的名称变量名必须以字母或者下划线字符开始变量名只能包含字母数字字符以及下划线&#xff08;A-z、0-9 和 _ &#xff09;变量名不能包含空格变量名是区分大小写的&#xff08;$y 和 $Y 是两个不…

戴尔笔记本开机输入密码后黑屏只有鼠标,没有桌面的解决参考办法

戴尔笔记本开机输入密码后黑屏只有鼠标&#xff0c;没有桌面的解决参考办法 网络常用方法方法一&#xff1a;cmd启动资源管理器方法二&#xff1a;进入安全模式 以上两个方法我的电脑无效&#xff0c;因此我怀疑是启动项的问题更改启动项 网络常用方法 方法一&#xff1a;cmd启…

道路车辆功能安全第2 部分:功能安全管理

道路车辆功能安全 第2 部分&#xff1a;功能安全管理 1 范围 GB/T 34590的本部分规定了应用于汽车领域的功能安全管理的要求&#xff0c;包括&#xff1a; ——独立于项目的关于所涉及组织的要求&#xff08;整体安全管理&#xff09;&#xff1b;及 ——项目特定的在安全生命周…

zip解压文件,可选择保留的文件夹及该文件夹下的所有文件

zip解压文件&#xff0c;可选择保留的文件夹及该文件夹下的所有文件 代码&#xff1a; zip里面的文件&#xff1a; public static void main(String[] args) {// 要解压的ZIP文件路径String zipFilePath "G:\\WeChat\\WeChat Files\\wxid_aff2r4isimwl22\\FileStorage…

司守奎<数学建模算法应用>第二版----第一章习题解答

司守奎<数学建模算法应用>第二版----第一章习题解答 1.1题目代码 1.2题目 1.3题目代码 1.4题目分析代码 1.1 题目 这道题就是简单的一个线性规划模型,不要求我们自行建立,所以就按照书本上的例题去写就行 代码 % 例题1 %使用matlab解决线性规划问题 %目标函数:z3x1-x2…

GLM-130B本地部署的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

K8S调度管理

调度管理 1.1 调度框架1.1.1 调度体系1.1.2 资源调度 1.2 资源调度1.2.1 节点调度1.2.2 节点亲和1.2.3 Pod亲和1.2.4 Pod反亲和1.2.5 污点&容忍度1.2.6 污点实践 1.3 流量调度1.3.1 Ingress基础1.3.2 Ingress实践1.3.3 Ingress进阶1.3.4 Ingress认证1.3.5 Ingress扩展 1.1 …

【数据结构与算法】求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值

题目 Qestion: 求任意二叉树中第一条最长的路径长度&#xff0c;并输出此路径上各结点的值。 数据结构与定义 typedef struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right; } TreeNode;二叉树形状 核心代码 void FindLongesetPath(TreeNode *node, int…

ChatGPT越来越火,大厂体验设计师纷纷“毕业”?

2020年至2022年是很艰难的三年&#xff0c;全球经济受到沉重打击&#xff0c;我国也不例外。再加上人口红利的削弱&#xff0c;作为体验领域排头兵的互联网行业已经从巅峰状态回落下来&#xff0c;行业光环几乎消失。随之而来的是&#xff0c;国内各个大厂先后开始“降本增效”…

如何在半导体行业运用IPD?

半导体产业链具体包括上游半导体原材料与设备供应、中游半导体产品制造和下游应用。其中&#xff0c;半导体材料处于上游供应环节&#xff0c;材料品类繁多&#xff0c;按制造流程可细分为前端制造材料和后端封装材料。半导体设备&#xff0c;即在芯片制造和封测流程中应用到的…

github上传超过100M的大文件

当上传的工程中有超过100M的文件时&#xff0c;直接上传github会产生如下报错&#xff1a; remote: error: File retinaface-R50/R50-0000.params is 112.54 MB; this exceeds GitHubs file size limit of 100.00 MB! [remote rejected] master -> master (pre-receive ho…

一文了解Docker之网络模型

目录 1.Docker网络 1.1 Docker网络模型概述 1.2 Docker网络驱动程序 1.2.1 host模式 1.2.2 bridge模式 1.2.3 container模式 1.2.4 none模式 1.3 Docker网络命令示例 1.3.1 创建一个自定义网络 1.3.2 列出所有网络 1.3.3 连接容器到网络 1.3.4 断开容器与网络的连接…

ASO优化之海外应用的评分评论

应用评分评论是所有用户生成的反馈汇总&#xff0c;用1-5星等级来表示。这是用户在搜索应用程序是最先想到的事情&#xff0c;所以这对于应用商店优化很重要。 应用商店里有数以万计的应用程序可供使用&#xff0c;并且每天都会发布新的应用&#xff0c;所以为了在竞争激烈的应…

如何让小家电带电池设备快速充满电

如今随着这几年的USB-C PD适配器的普及&#xff0c;消费者手上的PD协议适配器越来越普遍&#xff0c;如何让微软surface 充电器线支持使用PD适配器快充呢&#xff1f;不妨加入一颗受电端PD协议取电芯片——LDR6015 就可以打造一根 PD电源线适配pro7/6/5/4/laptop/book/go Type…

【花雕】全国青少年机器人技术一级考试备考实操搭建手册8

随着科技的不断进步&#xff0c;机器人技术已经成为了一个重要的领域。在这个领域中&#xff0c;机械结构是机器人设计中至关重要的一部分&#xff0c;它决定了机器人的形态、运动方式和工作效率。对于青少年机器人爱好者来说&#xff0c;了解机械结构的基础知识&#xff0c;掌…

HarmonyOS极客松“上分秘籍”! 高手们顶峰相见!

HarmonyOS 极客马拉松2023 火热进行中&#xff0c;我们期待与各位开发者相聚一起&#xff0c;践行极客精神&#xff0c;创造无限可能&#xff01; 我们鼓励各位极客们自由组队&#xff0c;挥洒创意&#xff0c;用HarmonyOS 探索移动应用和服务的更多可能性&#xff01; 优秀的参…

ABB机器人中变量的3种存储类型使用时的区别

ABB机器人中变量的3种存储类型使用时的区别 ABB机器人中变量的存储类型有3种&#xff1a;变量VAR、可变量PERS、常量CONST&#xff0c;如下图所示&#xff0c; 如下图所示&#xff0c;声明一个VAR类型的变量&#xff0c;具体语法格式&#xff1a; 3种存储类型的具体区别如下…

vue3+ts 绘制流程图 vueflow 附代码及效果图

已完成渲染流程图&#xff0c;自定义模板内容(上下分级),自定义样式&#xff0c;新增节点addRandomNode&#xff0c;点击修改节点nodeClickHandler(从父组件传值) 官网&#xff1a;https://vueflow.dev/guide/node.html#node-template 文档比较复杂&#xff0c;很多想找的方法…

nohup命令解决SpringBoot/java -jar命令启动项目运行一段时间自动停止问题

问题描述&#xff1a; 在centos7上部署多个springcloud项目。出现了服务莫名其妙会挂掉一两个的问题&#xff0c;重新启动挂掉的服务之后又会出现其他服务挂掉的情况&#xff0c;查看启动日志也并没有发现有异常抛出。令人费解的是所有的服务都是通过nohup java -jar xxx.jar …

2020年国赛高教杯数学建模C题中小微企业的信贷决策解题全过程文档及程序

2020年国赛高教杯数学建模 C题 中小微企业的信贷决策 原题再现 在实际中&#xff0c;由于中小微企业规模相对较小&#xff0c;也缺少抵押资产&#xff0c;因此银行通常是依据信贷政策、企业的交易票据信息和上下游企业的影响力&#xff0c;向实力强、供求关系稳定的企业提供贷…