如何操作写SQL UPDATE 能让其支持回滚操作 MSSQL如何写的呢

mfkpie 2021-05-12 12:27:58
你指的是事务回滚吗,mysql 的innodb和ndb引擎支持事务,默认事务自动提交,
使用事务回滚需要先关闭自动提交,set autocommit=off,这个是session级别的设置,每次重连需要重新设置
之后你就可以正常使用事务回滚了


默认情况下,MySQL采用autocommit模式运行。这意味着,当执行更新表的语句之后,MySQL立刻把更新存储到磁盘中。

事务安全型的存储引擎(如InnoDB, BDB或NDB簇),
使用以下语句禁用autocommit模式:
SET AUTOCOMMIT=0;


使用START TRANSACTION,autocommit仍然被禁用,直到COMMIT或ROLLBACK结束事务为止。然后autocommit模式恢复到原来的状态。



mysql> select * from test_main //
+----+-------+
| id | value |
+----+-------+
| 1 | ONE |
| 2 | TWO |
| 3 | THREE |
+----+-------+
3 rows in set (0.00 sec)

mysql> START TRANSACTION;
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test_main VALUES(4, 'FOUR') //
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'

mysql> ROLLBACK//
Query OK, 0 rows affected (0.01 sec)

mysql> select * from test_main //
+----+-------+
| id | value |
+----+-------+
| 1 | ONE |
| 2 | TWO |
| 3 | THREE |
+----+-------+
3 rows in set (0.00 sec)



MSSQL如何写的呢?
...全文
304 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 2021-05-13
  • 打赏
  • 举报
回复
实际上,就三个部分:

begin
      begin tran    --开始事务(后面是放到 try中提交,以异常捕捉为例进行回滚)
      
      begin try
            ……[事务逻辑过程]
      end try
      begin catch  --捕捉到异常
          rollback tran     --回滚事务
         Select  result  =   ' Error '
     end catch

end

end
frankl123 2021-05-13
  • 打赏
  • 举报
回复
mssql的事务是隐式提交,平常的Update直接更新到表里,要想显示提交事务需要以下语句 begin tran --你的sql语句 --一切正常则 commit --如果报错 rollback
xiaoxiangqing 2021-05-13
  • 打赏
  • 举报
回复
begin tran --开始事务 rollback --回滚事务 commit --提交事务
mfkpie 2021-05-12
  • 打赏
  • 举报
回复
想了解一一上mssql是如何写的!这个是mysql 的请问你们mssql是如何写的
  • 打赏
  • 举报
