MS-SQL创建查询排序语句总结
重新捡起枪杆子,学习N年没用过的MS-SQL,整理一些学习笔记记录。
一、创建、修改和删除表
在SQL中,表有如下规则:
- 每张表都有一个名字,通常称为表名或关系名。
 - 表名必须以字母开头,最大长度为 30 个字符。
 - 一张表可以由若干列组成。
 - 同一张表中,列名唯一,列名也称为属性名或字段。
 - 同一列的数据必须有相同的数据类型。
 - 表中的每一列值必须是不可分割的基本数据项。
 - 表中的一行称为一个元组,相当于一条记录。
 
SQL支持以下3种类型的表:
- 永久表
 - 全局临时表
 - 局部临时表
 
创建表
创建数据库中的表,表由行和列组成,每个表都必须有个表名:CREATE TABLE
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
 
注:创建表,必须要保证该表名在数据库中不存在,否则数据库会提示创建失败。如果需要创建已经存在的表,我们必须先将原来的表删除,再重新创建。
修改表
在已有的表中添加、修改或删除列:ALTER TABLE
 表中添加列:ALTER TABLE (表) ADD (列)
 表中删除列:ALTER TABLE (表) DROP COLUMN (列)
 注:一些数据库系统不允许这样删除数据库表中的列。
 表中更改列的数据类型:ALTER TABLE (表) ALTER COLUMN (更改的数据类型)
表的删除与重命名
重命名表:SP_RENAME '原始名','重命名'
 删除表:DROP TABLE 表
二、创建、删除数据库
创建数据库
SQL Server 允许为每个数据库服务创建多个数据库。在 MS-SQL 中,使用 CREATE DATABASE 语句创建数据库的完整语法:
CREATE DATABASE database_name[ ON[ < filespec > [ ,...n ] ][ , < filegroup > [ ,...n ] ]][ LOG ON { < filespec > [ ,...n ] } ]
 
删除数据库
与表的删除类似,数据库的删除是通过 DROP DATABASE 语句来实现的,语法如下:
DROP DATABASE database_name [ ,...n ]
 
三、创建索引与视图
索引的创建与销毁
索引是一个单独的、物理的数据库结构,是数据库的一个表中所包含的值的列表,其中 注明了表的各个值所在的存储位置。索引是依赖于表建立的,提供了编排表中数据的方法。打个比方,把数据库看作一本书,把索引看作书的目录,通过目录查找书 中的信息。显然,与没有目录的书相比,这显得方便和快捷。
 按存储结构的不同将索引分为两类,簇索引 (ClusteredIndex)和非簇索引(Nonclustered Index)。
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) [ WITH { PAD_INDEX | FILLFACTOR = fillfactor | IGNORE_DUP_KEY | DROP_EXISTING | STATISTICS_NORECOMPUTE | SORT_IN_TEMPDB} [ ,...n] ] [ ON filegroup ]
 
UNIQUE (DISTINCT):惟一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。
CLUSTERED/ NONCLUSTERED:聚集和非聚集索引,若为 CLUSTERED,则为聚 集索引,即表中元组按索引项的值排序,并聚集在一起。一个基本表上只能建一个 聚集索引。NONCLUSTERED 表示创建的索引为非聚集索引。缺省时,创建的索引 为非聚集索引。
ASC/DESC:索引表中索引值的排序次序,缺省为 ASC(正序排列)。
索引的销毁
在 SQL 中,无论是簇集索引还是非簇索引,都可以通过 DROP INDEX 关键字销毁。
DROP INDEX (索引名称)
 
在 SQL Server 中,用 DROP INDEX 语句销毁索引时,我们一定要指明索引所在表 的名字。
使用索引的几点原则
- 对小的数据表来说,使用索引并不能提高检索效率,因此不需对其创建索引。
 - 当用户要检索的字段的数据包含有很多数值或很多空值(NULL)时,为该字段创建 索引,会大大提高检索效率。
 - 当用户查询表中的数据时,如果查询结果包含的数据(行)较少,一般少于数据总 数的 25%时,使用索引会显著提高查询效率。反之,如果用户的查询操作返回结果 总是包含大量数据,那么索引的用处不大。
 - 索引列在 WHERE子句中应频繁使用。
 - 我们要先装数据,后建索引。对于大多数的表,总有一批初始数据需要装入。该原则是说,建立表后,我们要先将这些初始数据装入表,然后再建索引,这样可以加快初始数据的录入。如果建表后就建索引,那么在输入初始数据时,每插入一个记
 
