学习使用MSSQL DDL

了解DDL

DDL(Data Definition Language)是一种SQL语言类型,用于定义数据库结构和全局对象,如表、视图和存储过程等。DDL语言提供了一组用于创建、更改和删除数据库对象的指令。在本文中,我们将学习如何使用DDL来创建数据库、数据表和其他对象。

创建数据库

CREATE DATABASE指令

创建新的数据库是DDL中的第一步。下面的代码演示如何使用CREATE DATABASE指令来创建一个新的数据库:

CREATE DATABASE ExampleDB;

这个指令将创建一个名为ExampleDB的数据库。

应该注意的是,CREATE DATABASE指令通常是由系统管理员或具有高级特权的用户执行的。在某些情况下,它可能需要为创建数据库使用不同的指令。

ALTER DATABASE指令

使用ALTER DATABASE指令来更改数据库的设置和属性。例如,以下代码演示了如何使用ALTER DATABASE指令将数据库ExampleDB设置为单用户模式:

ALTER DATABASE ExampleDB SET SINGLE_USER;

代码中的SET SINGLE_USER指令将防止多个用户访问ExampleDB数据库,因此可以在诊断和维护过程中用于临时控制用户访问权限。

DROP DATABASE指令

删除数据库是一个非常重要的任务。DROP DATABASE指令用于彻底删除数据库及其相关的对象。以下是删除数据库ExampleDB的指令:

DROP DATABASE ExampleDB;

请注意,DROP DATABASE指令将永久性地删除数据库及其相关对象,因此在删除之前要确认是否需要创建备份。

创建数据表

数据表是DDL中最常见的对象类型,因为它们用于存储数据。下面的代码演示了如何使用CREATE TABLE指令来创建一个名为Customers的数据表:

CREATE TABLE Customers (

CustomerID INT PRIMARY KEY,

FirstName VARCHAR(50) NOT NULL,

LastName VARCHAR(50) NOT NULL,

Address VARCHAR(100),

City VARCHAR(50),

Country VARCHAR(50)

);

在代码中,我们定义了Customers表的列(或字段)以及数据类型。在定义列时,我们还指定了一些其他属性,例如主键、非空约束和默认值。

常见列数据类型

以下是SQL Server中主要的数据类型:

INT:用于存储整数(4字节)。

VARCHAR:用于存储字符串(最大长度为65535字节)。

DECIMAL:用于存储固定精度数字(例如货币)。

DATE:用于存储日期(例如“2021-06-01”)。

BOOLEAN:用于存储逻辑值(true或false)。

ALTER TABLE指令

ALTER TABLE指令用于更改现有的数据表。例如,以下代码演示了如何使用ALTER TABLE指令添加一个名为PhoneNumber的新列:

ALTER TABLE Customers ADD PhoneNumber VARCHAR(20);

我们还可以使用ALTER TABLE指令修改表的结构,例如更改列的名称、数据类型或约束。

DROP TABLE指令

DROP TABLE指令用于删除数据表及其相关对象。以下是删除表Customers的指令:

DROP TABLE Customers;

请注意,DROP TABLE指令将永久性地删除数据表及其相关对象。

创建其他对象

除了数据表和数据库本身之外,DDL还允许我们创建其他对象,如视图、存储过程、触发器等。

CREATE VIEW指令

视图用于从表中检索数据,并将其以不同的方式呈现给用户。以下是创建名为OrdersView的视图的指令:

CREATE VIEW OrdersView AS

SELECT * FROM Orders WHERE OrderID > 100;

在代码中,我们使用SELECT语句从Orders表中检索数据,并将其保存为视图。该视图仅包含订单ID大于100的记录。

CREATE PROCEDURE指令

存储过程是一组SQL语句,可以在应用程序中多次使用。以下是创建名为InsertCustomer的存储过程的指令:

CREATE PROCEDURE InsertCustomer

@FirstName VARCHAR(50),

@LastName VARCHAR(50),

@Address VARCHAR(100),

@City VARCHAR(50),

@Country VARCHAR(50)

AS

INSERT INTO Customers (FirstName, LastName, Address, City, Country)

VALUES (@FirstName, @LastName, @Address, @City, @Country);

在上面的代码中,我们创建了一个InsertCustomer存储过程,它可以用来插入新的客户记录到Customers表中。

CREATE TRIGGER指令

触发器是在表中发生特定事件时自动执行的一组SQL语句。以下是创建名为CustomerInserted的触发器的指令,该触发器用于在向Customers表中插入新记录时自动执行:

CREATE TRIGGER CustomerInserted

ON Customers

FOR INSERT

AS

PRINT 'New customer inserted.';

在上面的代码中,我们将Print语句作为一个示例放置在触发器中。触发器可以执行复杂的SQL操作,例如修改其他表中的数据或发送电子邮件通知。

总结

DDL是SQL语言中一种非常重要的类型,用于定义数据库结构和其他对象。在本文中,我们学习了如何使用DDL来创建数据库、数据表和其他对象,以及修改和删除这些对象。我们还了解了DDL中一些最常用的数据类型和属性,以及一些创建视图、存储过程和触发器的示例。

数据库标签