编写Transact-SQL语句

适用于: 是 SQL Server 是Azure SQL数据库是Azure Synapse Analytics(SQL DW)是并行数据仓库

欢迎使用《编写Transact-SQL语句》教程。本教程适用于刚编写SQL语句的用户。通过检查一些有关创建表和插入数据的基本语句,它将帮助新用户开始使用。本教程使用Transact-SQL(SQL标准的Microsoft实现)。本教程旨在作为Transact-SQL语言的简要介绍,而不是代替Transact-SQL类。本教程中的语句刻意简单,并不意味着代表典型生产数据库中的复杂性。

注意:如果您是初学者,则可能会发现使用SQL Server Management Studio比编写Transact-SQL语句更容易。

内容:

  • 创建和查询数据库对象 
  • 配置数据库对象的权限
  • 删除数据库对象

要求

要完成本教程,您不必了解SQL语言,但是您应该了解基本的数据库概念,例如表。在本教程中,您将创建一个数据库并创建一个Windows用户。这些任务需要高级别的权限。因此,您应该以管理员身份登录到计算机。您的系统必须安装以下组件:

  • 任何版本的SQL Server。
  • SQL Server Management Studio

创建和查询数据库对象

本课向您展示如何创建数据库,如何在数据库中创建表以及如何访问和更改表中的数据。因为本课程是使用Transact-SQL的简介,所以它没有使用或描述可用于这些语句的许多选项。

可以通过以下方式编写Transact-SQL语句并将其提交给数据库引擎:

  • 通过使用SQL Server Management Studio。本教程假定您使用的是Management Studio,但是您也可以使用Management Studio Express,可以从Microsoft下载中心免费下载。

  • 通过使用sqlcmd实用程序。

  • 通过从您创建的应用程序进行连接。

无论您如何提交代码语句,代码都以相同的方式和权限在数据库引擎上执行。

若要在Management Studio中运行Transact-SQL语句,请打开Management Studio并连接到SQL Server数据库引擎的实例。

前提条件

要完成本教程,您需要SQL Server Management Studio并访问SQL Server实例。

  • 安装SQL Server Management Studio。

如果您没有SQL Server实例,请创建一个。要创建一个平台,请从以下链接中选择您的平台。如果选择“ SQL身份验证”,请使用SQL Server登录凭据。

  • Windows:下载SQL Server 2017开发人员版。
  • macOS:在Docker上下载SQL Server 2017。

建立数据库

与许多Transact-SQL语句一样,该CREATE DATABASE语句具有必需的参数:数据库的名称。CREATE DATABASE还具有许多可选参数,例如要放置数据库文件的磁盘位置。当您在CREATE DATABASE不使用可选参数的情况下执行时,SQL Server将为许多这些参数使用默认值。

在“查询编辑器”窗口中,键入但不执行以下代码:

CREATE DATABASE TestData  
GO  

使用指针选择单词CREATE DATABASE,然后按F1CREATE DATABASESQL Server联机丛书中的主题应打开。您可以使用此技术来查找CREATE DATABASE本教程中使用的其他语句的完整语法。

在查询编辑器中,按F5键执行该语句并创建一个名为的数据库TestData

创建数据库时,SQL Server会复制模型数据库,并将该副本重命名为数据库名称。除非您将数据库的较大初始大小指定为可选参数,否则此操作仅需几秒钟。

创建数据表

要创建表,必须提供该表的名称以及该表中每一列的名称和数据类型。 指示每列中是否允许使用空值也是一种好习惯。 要创建表,您必须具有CREATE TABLE权限,并且对将包含该表的架构具有ALTER SCHEMA权限。 db_ddladmin固定数据库角色具有这些权限。
大多数表都有一个主键,该主键由表的一个或多个列组成。 主键始终是唯一的。 数据库引擎将强制执行以下限制:表中不能重复任何主键值。
有关数据类型及其链接的列表,请参见数据类型(Transact-SQL)。

注意:

数据库引擎可以区分大小写或不区分大小写地安装。 如果将数据库引擎安装为区分大小写,则对象名称必须始终具有相同的大小写。 例如,名为OrderData的表与名为ORDERDATA的表是不同的表。 如果将数据库引擎安装为不区分大小写,则将这两个表名视为同一表,并且该名称只能使用一次。

切换查询编辑器连接到TestData数据库

在“查询编辑器”窗口中,键入并执行以下代码,以更改与TestData数据库的连接。

USE TestData  
GO  

创建表

在查询编辑器窗口中,键入并执行以下代码以创建名为Products的表。 表中的列名为ProductID,ProductName,Price和ProductDescription。 ProductID列是表的主键。 int,varchar(25),money和varchar(max)都是数据类型。 插入或更改行时,只有Price和ProductionDescription列不能有数据。 该语句包含一个称为架构的可选元素(dbo。)。 模式是拥有表的数据库对象。 如果您是管理员,则dbo是默认架构。 dbo代表数据库所有者。

