SQL Server操作

创建数据库

CREATE DATABASE TestData  
GO

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

USE TestData  
GO

创建表

创建一个名为 Products 的表此语句包含称为架构的可选元素 (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 dbo.Products (ProductID, ProductName, Price, ProductDescription)  
    VALUES (1, 'Clamp', 12.48, 'Workbench clamp')  
GO

删除表中所有行

TRUNCATE TABLE TestData.dbo.Products;
GO

更新 products 表

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

读取表中的数据

1. 读取 Products 表中的数据

SELECT ProductID, ProductName, Price, ProductDescription  
    FROM dbo.Products  
GO

2. 可以使用星号 (*) 选择表中的所有列

SELECT * FROM Products  
GO  

3. 可以省略不希望返回的列

SELECT ProductName, Price  
    FROM dbo.Products  
GO 

4. 使用 WHERE 子句可以限制返回给用户的行

SELECT ProductID, ProductName, Price, ProductDescription  
    FROM dbo.Products  
    WHERE ProductID < 60  
GO  

5. 可以在返回列中的值时使用它们。以下示例对 Price 列执行数学运算。 除非通过使用 AS 关键字提供一个名称,否则以此方式更改的列将没有名称

SELECT ProductName, Price * 1.07 AS CustomerPays  
    FROM dbo.Products  
GO

创建视图和存储过程

视图是存储的 SELECT 语句,而存储过程是以批处理方式执行的一条或多条 Transact-SQL 语句。视图像表那样进行查询,但不接受参数。 存储过程比视图更复杂。 存储过程可以同时具有输入参数和输出参数,并可以包括控制代码流的语句,如 IFWHILE 语句。 将存储过程用于数据库中的所有重复操作,是一个良好的编程做法。

创建视图

创建一个视图,该视图执行 Select 语句,并将产品的名称和价格返回给用户

CREATE VIEW vw_Names  
   AS  
   SELECT ProductName, Price FROM Products;  
GO

测试视图

视图的处理方式与表类似。 使用  SELECT 语句访问视图。

SELECT * FROM vw_Names;  
GO

创建存储过程

以下语句创建一个名为  pr_Names 的存储过程,接受名为  @VarPrice  、数据类型为 money的输入参数。 该存储过程打印与输入参数(已从  Products less than  数据类型更改为  money  字符数据类型)串联的语句  varchar(10) 。 然后,该存储过程对视图执行  SELECT 语句,将输入参数作为  WHERE 子句的一部分进行传递。 这将返回价格小于输入参数值的所有产品。

CREATE PROCEDURE pr_Names @VarPrice money  
   AS  
   BEGIN   
      PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));  
      SELECT ProductName, Price FROM vw_Names  
            WHERE Price < @VarPrice;  
   END  
GO

测试存储过程

EXECUTE pr_Names 10.00;  
GO

创建 SQL 登录名

  computer_name  为您计算机的名称。  FROM WINDOWS  表示 Windows 对用户进行身份验证。 除非连接字符串指示其他数据库,否则可选的  DEFAULT_DATABASE  参数将  Mary 连接到  TestData  数据库。 此语句引入了分号作为 SQL 语句的可选终止。

CREATE LOGIN [computer_name\Mary]  
    FROM WINDOWS  
    WITH DEFAULT_DATABASE = [TestData];  
GO

在数据库中创建用户

键入并执行下列语句(将  computer_name  替换为您计算机的名称),以授予  Mary  访问  TestData  数据库的权限。

USE [TestData];  
GO  

CREATE USER [Mary] FOR LOGIN [computer_name\Mary];  
GO

授予对存储过程的权限

执行以下语句将  Mary  存储过程的  EXECUTE  权限授予  pr_Names  。

GRANT EXECUTE ON pr_Names TO Mary;  
GO

在这种情况下, Mary  只能通过使用存储过程访问  Products  表。 如果您希望  Mary  能够对视图执行  SELECT  语句,则您还必须执行以下语句。 

GRANT SELECT ON vw_Names TO Mary;  
GO

撤销存储过程权限

若要删除对数据库对象的访问权限,请使用  REVOKE  语句

REVOKE EXECUTE ON pr_Names FROM Mary;  
GO

删除权限

1、使用  DROP  语句删除  Mary  对  TestData  数据库的访问权限

DROP USER Mary;  
GO

2、使用  DROP  语句删除  Mary  对此 SQL Server 2005 (9.x)实例的访问权限。

DROP LOGIN [<computer_name>\Mary];  
GO

3、使用  DROP  语句删除存储过程  pr_Names :

DROP PROC pr_Names;  
GO

4、使用  DROP  语句删除视图  vw_Names :

DROP VIEW vw_Names;  
GO

删除表

使用 DELETE 语句删除 Products 表中的所有行:

DELETE FROM Products;  
GO

使用 DROP 语句删除 Products 表:

DROP TABLE Products;  
GO

 

posted @ 2022-06-24 09:17  陈铖chenc  阅读(84)  评论(0)    收藏  举报