录都要维护一次索引;当然,对于索引来说,早建和晚建都是允许的。- 索引提高了数据检索的速度,但也降低了数据更新的速度。如果要对表中的数据进行大量更新,我们最好先销毁索引,等数据更新完毕再创建索引,这样会
 
提高效率。- 索引要占用数据库空间。在设计数据库时,我们要把需要的索引空间考虑在内。 我们要尽量把表和它的索引存放在不同的磁盘上,这样会提高查询速度。
 
四、视图
视图是从一个或多个表中导出的表,其结构和数据是建立在对表的查询基础上的。和表 一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言,这些数据列和数据 行来源于它所引用的表。所以视图不是真实存在的基础表,而是一张虚表。
创建视图
视图的创建主要由 CREATE VIEW 关键字实现,其数据则由 SELECT 语句定义。
CREATE VIEW [(column1, column2...)] AS SELECT FROM
 
销毁视图
在 SQL 中,我们可以通过 DROP VIEW 关键字销毁创建的视图。
DROP VIEW (视图名称)
 
销毁视图,只需在 DROP VIEW 关键字后写入视图的名称就可以了。
视图也有几个原则
- 和表一样,视图必须有唯一的名字。
 - 并且视图与表不允许拥有相同的名字。
 - 视图的创建个数不受限制,用户可以创建任意多个视图。
 - 用户要创建视图,必须从数据库管理员那里得到创建权限。
 - 视图可以嵌套,即可以创建视图的视图。
 - SQL Server禁止用户在查询语句中使用ORDER BY 子句。
 
五、SQL查询语句
SELECT语句的完整语法
SELECT [DISTINCT | ALL] select_listFROM table_name_source[ WHERE search_condition ]
[ GROUP BY group_by_expression ][ HAVING search_condition ][ ORDER BY order_expression [ ASC | DESC ] ]
 
DISTINCT:删除查询结果中相同的行。
 ALL:返回查询结果中的所有行。如果没有指定任何一个关键字,那么关键字 ALL 就是默认的关键字。
 WHERE:列出搜索标准,用于选择要显示的数据行。
 GROUP BY :分组查询结果。
 HAVING:列出另外的行选择标准。
 ORDER BY : 对 查询结果进行排列。
 ASC:升序排列结果。
 DESC:降序排列结果。
列的查询
在 SQL 中,查询表中某一列(字段)信息的语法可表示如下
SELECT (表) FROM (字段)
 
注:在 SQL 语言中,SQL 关键词对大小写不敏感,所以对 SELECT 关键词来说, SELECT、select 或者 Select 都是一样的;然而对于表名或者列名来说,可能对大小写 敏感,这取决于数据库的 DBMS。
使用DISTINCT去除重复数据
SELECT 子句中,我们通过指明 DISTINCT 关键字,可以去除列中的重复数据。
SELECT DISTINCT 表 FROM 字段
 
多列查询
多列查询只是在 SELECT 关键词后罗列出所要查询的列名并以逗号相互间隔,注意一点,列出的最后一列的名字后面不能加逗号,否则会造成语法错误。
SELECT col1,col2,……,coln FROM table_name
 
查询所有的列
使用“*”通配符,查询结果将列出表中所有列的元素,而不必指明各列的列名,这在用户不清楚表中各列的列名时非常有用。
SELECT * FROM table_name
 
六、排序查询
单列排序
按照某一列的顺序(升序)进行排列显示的,即 ORDER BY 子句后面只有一个字段。
SELECT column1, column12,……FROM table_name_nameORDER BY column N
 