CREATE TABLE dbo.Products  (ProductID int PRIMARY KEY NOT NULL,  ProductName varchar(25) NOT NULL,  Price money NULL,  ProductDescription varchar(max) NULL)  
GO  

插入或更新表中的数据

既然已经创建了Products表,就可以使用INSERT语句将数据插入表中了。 插入数据后,您将使用UPDATE语句更改行的内容。 您将使用UPDATE语句的WHERE子句将更新限制为单行。 这四个语句将输入以下数据。

ProductIDProductNamePriceProductDescription
1Clamp12.48Workbench clamp
50Screwdriver3.17Flat head
75Tire BarTool for changing tires.
30003 mm Bracket0.52

基本语法是:INSERT,表名,列列表,VALUES,然后是要插入的值的列表。 一行前面的两个连字符表示该行是注释,编译器将忽略该文本。 在这种情况下,注释描述了语法的允许变化。

向表中插入数据

  1. Execute the following statement to insert a row into the Products table that was created in the previous task.
    -- Standard syntax  
    INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription)  VALUES (1, 'Clamp', 12.48, 'Workbench clamp')  
    GO   

    注意:

    如果插入成功,请继续下一步。
    如果插入失败,则可能是因为Product表中已经包含该产品ID的行。 要继续,请删除表中的所有行并重复上一步。 TRUNCATE TABLE删除表中的所有行。
    运行以下命令以删除表中的所有行:

    TRUNCATE TABLE TestData.dbo.Products;
    GO
    

    截断表后,在此步骤中重复执行INSERT命令。

  2. The following statement shows how you can change the order in which the parameters are provided by switching the placement of the ProductID and ProductName in both the field list (in parentheses) and in the values list.
    -- Changing the order of the columns  
    INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription)  VALUES ('Screwdriver', 50, 3.17, 'Flat head')  
    GO    

  3. The following statement demonstrates that the names of the columns are optional, as long as the values are listed in the correct order. This syntax is common but is not recommended because it might be harder for others to understand your code. NULL is specified for the Price column because the price for this product is not yet known.
    -- Skipping the column list, but keeping the values in order  
    INSERT dbo.Products  VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.')  
    GO  

  4. The schema name is optional as long as you are accessing and changing a table in your default schema. Because the ProductDescription column allows null values and no value is being provided, the ProductDescription column name and value can be dropped from the statement completely.
    -- Dropping the optional dbo and dropping the ProductDescription column  
    INSERT Products (ProductID, ProductName, Price)  VALUES (3000, '3 mm Bracket', 0.52)  
    GO  

  5. 更新products表

  6. 键入并执行以下UPDATE语句,将第二个Product的ProductName从Screwdriver更改为Flat Head Screwdriver。

  7. UPDATE dbo.Products  SET ProductName = 'Flat Head Screwdriver'  WHERE ProductID = 50  
    GO  

从表中读取数据

使用SELECT语句读取表中的数据。 SELECT语句是最重要的Transact-SQL语句之一,并且语法有很多变体。

待更新.............. 

​​​​​​​
T-SQL Tutorial: Writing Transact-SQL Statements - SQL Server | Microsoft Docs

T-SQL Tutorial: Create & query database objects - SQL Server | Microsoft Docs

 

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

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

相关文章

SQL transaction事物以及各种锁、waitfor、脏读、幻读

事务定义 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 简单的说:事务就是将一堆的SQL语句(通常是增删改操作)绑定在一起执行,要么都执行成功&am…

SQL 之 事务(Transaction)

