编写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数据库引擎的实例。

扫描二维码关注公众号,回复: 16847768 查看本文章

前提条件

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

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

建立数据库

与许多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子句将更新限制为单行。 这四个语句将输入以下数据。

ProductID ProductName Price ProductDescription
1 Clamp 12.48 Workbench clamp
50 Screwdriver 3.17 Flat head
75 Tire Bar Tool for changing tires.
3000 3 mm Bracket 0.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

猜你喜欢

转载自blog.csdn.net/qq_35097289/article/details/104841488
今日推荐