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 语句。视图像表那样进行查询,但不接受参数。 存储过程比视图更复杂。 存储过程可以同时具有输入参数和输出参数,并可以包括控制代码流的语句,如 IF 和 WHILE 语句。 将存储过程用于数据库中的所有重复操作,是一个良好的编程做法。
创建视图
创建一个视图,该视图执行 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

浙公网安备 33010602011771号