首页 > 数据库 >SQL Server SQL脚本

SQL Server SQL脚本

时间:2024-03-01 10:11:51浏览次数:25  
标签:脚本 语句 Tasks Status SQL Server StatusId

本节的主要内容是要教大家怎么通过编写 SQL 脚本来查询、更新并且运行数据库。

利用 SQL 脚本我们能做很多事情,比如插入数据、读取数据、更新数据以及删除数据等;它们也可以用于创建数据库对象,如表,视图,存储过程,他们甚至可以用于创建整个数据库、数据、用户等。

什么是 Transact-SQL

SQL Server 支持 Transact-SQL 作为脚本语言。

Transact-SQL 是基于 SQL(结构化查询语言),它是用于应用程序和它们的数据库之间的接口的编程语言。

Transact-SQL 是一个相对容易的语言学习,这里提到的 SQL 脚本,意思就是一个 Transact-SQL 脚本。

SQL 语句

SQL 脚本通常由一个或多个“语句”得来的,每个语句告诉 SQL Server 该怎么做。

SQL 脚本可以包含许多语句。例如,SQL 脚本可以包含一个语句创建一个表,另一份声明将数据插入到该表,而另一份语句中,以选择所有刚刚插入到表中的数据。事实上,SQL 有用于确切操作的具体语句:CREATE语句,INSERT语句和SELECT语句。

SQL语句示例

最简单的 SQL 语句就是 SELECT 语句。

下述是一个SELECT语句最简单的例子:

SELECT * FROM Tasks

上述语句表示从任务表中选择所有列,其中(*)表示 “所有列”。

稍微修改上述语句就可以只返回一个特定的列。

我们添加一个 WHERE 子句来过滤数据,只选择我们想要的数据:

SELECT TaskName FROM Tasks
WHERE StatusId = "3"

上述语句从任务表 TaskName 中选择特定列,只返回那些具有 StatusId 为3的记录,值为3 的记录表示了具体的意思。在我们的 TaskTracker 数据库中,我们将创建一个新的表称为Status,我们将指定“3”是指什么。这些数字只是在 StatusId 字段中(我们指定为标识列 - 一个自动编号)的值。这些数字在 StatusName 字段每个相应值将告诉我们实际上是什么状态。

然后,一旦我们已经创建了状态表中,我们可以修改上面的SQL语句,以包括状态表,以便我们可以编写为WHERE StatusName=“To Do”,而不是试图记住“To Do”数字是什么。

使用SQL脚本创建表

下面使用SQL脚本在我们的数据库中新建一个名为 Status 的表。

在此脚本中,我们并不容许任何 NULL 字段(因此 NOT NULL 毗邻每一列)。

我们也将创建主键 StatusId 字段,我们设定的默认值的 dateCreated 字段,使用(getdate())。

请执行以下操作:

  1. 将脚本复制到剪贴板
  2. 在 SQL Server 管理套件,单击工具栏上的新建查询按钮
  3. 将脚本粘贴到查询窗口
  4. 点击该工具栏上的执行按钮:

一旦脚本运行,你应该看到一条消息,读取命令已成功完成。

下面提供的是脚本:

CREATE TABLE Status(
	StatusId int IDENTITY(1,1) NOT NULL,
	StatusName varchar(50) NOT NULL,
	DateCreated datetime NOT NULL CONSTRAINT DF_Status_DateCreated  DEFAULT (getdate()),
	CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId)
)

键盘快捷键

注:也可以通过键盘上的 F5 键来运行一个查询。

另外,你甚至可以通过选择要运行的部分,然后按 F5 运行查询的一部分。

这包含大量的 SQL 语句的较大的脚本,但是,当由于某种原因,只要运行的一个或两个(或甚至运行所有这些,但只是一次一个)。

通过SQL脚本添加数据

通过 SQL 脚本添加数据将使用 INSERT 语句将数据插入到指定的表。 

你可以使用脚本插入数据到所有列在表中,或者只是那些指定的表。

使用下面的脚本将数据插入 Status 表,然后选择该数据:

INSERT INTO Status (StatusName) VALUES ('To Do');
INSERT INTO Status (StatusName) VALUES ('In Progress');
INSERT INTO Status (StatusName) VALUES ('Done');

SELECT * FROM Status

这里是这个样子的:

正如你所看到的,查询的结果显示在底部窗格中。

交叉参考数据

现在,我们已经得到了 Status 表,让我们把值添加到任务表的 StatusId 字段中(还记得我们保留那个字段为空的所有记录,因为我们还没有Status表)。

所以我们增加值要将任务表链接到 Status 表。在任务表中的每个记录现在将有一个 StatusId,它的值可能是 1,2 或 3(在状态表的 StatusId 字段中匹配的值)。

现在,我们需要使用 UPDATE 语句(因为我们正在更新记录,而不是插入新的)。

运行下面的脚本:

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='1';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='2';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='3';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='4';

UPDATE Tasks
SET StatusId='3'
WHERE TaskId='5';

UPDATE Tasks
SET StatusId='2'
WHERE TaskId='6';

UPDATE Tasks
SET StatusId='1'
WHERE TaskId='7';