回复
你发的mysql又问mssql,所以你到底想问什么?
经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。   SQL分类:   DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)   DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)   首先,简要介绍基础语句:   1、说明:创建数据库 CREATE DATABASE database-name   2、说明:删除数据库 drop database dbname   3、说明:备份sql server   --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'   --- 开始 备份 BACKUP DATABASE pubs TO testBack   4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)   根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only C: select * into table2 from table   5、说明:   删除新表:drop table tabname   6、说明:   增加一个列:Alter table tabname add column col type   注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。   7、说明:   添加主键:Alter table tabname add primary key(col)   说明:   删除主键:Alter table tabname drop primary key(col)   8、说明:   创建索引:create [unique] index idxname on tabname(col….)   删除索引:drop index idxname   注:索引是不可更改的,想更改必须删除重新建。   9、说明:   创建视图:create view viewname as select statement   删除视图:drop view viewname 10、说明:几个简单的基本的sql语句   选择:select * from table1 where 范围   插入:insert into table1(field1,field2) values(value1,value2)   删除:delete from table1 where 范围   更新:update table1 set field1=value1 where 范围   查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!   排序:select * from table1 order by field1,field2 [desc]   总数:select count * as totalcount from table1   求和:select sum(field1) as sumvalue from table1   平均:select avg(field1) as avgvalue from table1   最大:select max(field1) as maxvalue from table1   最小:select min(field1) as minvalue from table1   11、说明:几个高级查询运算词   A: UNION 运算符    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。   B: EXCEPT 运算符   EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。   C: INTERSECT 运算符   INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。   注:使用运算词的几个查询结果行必须是一致的。   12、说明:使用外连接   A、left outer join:   左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   B:right outer join:   右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。   C:full outer join:   全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。   其次,大家来看一些不错的sql语句   1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)   法一:select * into b from a where 11   法二:select top 0 * into b from a   2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b;   3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件   例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..   4、说明:子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)   5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、说明:外连接查询(表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   7、说明:在线视图查询(表名1:a ) select * from (SELECT a,b,c FROM a) T where t.a > 1;   8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2   9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)   10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )   11、说明:四表联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....   12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5   13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段   14、说明:前10条记录 select top 10 * form table1 where 范围   15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)   16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表 (select a from tableA ) except (select a from tableB) except (select a from tableC)   17、说明:随机取出10条数据 select top 10 * from tablename order by newid()   18、说明:随机选择记录 select newid()   19、说明:删除重复记录 Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)   20、说明:列出数据库里所有的表名 select name from sysobjects where type='U' 21、说明:列出表里的所有的 select name from syscolumns where id=object_id('TableName')   22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type   显示结果: type vender pcs 电脑 A 1 电脑 A 1 光盘 B 2 光盘 A 2 手机 B 3 手机 C 3   23、说明:初始化表table1 TRUNCATE TABLE table1   24、说明:选择从10到15的记录 select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc 随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)   对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环: Randomize RNumber = Int(Rnd*499) +1   While Not objRec.EOF If objRec("ID") = RNumber THEN ... 这里是执行脚本 ... end if objRec.MoveNext Wend    这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一 个数据库内就包含了成千上万条记录。这时候不就死定了?   采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示: Randomize RNumber = Int(Rnd*499) + 1   SQL = "SELECT * FROM Customers WHERE ID = " & RNumber   set objRec = ObjConn.Execute(SQL) Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")   不必出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。 再谈随机数   现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。   为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:   SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3   假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"   注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。   随机读取若干条记录,测试过 Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id) Sql server:select top n * from 表名 order by newid() mysql select * From 表名 Order By rand() Limit n   Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)   语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...   使用SQL语句 用...代替过长的字符串显示   语法:   SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename   Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;   Conn.Execute说明   Execute方法   该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:   1.执行SQL查询语句时,将返回查询得到的记录集。用法为:   Set 对象变量名=连接对象.Execute("SQL 查询语言")   Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。   2.执行SQL操作性语言时,没有记录集的返回。此时用法为:   连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]   •RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。   •Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。   •BeginTrans、RollbackTrans、CommitTrans方法   这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。   事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。    BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过 连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一 个错误信息。 SQL语句大全精要 2006/10/26 13:46 DELETE语句 DELETE语句:用于创建一个删除查询,可从列在 FROM 子句之中的一个或多个表中删除记录,且该子句满足 WHERE 子句中的条件,可以使用DELETE删除多个记录。 语法:DELETE [table.*] FROM table WHERE criteria 语法:DELETE * FROM table WHERE criteria='查询的字' 说明:table参数用于指定从其中删除记录的表的名称。 criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。 可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。 UPDATE 有关UPDATE,急!!!!!!!!!!! 在ORACLE数据库中 表 A ( ID ,FIRSTNAME,LASTNAME ) 表 B( ID,LASTNAME) 表 A 中原来ID,FIRSTNAME两个字段的数据是完整的 表 B中原来ID,LASTNAME两个字段的数据是完整的 现在要把表 B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。两个表中的ID字段是相互关联的。 先谢谢了!!!! update a set a.lastname=(select b.lastname from b where a.id=b.id)   掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。    练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。    在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据 库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。   SQL中有四种基本的DML操 作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给 出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。
SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中的具体应用。 第1章 SQL语言的概述 1.1 认识SQL语言 1.1.1 什么是SQL语言 1.1.2 SQL的历史与发展 1.1.3 SQL的功能和优点 1.2 认识数据库 1.2.1 什么是数据库 1.2.2 数据库系统的结构 1.2.3 数据库系统的工作流程 1.2.4 常见的SQL数据库管理系统 1.3 数据模型 1.3.1 关系数据库模型 1.3.2 数据模型的构成 1.3.3 常见的数据模型 1.4 关系型数据库 1.4.1 关系型数据库的定义 1.4.2 关系型数据库与表 1.4.3 主键与外键 1.4.4 字段约束 1.4.5 数据的完整性 1.4.6 关系数据库设计原则 1.5 SQL开发环境 1.5.1 SQL环境介绍 1.5.2 SQL的层次结构 1.5.3 SQL环境中的对象 1.5.4 SQL环境中的程序系统 1.6 SQL语句基础 1.6.1 SQL常量 1.6.2 SQL表达式 1.6.3 SQL数据类型 1.6.4 注释符 1.6.5 批处理 1.6.6 SQL语句的执行 1.7 SQL语法知识 1.7.1 SQL语法结构 1.7.2 常用的SQL语句 1.8 小结第2章 设计数据库 2.1 设计数据库基础 2.1.1 数据库设计定义 2.1.2 设计数据库的意义 2.1.3 进行数据库设计的方法 2.2 数据实体和联系 2.2.1 实体、属性与联系 2.2.2 一对一联系 2.2.3 一对多联系 2.2.4 多对多联系 2.3 规范化准则 2.3.1 范式 2.3.2 第一范式 2.3.3 第二范式 2.3.4 第三范式 2.3.5 第四范式 2.4.小结第2篇 数据库管理篇第3章 数据库的相关操作 3.1 创建数据库 3.1.1 SQL标准中创建数据库的语法 3.1.2 使用SQL语句创建数据库 3.2 删除数据库 3.2.1 SQL标准中删除数据库的语法 3.2.2 使用SQL语句删除数据库 3.3 修改数据库 3.3.1 修改数据库语法 3.3.2 使用SQL语句修改数据库 3.4 管理数据库 3.4.1 扩充与压缩数据库 3.4.2 导入与导出数据 3.4.3 数据库的备份与恢复 3.4.4 使用sp_helpdb查看数据库信息 3.5 小结第4章 数据表的相关操作 4.1 SQL中的数据表 4.1.1 数据表的结构 4.1.2 数据表的种类 4.2 创建数据表 4.2.1 创建数据表的语句结构 4.2.2 创建基本表 4.2.3 非空约束 4.2.4 DEFAULT指定缺省值 4.3 修改数据表 4.3.1 修改数据表的语句结构 4.3.2 给数据表增添新列 4.3.3 修改数据表中的列 4.3.4 删除数据表中的列 4.4 数据表的删除 4.4.1 删除数据表的语句结构 4.4.2 使用SQL语句删除数据表 4.5 数据表的重命名 4.5.1 重命名数据表的语句 4.5.2 使用SQL语句重命名数据表 4.6 小结第5章 索引与视图 5.1 索引的基础知识 5.1.1 索引的概念 5.1.2 索引的类型 5.1.3 索引的结构 5.2 创建索引 5.2.1 创建索引的语句结构 20.3.3 子查询的实现 20.3.4 复合查询的实现 20.4 运算符与表达式的应用 20.4.1 连接数据表的实现 20.4.2 算术运算符的应用 20.4.3 表达式的应用 20.5 数据维护与触发器的应用 20.5.1 添加数据的实现 20.5.2 更新数据的实现 20.5.3 删除数据的实现 20.5.4 在VB.NET中应用触发器20.6 小结第21章 VB 6.0与SQL Server的开发与应用 21.1 VB 6.0开发环境 21.1.1 VB 6.0介绍 21.1.2 VB 6.0的版本 21.1.3 VB 6.0开发环境 21.2 VB 6.0连接数据库 21.2.1 VB 6.0中的数据库控件介绍 21.2.2 数据库连接举例 21.3 数据查询应用 21.3.1 普通数据查询的实现 21.3.2 连接查询的实现 21.3.3 子查询的实现 21.3.4 复合查询的实现 21.4 运算符与表达式的应用 21.4.1 连接数据表的实现 21.4.2 算术运算符的应用 21.4.3 表达式的应用 21.5 数据维护操作的应用 21.5.1 添加数据的实现 21.5.2 更新数据的实现 21.5.3 删除数据的实现 21.6 触发器与存储过程的应用 21.6.1在VB 6.0中应用触发器 21.6.2在VB 6.0中应用存储过程 21.7 小结第22章 VC++6.0与SQL Server的开发与应用 22.1 VC++6.0开发环境 22.1.1 VC++6.0介绍 22.1.2 MFC编程 22.1.3 VC++6.0开发环境 22.2 VC++6.0连接数据库 22.2.1 ADO数据控件介绍 22.2.2 数据库连接举例 22.3 数据查询应用 22.3.1 普通数据查询的实现 22.3.2 连接查询的实现 22.3.3 子查询的实现 22.3.4 复合查询的实现 22.4 运算符与表达式的应用 22.4.1 连接数据表的实现 22.4.2 算术运算符的应用 22.4.3 表达式的应用 22.5 数据维护操作的应用 22.5.1 添加数据的实现 22.5.2 更新数据的实现 22.5.3 删除数据的实现 22.6 小结第23章 PHP访问 SQL Server 2005 23.1 PHP开发环境 23.1.1 PHP简介及其特点 23.1.2 PHP开发环境的安装 23.2 PHP连接SQL Server服务器 23.2.1 使用PHP的MSSQL扩展 23.2.2 PHP连接SQL Setver的必要条件 23.3 使用PHP存取SQL Server数据库 23.3.1 选择操作的数据库 23.3.2 在数据库中创建表 23.3.3 删除存在的数据表 23.4 对数据库中表的操作 23.4.1 向表中添加记录 23.4.2 浏览表中记录 23.4.3 修改已有记录 23.4.4 删除指定记录 23.5 可回复留言板的开发(PHP+SQL Server) 23.5.1 数据表的设计 23.5.2 配置文件的创建 23.5.3 创建系统运行的表 23.5.4 创建留言显示模块 23.5.5 创建留言添加模块 23.5.6 进入留言管理模块 23.5.7 创建留言修改模块 23.5.8 创建留言删除模块 23.6 小结 5.2.2 创建非簇索引 5.2.3 创建簇索引 5.2.4 创建惟一索引 5.2.5 创建复合索引 5.3 删除索引 5.3.1 删除索引的语句结构 5.3.2 使用SQL语句删除索引 5.4 视图的基础知识 5.4.1 视图概述 5.4.2 视图的优点与缺点 5.5 视图的基本操作 5.5.1 创建视图的基本语句结构 5.5.2 使用SQL语句创建视图 5.5.3 修改视图的语句结构 5.5.4 重命名视图的名称 5.5.5 使用SQL语句修改视图 5.5.6 删除视图的语句结构 5.5.7 使用SQL语句删除视图 5.6 视图的应用 5.6.1 利用视图简化表的复杂连接 5.6.2 利用视图简化复杂查询 5.7 小结第3篇 SQL查询篇第6章 简单的SELECT语句查询 6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表中指定的字段 6.2.2 查询所有的字段 6.2.3 使用DISTINCT去除重复信息 6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 BETWEEN运算符范围筛选 6.4.4 使用TOP子句 6.4.5 NULL的判断 6.5 模糊查询 6.5.1 使用LIKE运算符进行查询 6.5.2 使用“_”通配符进行查询 6.5.3 使用“%”通配符进行查询 6.5.4 使用“[]”通配符进行查询 6.5.5 使用“[^]”通配符进行查询 6.6 小结第7章 运算符与表达式相关查询 7.1 逻辑运算符 7.1.1 逻辑与运算符 7.1.2 逻辑或运算符 7.1.3 逻辑运算符的组合使用 7.2 IN运算符 7.2.1 IN运算符的使用 7.2.2 NOT IN运算符的使用 7.3 NOT运算符与BETWEEN运算符 7.3.1 N0T运算符的使用 7.3.2 NOT运算符与BETWEEN运算符的组合应用 7.4 数学运算符 7.4.1 数学运算符的种类 7.4.2 数学运算符的应用 7.5 集合查询运算符 7.5.1 UNION运算符 7.5.2 INTERSECT运算符 7.6运算符的组合应用 7.6.1 逻辑运算符与IN运算符的组合应用 7.6.2 逻辑运算符与NOT运算符的组合应用 7.6.3 逻辑运算符与数学运算符的组合应用 7.6.4 逻辑运算符与集合运算符的组合应用 7.6.5 数学运算符与NOT运算符的组合应用 7.6.6 数学运算符与IN运算符的组合应用 7.6.7 数学运算符与集合运算符的组合应用 7.7 SQL中的表达式 7.7.1 CAST表达式的应用 7.7.2 CASE表达式的应用 7.8 小结第8章 SQL函数 8.1 SQL函数基础 8.1.1 SQL语句函数 8.1.2 常用的SQL语句函数 8.2 日期函数和数学运算函数 8.2.1 日期时间函数 8.2.2 CONVERT函数转换日期、时间 8.2.3 数据运算函数 8.3 字符串函数 8.3.1 字符串处理函数介绍 8.3.2 字符转换函数 8.3.3 去字符串空格函数 8.3.4 取字符串长度的函数 8.3.5 查询包含部分字符串内容的数据 8.3.6 颠倒字符串的顺序 8.3.7 字符串替换 8.4 聚合函数 8.4.1 聚合函数概述 8.4.2 SUM函数运算 8.4.3 MAX函数运算 8.4.4 MIN函数运算 8.4.5 AVG函数运算 8.4.6 COUNT函数运算 8.4.7 聚合函数的组合使用 8.5 小结第9章 连接查询 9.1 多表连接 9.1.1 多表连接的优点 9.1.2 简单的两表连接 9.1.3 多表连接举例 9.1.4 UNION JOIN连接表 9.2 自连接与自然连接 9.2.1 自连接 9.2.2 自然连接 9.3 内连接 9.3.1 等值连接 9.3.2 不等值连接 9.3.3 使用内连接实现多表连接 9.3.4 在内连接中使用聚合函数 9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接中使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内连接与左外连接的综合应用 9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询中使用子查询 10.1.3 在子查询中使用聚合函数 10.1.4 使用ANY或ALL运算符 10.1.5 使用子查询创建视图 10.2 使用IN语句的子查询 10.2.1 简单的IN语句子查询 10.2.2 使用IN子查询实现集合交运算 lO.2.3 使用IN子查询实现集合差运算 10.3 使用EXISTS语句的子查询 10.3.1 简单的EXISTS语句子查询 10.3.2 使用EXISTS子查询实现两表交集 10.3.3 使用EXISTS子查询实现两表并集 10.3.4 使用NOT EXISTS的子查询 10.4 相关子查询 10.4.1 使用IN引入相关子查询 10.4.2 使用比较运算符引入相关子查询 10.4.3 在HAVING子句中使用相关子查询 10.5 UNIQUE子查询与嵌套子查询 10.5.1 UNIQUE子查询 10.5.2 嵌套子查询 10.6 小结第4篇 T-SQL开发常用操作篇第11章 数据的维护操作 11.1 数据的插入操作 11.1.1 INSERT语句的基本语法 11.1.2 插入单条记录 11.1.3 NULL的插入 11.1.4 由VALUES关键字插入多行数据 11.1.5 使用SELECT语句插入数据 11.1.6 通过视图插入数据 11.1.7 使用子查询插入数据 11.2 数据的更新操作 11.2.1 UPDATE语句的基本语法 11.2.2 使用UPDATE语句更新指定的列值 11.2.3 数据字段中NULL的更改 11.2.4 更新全部数据 11.2.5 利用子查询更新数据 11.2.6 通过视图更新表数据 11.3 数据的删除操作 11.3.1 DELETE语句的语法结构 11.3.2 删除指定行的数据 11.3.3 删除所有数据 11.3.4 通过视图删除表数据 11.3.5 使用子查询删除数据 11.3.6 使用TRUNCATE TABLE语句 11.4 小结第12章 完整性控制 12.1 完整性约束概述 12.1.1 数据的完整性简介 12.1.2 完整性约束的类型 12.1.3 数据完整性的意义 12.2 约束 12.2.1 DEFAULT约束 12.2.2 CHECK约束 12.2.3 PRIMARY KEY约束 12.2.4 UNIQUE约束 12.2.5 FOREIGN KEY约束 12.2.6 NOT NULL约束 12.2.7 列约束和表约束 12.3 规则 12.3.1 创建规则 12.3.2 规则的绑定与松绑 12.4 域约束与断言 12.4.1 域与域约束 12.4.2 利用断言创建多表约束 12.5 默认值 12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程中常用的流控制语句 13.2.1 IF...LSE语句 13.2.2 BEGIN...END语句 13.2.3 DECLARE语句 13.2.4 GOTO语句 13.2.5 WAITFOR语句 13.2.6 WHILE、BREAK和CONTINUE语句 13.2.7 PRINT语句 13.2.8 RETURN语句 13.2.9 注释 13.3 创建与执行存储过程 13.3.1 创建存储过程 13.3.2 创建带参数的存储过程 13.3.3 创建带0UTPUT返回,参数的存储过程 13.3.4 执行存储过程 13.4 存储过程的查看、修改和删除 13.4.1 系统存储过程 13.4.2 存储过程的查看 13.4.3 存储过程的重命名 13.4.4 修改存储过程 13.4.5 存储过程的删除 13.5 Oracle数据库中的控制流语句 13.5.1 IF条件语句 13.5.2 LOOP循环语句 13.5.3 FOR循环语句 13.5.4 WHILE循环语句 13.5.5 GOTO语句 13.6 Oracle数据库中的存储过程 13.6.1 0racle数据库中创建存储过程 13.6.2 Oracle数据库中存储过程的执行 13.7 小结第14章 触发器 14.1 触发器的基础知识 14.1.1 触发器的概念 14.1.2 触发器的种类 14.1.3 触发器的组成 14.1.4 触发器的优点 14.1.5 触发器执行环境 14.2 触发器的创建 14.2.1 创建触发器的语法结构 14.2.2 Inserted表和Deleted表 14.2.3 INSERT触发器 14.2.4 UPDATE触发器 14.2.5 DELETE触发器 14.2.6 INSTEAD OF触发器 14.2.7 嵌套触发器 14.2.8 递归触发器 14.3 查看触发器 14.3.1 使用系统存储过程sp_help查看触发器 14.3.2 使用系统存储过程sp_helptext查看触发器 14.3.3 使用系统存储过程sp_depengs查看触发器 14.4 触发器的修改及删除 14.4.1触发器的修改 14.4.2触发器的删除 14.5 Oracle数据库中的触发器 14.5.1 Oracle触发器类型 14.5.2 触发器的创建 14.5.3 Oracle触发器的启用与禁用 14.5.4 0racle触发器的删除 14.6 小结第15章 游标 15.1 游标的定义 15.1.1 游标的基本概念 15.1.2 游标的分类 15.1.3 游标的作用及其应用 15.2 游标的使用 15.2.1 游标的创建 15.2.2 打开游标 15.2.3 关闭游标 15.2.4 释放游标 15.2.5 使用游标 15.2.6 检索游标 15.2.7 游标变量 15.3 游标的展使用 15.3.1 用于UJPDATE操作的可更新游标 15.3.2 用于DELETlE操作的可更新游标 15.3.3 可更新游标的综合操作 15.3.4 使用@@CURSOR_ROWS全局变量确定游标的行数 15.3.5 使用@@FETCh_STATJS全局变量检测FETCH操作的状态 15.3.6 使用系统过程管理游标 15.4 Oracle中游标的使用 15.4.1 显式游标与隐式游标 15.4.2 游标属性 15.4.3 参数化游标 15.4.4 游标中的循环 15.5 小结第16章 事务控制和锁定 16.1 事务 16.1.1 事务概述 16.1.2 事务的特性 16.1.3事务的分类 16.2 事务控制 16.2.1 事务控制操作 16.2.2 开始事务 16.2.3 提交事务 16.2.4 回滚事务 16.2.5 设置事务保存点 16.2.6 终止事务 16.3 并发控制 16.3.1 并发操作的问题 16.3.2 事务隔离级别 16.4 锁定 16.4.1 锁的作用及含义 16.4.2 锁的类型 16.4.3 SQL Server中表级锁的使用 16.4.4 设置隔离级别实现并发控制 16.4.5 死锁及其处理 16.5 小结第17章 SQL安全 17.1 SQL安全概述 17.1.1 SQL安全的重要性 17.1.2 SQL安全的对象和权限 17.2 用户管理 17.2.1 创建SQL用户 17.2.2 删除SQL用户 17.3 角色管理 17.3.1 角色的优点 17.3.2 创建角色 17.3.3 删除角色 17.3.4 授予角色 17.3.5 取消角色 17.4 权限管理 17.4.1 授予权限 17.4.2 撤销权限 17.4.3 查询权限控制 17.4.4 插入操作权限控制 17.4.5 删除操作权限控制 17.4.6 更新操作权限控制 17.5 SQL Server中的安全管理 17.5.1 SQL Server中的用户管理 l7.5.2 SQL Server中的角色管理 l7.5.3 SQL Server中的权限管理 17.6 Oracle中的安全管理 17.6.1 Oracle中的用户管理 17.6.2 Oracle中的权限管理 17.7小结第18章 嵌入式SQL 18.1 SQL的调用 18.1.1 直接调用SQL 18.1.2 SQL调用层接口(CLI) 18.2 嵌入式SQL的使用 18.2.1 嵌入式SQL 18.2.2 SQL通信区 18.2.3 主变量 18.2.4 在嵌入式SQL中使用SQL语句 18.2.5 在嵌入式SQL中使用游标 18.3 嵌入式SQLSQL Server中应用 18.3.1 嵌入式SQL代码 18.3.2 预编译文件 18.3.3 设置连接VC++6.O 18.3.4 编译运行程序 18.4 小结第6篇 T-SQL结合流行语言进行开发篇第19章 C#与SQL Server的开发与应用 19.1 C#开发环境 19.1.1 C#介绍 19.1.2 C#开发环境 19.2 C#连接数据库 19.2.1 C#中的数据库控件介绍 19.2.2 数据库连接举例 19.3 数据查询应用 19.3.1 普通数据查询的实现 19.3.2 连接查询的实现 19.3.3 子查询的实现 19.3.4 复合查询的实现 19.4 运算符与表达式的应用 19.4.1 连接数据表的实现 19.4.2 算术运算符的应用 19.4.3 表达式的应用 19.5 数据维护操作的应用 19.5.1 添加数据的实现 19.5.2 更新数据的实现 19.5.3 删除数据的实现 19.6 触发器与存储过程的应用 19.6.1 在C#中应用触发器 19.6.2 在C#中应用存储过程的示例 19.7 小结第20章 VB.NET与SQL Server的开发与应用 20.1 VB.NET介绍 20.1.1 了解VB.NET 20.1.2 VB.NET的新特点 20.2 VB.NET连接数据库 20.2.1 通过数据控件绑定连接数据库 20.2.2 通过数据对象直接连接数据库 20.3 数据查询应用 20.3.1 普通数据查询的实现 20.3.2 连接查询的实现隐藏全部目录>>

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