SQL Server SQL脚本

article/2025/9/14 11:47:10

本节的主要内容是要教大家怎么通过编写 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语句最简单的例子:

  1. SELECT * FROM Tasks

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

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

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

 

上述语句从任务表 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. 点击该工具栏上的执行按钮:

 

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


下面提供的是脚本:

 

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

键盘快捷键

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

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

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

通过SQL脚本添加数据

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

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

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

  1. INSERT INTO Status (StatusName) VALUES ('To Do');
  2. INSERT INTO Status (StatusName) VALUES ('In Progress');
  3. INSERT INTO Status (StatusName) VALUES ('Done');
  4. SELECT * FROM Status

这里是这个样子的:


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

 

交叉参考数据

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

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

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

运行下面的脚本:

  1. UPDATE Tasks
  2. SET StatusId='1'
  3. WHERE TaskId='1';
  4. UPDATE Tasks
  5. SET StatusId='1'
  6. WHERE TaskId='2';
  7. UPDATE Tasks
  8. SET StatusId='2'
  9. WHERE TaskId='3';
  10. UPDATE Tasks
  11. SET StatusId='3'
  12. WHERE TaskId='4';
  13. UPDATE Tasks
  14. SET StatusId='3'
  15. WHERE TaskId='5';
  16. UPDATE Tasks
  17. SET StatusId='2'
  18. WHERE TaskId='6';
  19. UPDATE Tasks
  20. SET StatusId='1'
  21. WHERE TaskId='7';
  22. SELECT * FROM Tasks

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

合并脚本

 

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

区分大小写

SQL 语句不区分大小写。

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

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

数据库管理

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

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


http://chatgpt.dhexx.cn/article/jLnVaqqS.shtml

相关文章

SQL Server 数据库之生成与执行 SQL 脚本

生成与执行 SQL 脚本 1. 将数据库生成2. 将数据表生成 SQL 脚本4. 执行 SQL 脚本 1. 将数据库生成 使用对象资源管理器能快速创建整个数据的脚本,也能使用默认选项创建单个数据库对象的脚本; 用户能在查询编辑器窗口中对文件或剪贴板创建脚本&#xff0…

SQL 常用脚本大全

1、行转列的用法PIVOT CREATE table test (id int,name nvarchar(20),quarter int,number int) insert into test values(1,N苹果,1,1000) insert into test values(1,N苹果,2,2000) insert into test values(1,N苹果,3,4000) insert into test values(1,N苹果,4,5000) insert …

打砖游戏,详解每一行代码,历经三个小时解析,初学可看

打转游戏详解版 网上只要搜一下“打砖游戏”,基本会看到很多一样的代码,主要是注释也很少,对于python不熟悉的人来说,根本看不懂,只会拿来运行着玩玩。 于是我历经三个小时,把代码几乎每一行都注释了一遍&…

今天开始敲代码

新手小白今天开始自学敲代码了呜呜呜 加油加油加油

开发12年,整整6百万行代码,史上最烂的开发项目长这样

程序员(ID:imkuqin)猿妹编译 原文:https://projectfailures.wordpress.com 最近有个史称世界上最烂的开发项目在朋友圈刷屏,这个项目到底有多烂呢? 这个项目拖了整整12年,造出6百万行代码&#…

“低代码”抢走程序员的饭碗?没有的事