SELECT * FROM Tasks

现在应该看到其 StatusId 字段中填写的所有记录您的任务表:

合并脚本

事实上,我们可能只是很容易地结合上述所有脚本并运行它们为一体。我只保留了它们,才能分离出来,使其更易于了解哪些部分做什么。

更多关于 SQL 语句的至少,请看SQL教程

区分大小写

SQL 语句不区分大小写。

下面的语句都是执行同样的事情:

  • SELECT * FROM TASKS
  • SELECT * FROM Tasks
  • Select * From Tasks
  • select * from tasks

数据库管理

大多数的数据库管理任务(如创建用户,备份等),可以在 SSMS 通过图形用户界面进行编程,可以通过 SQL 脚本来执行。

本教程集中使用的图形用户界面,主要是因为它通常是一个更容易为新用户得到一个简单的入门。 当你更熟悉 SQL Server,就可以使用 SQL 脚本来执行许多任务,也可通过图形用户界面做自己的事情。

接下来,我们看一下查询设计

标签:脚本,语句,Tasks,Status,SQL,Server,StatusId
From: https://www.cnblogs.com/wangtiantian/p/18046360

相关文章

  • SQL Server查询设计器
    您知道如何使用查询设计器编写SQL脚本吗?一起来看看吧。关于查询设计器查询分析器是一个图形化的数据库编程接口,是SQLserver客户端的重要组成部分。在构建复杂的查询,涉及到许多表,视图等的时候,查询分析器特别有用。查询设计器还可以有利于学习如何编写SQL。通过查询设计器生......
  • sql 语句性能优化
    1.查询优化使用SELECTTOP:当只需要返回结果集的一部分时,使用SELECTTOP可以减少数据传输的量,从而提高查询性能。**避免使用SELECT***:只选择需要的列而不是所有列可以减少网络传输的数据量,提高查询速度。使用连接(JOIN)代替子查询:在某些情况下,使用连接代替子查询可以减......
  • Linux openEuler 安装 MySQL
    更新记录点击查看2024年3月1日更新常见问题。2024年2月29日发布。安装需要使用到的命令和包如果有就不用安装了。yum-yinstalltaryum-yinstallvimyum-yinstallnet-toolsyum-yinstalllibncurses*下载MySQL的安装包官网地址:https://downloads.mysql.......
  • 数智融合,华为云GaussDB(for MySQL)助力企业释放数据新价值
    2024年2月27日,在“2024年世界移动通信大会”(MobileWorldCongress2024,简称MWC2024)上,以“云原生×AI,跃迁新机遇”为主题的创原会圆桌成功举办。会上,全球企业技术精英面对面交流,围绕云原生×AI技术变革,分享企业在架构、算力、存储、数智、应用开发、媒体技术、安全体系方面的七......
  • sql中一些小众的函数
    lag()函数:查询当前行向上偏移n行对应的结果该函数有三个参数:第一个为待查询的参数列名,第二个为向上偏移的位数,第三个参数为超出最上面边界的默认值。lead()函数:与上面相反例题:查询连续出现的三次的数字selectdistinctnumasConsecutiveNumsfrom(selectid,......
  • 亿级电商流量,高并发下Redis与MySQL的数据一致性如何保证
    前言:只要使用到缓存,无论是本地缓存还是使用Redis做缓存,那么就会存在数据同步不一致的问题。先读取缓存,缓存数据有,则立即返回结果如果缓存中没有数据,则从数据库中读取数据把读取到的数据同步到缓存中,提供下次读请求返回数据这样的作法是大多数人使用缓存的方式,这样能......
  • SiteServer CMS远程模板下载getshell漏洞导致的黑SEO利用分析溯源
    前言某日中午,涉及一代理商客户网站发现异常SQ内容,要求进行溯源分析并找出根本原因。0x01初步分析通过提供的链接(www.xxx.com.cn/2023j19tPLKn2/55151),确认涉及黑帽SEO活动,通过百度搜索进一步验证也证实了这一点。0x02日志分析黑客常常在植入菠菜或非法广告的网站中设置后......
  • MySQL-17.触发器
    C-17.触发器在实际开发中,经常会遇到这样的情况,有两个或者多个相互关联的表,如商品信息和库存信息分别存放在2个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在库存表中添加一条库存记录。这样一来,我们就必须把这两个关联的操作步骤写在程序里面,而......
  • 使用脚本排查出近n天表空间增长对象
    SETLINES200PAGES200COLOWNERFORA10WITHT1AS(SELECTTO_CHAR(B.BEGIN_INTERVAL_TIME,'YYYYMMDD')SNAPDATE,A.TS#,A.OBJ#,TRUNC(SUM(A.SPACE_ALLOCATED_DELTA)/1024/1024)DELTA_MBFROMDBA_HIST_SEG_STATA,......
  • MutationObserver监听DOM结构变化
    前面有IntersectionObserver观察器实现页面懒加载的功能,原理就是观察dom是否进入视口。那么如果不管是否可见或者要实现随时监听,则需要使用MutationObserver。示例代码:1filterObserve:function(_id){2if($("#"+_id+"formt-form-item").length<5)returnnull......