-
SQL Server中的约束(constraints)详解
目录一、约束的分类二、约束命名三、主键约束1、在创建表的时候创建主键约束。2、在已存在的表上创建主键约束3、复合主键的创建四、外键约束4.1、创建表的时候创建外键4.2、在已存在的表中添加一个外键4.3、级联动作五、唯一约束主键和唯一约束的区别:六、CHECK约束七、DEFAULT约束7.1在创建表时定义DEFAULT约束:7.2在已存在的表上添加DEFAULT约束:八、禁用约束8.1、在创建约束时,忽略检查之前的不满足数据8.2、临时禁用已存在的约束九、规则和默认值(已淘汰)9.1、规则9.2、默认值9.3确定哪个表和数据类型使用给定的规则或默认值十、系统视图一、约束的分类在SQLServer中,有3种不同类型的约束...
数据库操作教程 2022-09-23 18:22:44 -
SQL Server中的文件和文件组介绍
文件和文件组简介在SQLServer中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQLServer通过管理逻辑上的文件组的方式来管理文件...
数据库操作教程 2022-09-23 18:22:36 -
详解SQLEXISTS运算符
EXISTS运算符EXISTS运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回True,否则返回False。SQLEXISTS语法SELECTcolumn_name(s)FROMtable_nameWHEREEXISTS(SELECTcolumn_nameFROMtable_nameWHEREcondition);演示数据库在本教程中,我们将使用RUNOOB样本数据库...
数据库操作教程 2022-09-23 18:22:35 -
SQL Server格式转换函数Cast、Convert介绍
CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能...
数据库操作教程 2022-09-23 18:22:33 -
SQLServer使用触发器(trigger)发送电子邮件步骤详解
sql使用系统存储过程sp_send_dbmail发送电子邮件语法:sp_send_dbmail[[@profile_name=]'profile_name'][,[@recipients=]'recipients[;...n]'][,[@copy_recipients=]'copy_recipient[;...n]'][,[@blind_copy_recipients=]'blind_copy_recipient[;...n]'][,[@subject=]'subject'][,[@body=]'body'][,[@body_format=]'body_format'][,[@importance=]'importance'][,[@sensitivity=]'sensitivity'][,[@file_attachments=]'attachment[;...n]'][,[@query=]'query'][,[@execute_query_database=]'execute_query_database'][,[@attach_query_result_as_file=]atta...
数据库操作教程 2022-09-23 18:22:28 -
SQLServer公用表表达式(CTE)实现递归的方法
公用表表达式简介:公用表表达式(CTE)可以认为是在单个SELECT、INSERT、UPDATE、DELETE或CREATEVIEW语句的执行范围内定义的临时结果集。CTE与派生表类似,具体表现在不存储为对象,并且只在查询期间有效...
数据库操作教程 2022-09-23 18:21:32 -
SQL Server删除表中的重复数据
添加示例数据createtableStudent(IDvarchar(10)notnull,Namevarchar(10)notnull,);insertintoStudentvalues('1','zhangs');insertintoStudentvalues('2','zhangs');insertintoStudentvalues('3','lisi');insertintoStudentvalues('4','lisi');insertintoStudentvalues('5','wangwu');删除Name重复多余的行,每个Name仅保留1行数据1、查询表中Name重复的数据selectNamefromStudentgroupbyNamehavingcount(Name)>12、有唯一列,通过唯一列最大或最小方式删除重复记录检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行deletefromStudentwhereNamein(selectNamefromStudentgroupbyNamehavingco...
数据库操作教程 2022-09-23 18:21:24 -
SQL解决未能删除约束问题drop constraint
问题如图:想要删除产品表的主键约束,但是报错创建的产品表:CREATETABLEPROVIDERS(PROVIDERIDINTNOTNULL,PROVIDERNAMENVARCHAR(50)NOTNULLPRIMARYKEY,#设置的主键PROVIDERCOMNAMENVARCHAR(20),PROVIDERCOMTITLENVARCHAR(10),PROVIDERADDNVARCHAR(50),PROVIDERACITYNVARCHAR(20),PROVIDERREGIONNVARCHAR(20),PROVIDERZIPNVARCHAR(10),PROVIDERCOUNTRYNVARCHAR(10),PROVIDERTELNVARCHAR(20),PROVIDERFAXNVARCHAR(20),PROVIDERWEBNVARCHAR(50)--CONSTRAINTPK_PROVNAMEPRIMARYKEY(PROVIDENAME))原因在于主键的名称写错了(主键后面有自带的随机数)--查看真正的主键名称EXECSP_HELPPROVIDERS那么为什么它的后面会有随机数呢...
数据库操作教程 2022-09-23 18:20:46 -
SqlServer使用公用表表达式(CTE)实现无限级树形构建
SQLServer2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它。每个CTE仅被定义一次(但在其作用域内可以被引用任意次),并且在该查询生存期间将一直生存...
数据库操作教程 2022-09-23 18:20:19 -
SQLServerParameterSniffing及其改进方法
SQLServer在处理存储过程的时候,为了节省编译时间,是一次编译,多次重用。当第一次运行时代入值产生的执行计划,不适用后续代入的参数时,就产生了parametersniffing问题...
数据库操作教程 2022-09-23 18:20:15 -
SQL Server实现查询每个分组的前N条记录
SQL语句查询每个分组的前N条记录的实现方法:1、生成测试数据:#Tifobject_id('tempdb.dbo.#T')isnotnulldroptable#T;createtable#T(IDvarchar(3),GIDint,Authorvarchar(29),Titlevarchar(39),Datedatetime);insertinto#Tselect'001',1,'邹建','深入浅出SQLServer2005开发管理与应用实例','2008-05-10'unionallselect'002',1,'胡百敬','SQLServer2005性能调校','2008-03-22'unionallselect'003',1,'格罗夫Groff.J.R.','SQL完全手册','2009-07-01'unionallselect'004',1,'KalenDelaney','SQLServer2005技术内幕存储引擎','2008-08-01'unionallselect'005',2,'Alex.Kriegel.Boris.M.Trukhnov','SQL宝典','2007-1...
数据库操作教程 2022-09-23 18:19:24 -
Ubuntu下安装SQLServer教程
微软刚宣布了下一代SQLServer的公开预览,Canonical也正式宣布此预览版本可用于Ubuntu系统。无论是在内部部署还是在云端使用,SQLServeronUbuntu都为开发人员和组织提供了更为自由的选择...
数据库操作教程 2022-09-23 18:18:51