本章要点:
1.复习:访问数据库和T-SQL语言
2.向表中插入新行
3.更新表中数据
4.从表中删除数据
8.1复习:访问数据库和T-SQL语言
每一个SQL Server帐户都有一个默认的数据库,当此用户登陆的时候,这个用户数用的就是它的缺省数据库。我们可以用
selectDB_NAME()查看当前用户正在使用的数据库,如果要改变正在访问的数据库,使用usedatebase_name
8.2插入数据
【语法】insert [into] table_name[(column_list)] {values(expression,..)|select_statement}
1. T-SQL对插入数据做了扩展,可以在Insert命令中使用select语句为一个现存的表插入多行。
insertmmselect*fromdbo.tt
在这里,mm必须已经存在。与此对比,select * into mm from tt就要求mm原先不存在。
2. Into是可选的
8.3更新数据
【语法】update table_name
set column_name1 = {expression1 | NULL | select_statement}
[,column_name2 = {expression2 | NULL | select_statement}]
[From table_names]
[where search_condition]
T-SQL做了扩充,允许使用from子句指定更新所基于的其他表,允许在where子句中包含与这些其他表的联接,以限定更新操作所选择的行。
8.4删除数据
使用delete语句删除数据是指从现存表中删除一行或多行。
【语法1】delete [from] table_name [where search_condition]
1. From是可选的
2. 如果不给出where,则删除表中所有行
【语法2】delete table_name [from table_name1,table_name2 ...] [where search_condition]
1. from table_name ..指示的是要删除的行与这些表中的数据有关
使用truncate语句删除数据是指将表中所有行全部删除,但不删除表自己(只删除表数据,不删除表定义)。
【语法】truncate table table_name
命令比较
1. drop table publisher
从数据库中删除publisher表的定义以及它所有的数据、索引、触发器和权限指定,解除与publisher表中的列相捆绑的缺省和规则。
2. delete publisher
删除publisher表中所有行,但表的定义、结构、索引、触发器仍然存在,与publisher表中的列相捆绑的缺省和规则仍然存在。
3. truncate table publisher
它与delete publisher作用相同,只是执行速度更快。Delete每次一行一行的删,并将 每一个删除的行记录在数据库事务日志;而truncate table清除表中所有数据页面,只记很少的日志(被删除的数据行不记入日志)。Truncate不触发创建在表上的delete触发器。