注:ORDER BY 子句一定要放在所有子句的最后(无论包含多少子句)。
多列排序
根据 ORDER BY 子句后面列名的顺序确定优先级的, 即查询结果首先按照列 col1 的顺序进行排列,而只有当列 col1 出现相同的信息时,这些相同 的信息再按照列 col2 的顺序进行排列,以此类推。
SELECT col1,col2,……,colnFROM table_name
ORDER BY col1,col2,……,colm
 
采用序号进行多列排序
根据列的相对位置(即序号)进行排序。
SELECT col1,col2,……,colnFROM table_name
ORDER BY i,j,……
 
反向排序
要实现反向(降序)排序,我们必须使用关键字“DESC”。
SELECT col1,col2,……,colnFROM table_name
ORDER BY col1 DESC,col2
 
七、使用WHERE子句定义搜索条件查询
WHERE 子句中定义的搜索条件可以是简单的单值比较条件,也可以使用各种运算符、组合子句条件。
参考资料:
 https://learn.microsoft.com/zh-cn/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16
 https://learn.microsoft.com/zh-cn/sql/relational-databases/indexes/indexes?view=sql-server-ver16
 https://learn.microsoft.com/zh-cn/sql/relational-databases/tables/tables?view=sql-server-ver16
 https://learn.microsoft.com/zh-cn/sql/relational-databases/views/views?view=sql-server-ver16