SQL 之 事务 一、什么是事务?二、事务的四大特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistency)3. 隔离性(Isolation)4. 持久性(Durability) 三、并发事务带来的问题1. 脏读(Dirty read)2. 修改丢失(Lost to modify)3. 不可重复读(Unrepeatableread)4. 幻读(Pha…

004-从零搭建微服务-认证中心(四)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址:https://gitee.com/csps/mingyue 文档地址:https://gitee.com/csps/mingyue/wikis 搭建前端框架 感谢开源项目【vue-next-adm…

5年软件测试工程师工作感悟,谁还能“点点点”一辈子呢?

经常都有人问我软件测试前景怎么样,每年也都帮助很多朋友做职业分析和学习规划,也很欣慰能够通过自己的努力帮到一些人进入到大厂。 2023年软件测试行业的发展现状以及未来的前景趋势 最近很多测试人在找工作的时候,明显的会发现功能测试很…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类(了解)DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的? 二、自定义加密自定义方式一:使用{id}的形式自定义方式二:向S…

花3个月面过阿里测开岗,拿个25K不过分吧?

计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是在一家初创…

Excel集成GPT,惊呆我了

Excel&GPT 从最开始的GPT对话,到后面的Office集成GPT进行内测,用GPT实现写Word、做Excel、做PPT(别着急,后面我会分享AIPPT)已经不再是设想,而在逐步演变成真的! 当然,目前国内…

impala内存超限

目录 一、背景 二、报错内容 三、解决办法 1.调参 2.简单粗暴 一、背景 impala shell执行SQL语句时报错 二、报错内容 Memory limit exceeded: Could not allocate memory while trying to increase reservation. 三、解决办法 1.调参 mem_limit参数:&…

2023,智能硬件的AIGC“又一春”

​ 文|智能相对论 作者|佘凯文 消费电子产品风光不再,特别是自去年以来,电子消费市场经历了一整年的寒潮袭击,智能手机等产品达到10年消费谷底,PC出货量整体下降16%,不仅如此,包括平板、可穿戴设备也一改…

Java读取U盘的PID、VID、SN

Java是不能像C、C那样直接读取U盘的PID、VID、SN信息的,但是我们可以换一个思路,让Java从注册表中读取信息。 这是U盘信息在注册表中的位置:HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\USBSTOR\\Enum import java.io.Buffer…

02_搭建项目(servlet+java bean+jsp的商城教程)

搭建项目 数据库和表项目包结构jar包工具类和配置文件前台文件(html,css,js,img等静态资源) 1)数据库和表 新建数据库store,按照上一节分析的实体结构创建数据表并插入数据: user表: CREATE TABLE user …

org.apache.jasper.JasperException: Unable to compile class for JSP

博主最近在将一个项目导入一台新机器的时候,出现了如题所述的异常,以前从没有出现过,我跟往常一样到网上寻求帮助,网上的解决方案多如牛毛,什么Tomcat版本与IDE不匹配、jar包冲突、xml文件错误、路径错误等等。在一一尝…

Java毕业设计:基于jsp+mysql+Spring+SpringMVC+mybatis的网络硬硬盘系統网站

项目介绍 网盘,又称网络U盘、网络硬盘,是一些网络公司推出的在线存储服务。向用户提供文件的存储、访问、备份、共享等文件管理功能,使用起来十分方便。不花钱的移动硬盘。用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是…

基于jsp+mysql+ssm网络硬硬盘系統网站-计算机毕业设计

项目介绍 网盘,又称网络U盘、网络硬盘,是一些网络公司推出的在线存储服务。向用户提供文件的存储、访问、备份、共享等文件管理功能,使用起来十分方便。不花钱的移动硬盘。用户可以把网盘看成一个放在网络上的硬盘或U盘,不管你是…

supermicro服务器通过U盘安装部署vmware vsphere并使用

制作U盘安装镜像 前提准备: 镜像: https://my.vmware.com/en/web/vmware/evalcenter?pfree-esxi6 直接到官网下载 VMware vSphere Hypervisor 6.7,不过要先注册才能用。另外这个是免费版的,有验证码,可以长期使用…

linux redhat9 u盘,LINUX(redhat9)下安装JDK(虚拟机VM上挂载U盘)

LINUX(redhat9)下安装JDK(虚拟机VM上挂载U盘) 2010-07-11 21:24 1.首先,我们去http://www.doczj.com/doc/11c2bbedb8f67c1cfad6b82a.html去下载JDK1.6.0 for LINUX的rpm. (http://www.doczj.com/doc/11c2bbedb8f67c1cfad6b82a.html/javase/downloads/index.jsp) 应该…

Ubuntu的JSP服务器安装

2019独角兽企业重金招聘Python工程师标准>>> 一、man中文版 1、安装:sudo apt-get install manpages-zh 2、把中文man包转换成utf8格式的 新建一个脚本文件gedit t.sh把下面内容添加进去#!/bin/bash cd /usr/share/man/zh_CN/ for k in *do cd $k for i …

JSP环境配置全解!

实现JSP文件环境配置除了MyEclipse外,最通俗的还是jdk加Tomcat。 今天上午刚把期末考试搞定,就紧迫不及待的在李超和超哥的指导下完成了JSP环境配置。以后要专心搞JAVA了,呵呵。。。 为了让我以后可以快速的独立配置环境…

关于电脑格式化之后的恢复

前言:在这里并没有用OneDrive备份的文件,为了极致的纯净,但是为了恢复基础资源的速度,建议用U盘或者百度云把TomCat和javeEE的文件夹上传一下,省的后面网站下的太慢 1.格式化电脑 桌面右键——》显示设置——》Window…

亚马逊云科技出海日倒计时,潮向新世界,亮点抢先知

数字化浪潮之下,中国企业的全球化步伐明显提速。从“借帆出海”到“生而全球化”,中国企业实现了从传统制造业“中国产品”出口,向创新“中国技术”和先导“中国品牌”的逐步升级。 作为全球云计算的开创者与引领者,亚马逊云科技…