编者按:眼下发展势头正猛的低代码,承受着两种截然不同的声音。一种声音觉得低代码是“减负”神器,可以帮助减轻开发工作量,大幅提升开发效率;另一种声音却觉得低代码非“善类”(主要是程序员群体&#xff0…

程序是如何跑起来的

一个简单的11?的问题对于我们而言就是脱口而出,而对于计算机却不是这样。 那么当我们用从c语言或者其他高级语言来写的时候计算机是如何工作运算加法(其他原理类似)的呢? 当c语言由编写到运行程序需要经过 1.预处理 2.编译 …

据说程序员写完代码是这个样子,99%的人都中枪了

点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! 1、当你改错一行代码的时候 2、当你想要重构别人的代码时 3、当你尝试想要修复一个bug时的样子 4、当你凌晨4点还在工作时的样子 5、星期五下午项目经理给你分配任务时的样…

祖传代码千万别动

IT程序猿 微博网友评论: 洞侠X:祖传 爱因斯坦老道士:这是傻啊 砸自己脚下的 前端折腾小能手:嗯 sunnysab:想要改进代码的时候 精彩回顾 ♡ 程序员究竟能干多少年? ♡ 互联网公司各岗位真实工作内容起底 ♡ …

泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?

大多数互联网的从业者都有一个梦想:进大厂。 因为不仅可以享受较好的福利待遇,也能与更优秀的人一起共事,获得更专业、更快速的成长。 最近经常有朋友提及想要入门编程学习,该如何学习? 关于编程学习,各…

刚进公司就把祖上十八代单传的代码优化了是什么体验?

刚进公司就把祖传代码优化了,让公司的APP稳定性提高一半,大幅提升了用户体验是什么体验? 一个字!爽! 这不比斗破里面萧炎“三年之期”打脸嫣然来的爽?不比博人传燃?爽文小说都不敢这么写。 关键,没人信啊。 扮猪吃老虎的大佬 去年金三银四帮公司面试的时候认识了…

百行代码手撸扫雷(下)c/c++

在上一篇文章中已经带大家如何搭建开发环境了 需求分析 这里是一个8*8的地图 地雷随机分布数字表示周围一共有多少颗雷 数字1表示红色区域内有1课雷,2表示有两颗 如何显示数字 右上角没有如何判断呢?行加1或列加一不就越界了吗,所以为了帮面条件判断我们把8行8列改成10行1…

面向祖传代码 Debug,我挽回了一位准备跑路的程序员

交流群的风格突然骤变,没有了往日的灌水扯淡,居然聊起了技术。 看了大家的全部的聊天记录,发现问题并没解决。群里难得这么多人聊技术,抱着问答不断,必有回响的原则,主动勾搭一起看看是什么问题。 大概了解…

第一次敲代码的感受

上图 打了2遍才成功,吐了🤮 第一遍错了好几次,最后还是不知道那错了,发给同学都可以运行,我这电脑确不可以运行! 最后第二遍终于成功了 ,花费一个小时,也不知道还行不&#xff1f…

程序员想知道代码是怎样跑起来的

某一天&#xff0c;程序员使用Java语言实现累加求和的方法&#xff0c;将文件命名为Sample.java。 public class Sample {public static void main(String[] args) {System.out.println(sum(10));}private static int sum(int n) {int res 0;for (int i 1; i < n; i) {res…

从前有一个程序员,成天写代码,后来。。。

之前这里是网易云音乐 的外链&#xff0c;许巍演唱版本的《执着》&#xff0c;我们搞IT 的多少都有些执着&#xff0c;后来网页没有了版权&#xff0c;我只好放上来歌词了。 如果对文章没有太多兴趣&#xff0c;可以只读一遍歌词&#xff0c;或者听一遍歌&#xff0c;哈哈。 每…

开发10年程序员,坐标北京,今天我硬气一回把老板炒了!!!

我的情况 随着越来越多的零基础非专业跳槽人员以及大学计算机专业学生越来越多,导致程序员找工作门槛也越来越高。虽然有着三年的开发经验,也自认为自己能解决很多问题。但是从找工作的这段时间才发现,自己的解决问题的能力是有,但是技术深度不够扎实。 通过对比自己和中…

低代码起势,程序员闷头开发的日子结束了

对于“低代码”的宣传其实已经很久很广泛了&#xff0c;但是争议从来都没有停止。“低代码将会取代程序员”的说法也很荒谬&#xff0c;今天系统整理了低代码&#xff0c;希望能对大家有启示&#xff0c;同时也欢迎各位在评论区指正探讨。 何方神圣&#xff1f; 所谓的低代码开…

程序员的炫技代码写法

程序员的炫技代码写法 程序员&#xff0c;这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作&#xff0c;让人不禁感叹他们的技术能力之高。在这篇博客中&#xff0c;我想和大家分享一些我所知道的程序员的炫技代码写法。 一、代码美感——…

一串代码让你成为机房最靓的仔

1.创建一个记事本文件 2.编辑文件内容 语法格式 color 背景色字体颜色 echo 输出的内容 %0&#xff08;无线循环&#xff09;例如在文件中输入以下内容并保存 color 1a echo 666666 color 2b echo 666666 color 3c echo 666666 color 4d echo 666666 color 5e echo 666666 c…