对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right join属于outer join,另外outer join还包括full join. 下面我通过图标让大家认识它们的区别.现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同…
一.SQLServer中的CHARINDEX() 和ORACLE中的INSTR()函数 1.INSTR(C1,C2[,I[,J]]) [功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; [说明]多字节符(汉字.全角符等),按1个字符计算 [参数] C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 第J次出现的位置,默认为1 [返回]数值 [示例] select instr('abcdefgc','c',1,2) from dual; 返回:8 2.CH…
1.CHARINDEX函数常常用来在一段字符中搜索字符或者字符串. 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 返回的值是:返回字符串中指定表达式(expression1 )的起始位置. 那些什么定义啊,什么的我就不讲了,直接用列子来讲,这样大家理解的比较透彻点. set_user表中userId,而userId存的是一个集合,每个userId是以“,”间隔,类似于这样“1,2,3”.现在我要查询userId为2…
update #temp set #temp.Recycle=case when UnionA.num>0 then 1 else 0 end from (select GradeID,sum(num)as num from AreaAllot where CHARINDEX(@Area,AreaAllot.Area)=1 and LEN(@Area)=LEN(Area)-2 group by GradeID)UnionA inner join #temp      on UnionA.Grad…
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底层.--F 既不住顶层也不住底层.M 住得比 C 高.--S 住的楼层和 F 不相邻.--F 住的楼层和 C 不相邻. create table pailie (rnam varchar(20) ) select 'B' as rnam into #y union select 'C' union…
假设你想建立一个与Yahoo功能相似的Internet目录.你可以建立一个表用来保存一系列的站点名称,统一资源定位器(URL),描述,和类别,并答应访问者通过在HTML form中输入要害字来检索这些内容. 假如有一个访问者想从这个目录中得到其描述中包含要害字trading card的站点的列表.要取出正确的站点列表,你也许试图使用这样的查询: SELECT site_name FROM site_directory WHERE site_desc=’trading card’ 这个查询可以工作…
SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISNULL ( check_expression , replacement_value ) 参数check_expression 将被检查是否为 NULL的表达式.check_expression 可以是任何类型的. replacement_value 在 check_expression 为 NUL…
原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !') select upper('i am a student !') 截去字符串左.右侧空格                                    …
原文:SQL点滴30-SQL中常用的函数 该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很详细. 以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lowe…
在Sql中我们经常会用到in 普遍的写法为 where xx in ('1','2','3') 通过函数写法为: IF EXISTS ( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ArrayToTable]') AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' ) ) DROP FUNCTION [dbo].[ArrayToTable] GO create funct…
项目中的一个功能模块上用到了标量值函数,函数中又有ceiling()函数的用法,自己找了一些资料,对SQL中这几个函数做一个简单的记录,方便自己学习.有不足之处欢迎拍砖补充 1.round()函数遵循四舍五入原则,用于把数值字段舍入为指定的小数位数 2.floor(value)函数返回小于或等于指定值(value)的最小整数 3.ceiling(value)函数返回大于或等于指定值(value)的最小整数 例如:对于12.9,floor(12.9)返回12:ceiling(12.9)返回13:r…
原文: http://www.cnblogs.com/AdamLee/p/5054674.html 在网上看到很多关于sql中使用in效率低的问题,于是自己做了测试来验证是否是众人说的那样. 群众: 对于in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists.其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱…
SQL中distinct的用法   1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from A 执行后结果如下: 实际上…
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制数据类型,因为很多种类型映射都有重复的 标签: hibernatejavacalendarsqlstringdate 2011-09-21 22:51 9358人阅读 评论(0) 收藏 举报  分类: hibernate(9)  hibernate映射类型  在对象/关系映射文件中,Hibernat…
  C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度.不然获取到的结果总是只有第一字符.本人就是由于这个原因,折腾了很久.在此记录一下,供大家以后参考! 例如: CREATE PROCEDURE sp_AccountRole_Create @CategoryID int, ), ), @RoleID int output AS DECLARE @Count int -- 查找是否有相同名称的记录 SELECT @Count = Count(RoleID) F…
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要…
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的: 1.INNER JOIN 产生的结果是AB的交集 SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name          2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的…
SQL中对两个集合取差集运算,使用except关键字,语法格式如下: SELECT column_name(s) FROM table_name1 EXCEPT SELECT column_name(s) FROM table_name2 输出为在前一个集合中存在,而不存在于第二个集合的元组. 如果,选取两个元组,并且元组名称不同会出现什么结果呢? 使用之前使用过的示例,构建代码如下: create table employee (empname ), numchildren int ) cre…
基于SQL中SET与SELECT赋值的区别详解 2012年09月06日 ⁄ 综合 ⁄ 共 912字 ⁄ 字号 小 中 大 ⁄ 评论关闭 最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果.那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢?经过网上的查询,及个人练习,总结两者有以下几点主要区别:假定有设定变量: 复制代码 代码如下: DECLARE @VAR1 VARCHAR(1) DECLARE @VAR2 VARCHAR(2) 1.SELECT可以在…
SQL中的cast和convert的用法和区别 更多 来源:SQL学习浏览量: 学习标签: cast convert sql 本文导读:SQL中的cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式.CAST 和 CONVERT 提供相似的功能,只是语法不同.在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式. 一.语法: .使用 CAST CAST ( expression AS data_type ) .使用 C…
sql中的索引 索引:好处查询的速度快,被删除,修改,不会对表产生影响,作用是加速查询: 一种典型的数据库对象 作用:提交数据的查询效率,尤其对一些数据量很大的表 索引是用来为表服务的 索引是oracle服务器自动来使用(索引区的查找是oracle自动的)和维护(当记录发生变化的时候,索引区会自动随之更改) 6.定义 定义的两种方式 A.自动创建: 主键 或 唯一性约束,会自动创建索引 B.手动创建 CREATE INDEX ENAME_IDX ON emp(ename)索引建立在表emp的en…
首先我建议你在对MySQL表做DDL操作时: 1 执行 show processlist 查看,要操作的表(数据库对象)是否处于锁状态 if("未锁定") { 执行DDL语句 }else { 三思后行 } 作为一个程序猿,随着开发的进行,我们要面临需求的变更. 随之而来的有可能就是表结构的变化--字段的增加,字段数据类型的更新. 此时此刻,我就在Alter Table面前跪了. My Sql 中 Waiting for table metadata lock,主要发生在你在Alter…
sql中binary_checksum(*)的用法(转) binary_checksum(*)可以用来检查修改过的行. 同一行在update后,该行的binary_checksum(*)就不同. 如 select title_id,binary_checksum(*)  from titles where  title_id=1 时title_id=1 的该行的binaru_checksum(*) 的值为123456 若此时 update titles set title='ddd' where…
转自:http://database.51cto.com/art/201009/224397.htm 下文将为您介绍SQL中的随机函数rand(),供您参考,如果您是才接触SQL Server的新手,不妨一看,相信对您学习SQL中的函数会大有帮助. 在SQL Server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要拍砖呀,我的头还不够硬 不过还是希望老鸟们多多指教了,现在切入正题:  随机函数:rand(…
查询配件主数据表(tbl_part_base_info)的所有数据和配件是否有物料(物料表(tbl_material)中有配件主数据表的part_no,就表示有物料,反之,则表示没有物料),用sql中的case when...then...else...end来实现 第一种写法: select info.*,(case when material.part_no is null then '否' else '是' end) hasMaterial from tbl_part_base_info …
SQL中CONVERT日期不同格式的转换用法 格式: CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到. 语句及查询结果: SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM SELECT CONVERT(varchar(100), …
SQL中EXISTS怎么用 1 2 3 4 分步阅读 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False 方法/步骤 1 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或FalseEXISTS 指定一个子查询,检测 行 的存在. 语法: EXISTS subquery参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字).…
一:SQL中的DataTime 1.       between and 相当于>= and <= 2.       常用的将DataTime查询成字符串的方法 Select CONVERT(varchar(100), GETDATE(), 23): // yyyy-MM-dd Select CONVERT(varchar(100), GETDATE(), 20): // yyyy-MM-dd HH:mm:ss Select CONVERT(varchar(100), GETDATE(), 1…
浅谈sql中的in与not in,exists与not exists的区别   1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表大小相当,那么用in和exists差别不大:如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表) select * from A where cc in(se…
有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE TABLE [dbo].[tbl] ( [id] INT, ), ) ) ,') SELECT [id],[a],[b] FROM [dbo].[tbl] SELECT [id],[a],[b] FROM [dbo].[tbl] 明白为什么可以这样,应该先明白SQL的更新时,会先把更新所有行的每一列…