T-SQL语句简易入门(第一课)
在微软官方,有一篇介绍T-SQL语句的教程,非常好理解,完全可以帮助新手入门,了解常用SQL语句的使用语法,而且又不涉及较为复杂的操作、不用安装示例数据库AdventureWorks。下面是教程里内容的摘录。
T-SQL,也就是Transact-SQL,是微软对SQL标准的实现。(说明:以下的T-SQL语句均在查询编辑器中书写、执行)
1. 创建数据库TestData
CREATE DATABASE TestData GO
鼠标选中“CREATE DATABASE”,按F1,会调出“CREATE DATABASE”语句的在线帮助文档;鼠标选中“CREATE DATABASE TestData”语句,按F5,会执行这条语句。
创建的数据库,其实是model数据库的拷贝、名字换成TestData的结果。
注意:当执行的语句不止一条时,GO用来分隔语句;只有一条语句时,GO可以省略。
2. 创建表Products
表有名字,列有数据类型。创建表时,一般都会有主键,主键的值在表中是唯一的,可以是一列或多列的组合;为每列指定是否可以为null是个好习惯。
数据库引擎默认安装是大小写不敏感的,也就是说“OrderData”与“ORDERDATA”是一样的。
2.1. 创建容纳表的数据库
USE master; -- Delete the TestData database if it exists. IF EXISTS(SELECT * FROM sys.databases WHERE name='TestData') BEGIN DROP DATABASE TestData; END -- Create a new database called TestData. CREATE DATABASE TestData;
按F5执行语句。
2.2. 切换连接的数据库
使用TestData数据库
USE TestData GO
2.3. 创建表Products
CREATE TABLE dbo.Products (ProductID int PRIMARY KEY NOT NULL, ProductName varchar(25) NOT NULL, Price money NULL, ProductDescription text NULL) GO
执行语句。创建了一张名为Products的表,有4列:ProductID、ProductName、Price和ProductDescription,数据类型分别是int、varchar(25)、money和text。Price和ProductDescription列的数据可以为空。这条语句也包含了一个可选元素(dbo.),称为架构,架构指拥有表格的数据库对象。如果你是管理员,默认架构就是dbo,它表示数据库拥有者(Database Owner)。
3. 插入和修改表数据
通过INSERT语句插入数据;通过UPDATE语句修改数据。接下来执行四条插入语句,插入数据在这里
ProductID | ProductName | Price | PrductDescription |
1 | Clamp | 12.48 | Workbench clamp |
50 | Screwdriver | 3.17 | Flat head |
75 | Tire Bar | Tool for changing tires. | |
3000 | 3mm Bracket | .52 |
插入语句的基本语法:INSERT、表名、列列表、VALUES、值列表。"--"后面跟着的文字是注释。
3.1. 向表中插入数据
1)执行下面的语句,插入数据
-- 基本的插入语句 INSERT dbo.Products (ProductID, ProductName, Price, ProductDescription) VALUES (1, 'Clamp', 12.48, 'Workbench clamp') GO
2)将ProductID和ProductName字段调换位置
-- 改变插入列的顺序 INSERT dbo.Products (ProductName, ProductID, Price, ProductDescription) VALUES ('Screwdriver', 50, 3.17, 'Flat head') GO
3)列列表是可选的,但值必须按照正确的顺序列出。
-- 忽略列列表,但值列表必须按照正确的顺序 INSERT dbo.Products VALUES (75, 'Tire Bar', NULL, 'Tool for changing tires.') GO
这条语句常见但不推荐,Price列的值指定为NULL,因为还不知道价儿。
4)架构可以省略,因为ProductDescription列的值可以为空,所以插入时可以不指定它
-- 忽略架构名dbo,未指定ProductDescription列 INSERT Products (ProductID, ProductName, Price) VALUES (3000, '3mm Bracket', .52) GO
3.2 修改Products表数据
用UPDATE语句修改第二个产品的名字(ProductName),修改为“Flat Head Screwdriver”,原来名字是“Screwdriver”。
UPDATE dbo.Products SET ProductName = 'Flat Head Screwdriver' WHERE ProductID = 50 GO
(完)