表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化。因此如果查询语句不需要索引,就应该删除无用的索引以提高效率。
一、INSERT语句
1、基本插入语句
insert用于向表中输入数据,其具体的语法结构如下:
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
整个语法结构如下:
INSERT [TOP (<expression>) [PERCENT] ] [INTO] <tabular object>
[(<column list>)]
[ OUTPUT <output clause> ]
{VALUES( <data values> )[,(<data values>)] [m...n] | <table source> | EXEC <prodecure> | DEFAULT VALUES}
示例:
insert into country values('美国')
在SQL Server2008 中添加了新功能,允许一次插入多行,中间用逗号","分隔,如:
insert into country
values
('美国'),
('英国');
2、INSERT INTO ... SELECT语句
当我们需要用某些数据源作为插入数据,怎么办。数据源如:
- 数据库中的另一张表
- 同一服务器上完全不同的数据库
- 来自另一SQL Server的一类查询或其他数据
- 同一表
INSERT INTO ... SELECT语句可完成一次插入一个数据块的功能。其语法结构为INSERT语句与SELECT语句语法结构的组合:
INSERT INTO <table name>
[<column list>]
<SELECT statement>
示例:
DECLART @MyTable Table
(
SalesOrderID int,
CustomerID char(5)
)
INSERT INTO @MyTable
SELECT SalesOrderID,CustomerID
FROM AdventureWorks2008.Sales.SalesOrderHeader
WHERE SalesOrderID BETWEEN 44000 AND 44010;
二、UPDATE语句
update语句用于更新表中的数据,其最简单的语法结构如下:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
完整的语法结构如下:
UPDATE [TOP (<expression>) ] [PERCENT] <tabular object>
SET <column> = <value> [.WRITE(<expression>,<offset>,<length>)]
[,<column> = <value> [.WRITE(<expression>),<offset>,<length>)]]
[OUTPUT <source table(s)>]
[WHERE <restrictive condition>]
基本语法结构:
UPDATE <table name>
SET <column> = <value> [,<column> = <value>]
[FROM <source table(s)>]
[WHERE <restrictive condition>]
示例:
update country set countryname = '中国' where countryid = 4
三、DELETE语句
DELETE语句用于删除表中的数据,DELETE语句的完整语法结构如下:
DELETE [TOP ( <expression> ) [PERCENT] [FROM] <tabular object> ]
[ OUTPUT <output clause> ]
[FROM <table or join condition>]
[WHERE <search condition> | CURRENT OF [GLOBAL] <cursor name>]
其基本的语法结构如下:
DELETE FROM 表名称 [WHERE 列名称 = 值]
示例:
delete from country where countryid = 4