相关文章:
MS-SQL创建查询排序语句总结
重新捡起枪杆子,学习N年没用过的MS-SQL,整理一些学习笔记记录。 一、创建、修改和删除表 在SQL中,表有如下规则: 每张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为 30 个字符。一…...
subprocess—Python多进程模块
subprocess—Python多进程模块 1.概述 这篇文章介绍并行运算中的subprocess模块,subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。 subprocess 它可以用来调用第三方工具(例如&#x…...
【APP渗透测试】 Android APP渗透测试技术实施以及工具使用(客户端服务端)
文章目录前言一、安全威胁分析二、主要风险项三、Android测试思维导图四、反编译工具五、Android客户端漏洞一、Jnaus漏洞漏洞二、数据备份配置风险漏洞漏洞三、Activity组件泄露漏洞漏洞四、BroadcastReceiver组件泄露漏洞漏洞五、允许模拟器Root环境登录漏洞漏洞六、未识别代…...
字符串匹配 - Overview
字符串匹配(String Matchiing)也称字符串搜索(String Searching)是字符串算法中重要的一种,是指从一个大字符串或文本中找到模式串出现的位置。字符串匹配概念字符串匹配问题的形式定义:文本(Text)是一个长度为 n 的数组 T[1..n]&…...
【IP课堂】Ip地址如何进行精准定位?
通过Ip地址定位,是目前网络上最常见的定位方式。当然,也是最简单的定位方式。其实方法大多都是雷同的,通过Ip定位,就目前网上公开的技术。如通过搜索关键词“定位,定位查询,Ip定位”等,只能查询…...
MySQL 临时表相关参数说明区别
MySQL 临时表参数innodb_temp_tablespaces_dir、innodb_temp_data_file_path、innodb_tmpdir、tmpdir 区分 解决方案 innodb_tmpdir: alter table生成中间表文件,innodb_tmpdir有指定效路径,优选选择innodb_tmpdir,没有则选择tm…...
第二章 变量和基本类型
1.string类型数据的另一种初始化方式 语法: string 变量名 (" 初始化内容 "); 2.C中的列表初始化 语法: 数据类型 变量名 { 变量初始化的值 } ; 数据类型 变量名 { 变量初始化的值 } ; 例: 3.引用常量 常量引…...
【Python】循环语句(while,for)、运算符、字符串格式化
一、while循环Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:while 判断条件(condition):执行语句(statements)执行语句可以是单个语句或语句…...
利用设计模式、反射写代码
软件工程师和码农最大的区别就是平时写代码时习惯问题,码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。 业务同学抱怨业务开发没有技术含量,用不到设计模式、Java 高级特性、OOP,平时写代码都在堆 CRUD,个…...
Spring Cloud Alibaba--seata微服务详解之分布式事务(三)
上篇讲述gateway的部署和使用,gateway统一管理和转发了HTTP请求,在互联网中大型项目一定存在复杂的业务关系,尤其在商城类软件中如淘宝、PDD等商城,尤其在秒杀场景中,并发量可以到达千万级别,此时数据库就会…...
[USACO2023-JAN-Bronze] T3 Moo Operations 题解
一、题目描述因为Bessie觉得玩平时经常玩的只包含C O和W的字符串无聊了,Farmer John 给了她Q个新的字符串(1≤Q≤100),这Q个字符串只包含M和O。很明显,只包含M和O的单词里Bessie最喜欢的是”MOO”,所以她希望按照下面两个规则&…...
OKCC呼叫中心支持哪些接入方式?
使用OKCC系统开展呼叫中心业务,要将电话打通,需要什么样的设备接入到OKCC系统呢? 目前实际广泛使用的接入方式,既有硬件网关接入方式,也有软件接入方式,在生产实践中,我们须根据实际的需求及使…...
如何让手机共享电脑代理网络的WIFI热点
参考: 手机共享电脑的proxy网络 把电脑的网络代理给安卓设备如何将电脑的代理网络以WIFI热点的方式共享 电脑端设置代理: 打开电脑上的 proxy软件并设置其端口号(例如:7890),且允许局域网(例如…...
渲染有问题?怎么办?6种方法让你渲染无忧
简单点,解决问题的方式简单点。 日常工作中我们总会遇到各种各样的问题,比如渲不出图,速度太慢或效率太低,各种噪点和黑图等等,烦不胜烦,今天我就针对6个常见的问题给大家说下方法,一家之言仅供…...
中国人寿业务稳定性保障:“1+1+N” 落地生产全链路压测
引言 保险业务的数字化转型正如火如荼地进行,产品线上化、投保线上化、承保线上化、核保线上化等业务转型,导致系统的应用范围不断扩大,用户的高频访问也正在成为常态。同时,系统复杂性也呈指数上升,这些因素都增加了…...
2/17考试总结
时间安排 7:40–7:50 读题,T1 貌似是签到,T2,T4 DP,T3看起来很不可做。 7:50–8:00 T1,差分一下然后模拟就行了。 8:00–10:20 T2,注意到值域很小,可以考虑状压,想到一个状压状态数较少的 dp ,然后挂得彻底。发现有一…...
零信任-360连接云介绍(9)
360零信任介绍 360零信任又称360连接云安全访问平台(下文简称为:360连接云),360连接云,是360基于零信任安全理念,以身份为基础、动态访问控制为核心打造的安全访问平台。 通过收缩业务暴露面、自适应增强身份认证、终端持续检…...
使用dlib进行人脸检测和对齐
最近在配置人脸属性识别的服务,用过faceboxes_detector(faster rcnn的包),也用过face_recognition的,但是她们都没有做人脸对齐,而且检测人脸的范围也不太一样。没有做人脸对齐的时候,使用属性识…...
将python代码封装成c版本的dll动态链接库
前言 将python程序打包成DLL文件,然后用C调用生成的DLL文件,这是一种用C调用python的方法,这一块比较容易遇到坑。网上关于这一块的教程不是很多,而且大部分都不能完全解决问题。我在傻傻挣扎了几天之后,终于试出了一个…...
AI技术网关如何用于安全生产监测?有什么优势?
现代工业生产和运营的规模越来越庞大、系统和结构越来越复杂,现场的风险点多面广,给作业一线的安全监管带来极大的挑战。 针对工地、煤矿、危化品、加油站、烟花爆竹、电力等行业的安全生产监管场景,可以借助AI智能与物联网技术,…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
MySQL基本操作(续)
第3章:MySQL基本操作(续) 3.3 表操作 表是关系型数据库中存储数据的基本结构,由行和列组成。在MySQL中,表操作包括创建表、查看表结构、修改表和删除表等。本节将详细介绍这些操作。 3.3.1 创建表 在MySQL中&#…...
