1.联合结果集

(1) 简单的结果集联合

select FNumber,FName,Fage from T_Employee\

union

select FidCardNumber,FName,Fage from T_Employee

(2) 查询的基本原则是:每个结果集必须有相同的列数,没个结果集的列必须类型相同。

select FNumber,FName,Fage,FDepartment from T_Employee

union

select FidNumber,FName,Fage,’临时工,无部门’ from T_Employee

  1. union All

(1)  select FName,Fage from T_Employee

union

select FName,Fage from T_Emoloyee

(*) union合并两个查询结果集,并且将其中完全重复的数据行合并为一条记录。

(2) select FName,Fage from T_Employee

union All

select FName,Fage from T_Employee

(*) union因为要进行重复值的扫描,所以效率低,因此如果不是确定要合并重复行,那么推荐用union All

  1. 数据库函数

(1) 数字函数

1) ABS():求绝对值    select ABS(-3)

2) ceiling():舍入到最大整数。例如:3.33将被舍入为4,2.89将被舍入为3,-3.61将被舍入为-3。ceiling的英文意思是天花板。

3) floor():舍入到最小整数。例如:3.33将被舍入为3,2.89将被舍入为2,-3.61将被舍入为-4。floor的英文意思是:地板。

4) round():四舍五入。舍入到“离我半径最近的数”。round的英文意思是:半径。

例如:select Round(-3.1415926,3)   执行结果是:-3.1420000

(2) 字符串函数

1) len():计算字符串长度,   select len(‘234’)   执行结果是3。例如:

select FName,len(FName) from T_Employee。

2) lower(),upper():转小写,转大写。

3) ltrim():字符串左侧的空格去掉。例如:去掉两边的空格:

rtrim():字符串右侧的空格去掉。

例如:去掉两边的空格:ltrim(rtrim(‘   韩迎龙    ’))

4) SubString(string,start_position,length),参数string为主字符串,start_position为字符串在主字符串中的起始位置,length为子字符串的最大长度。例如:

select substring(‘abcdefghijk’,2,3)   执行结果为:bcd。

select FName,Substring(FName,2,2) from T_Employee。

(3) 日期函数

1) getdate():取得当前日期的时间。

2) dateadd(datepart,number,date),计算增加以后的时间,参数date为待计算的日期,参数number为增量,参数datepart为计量单位。例如:

dateadd(day,3,date)为计算日期date的3天后的日期。

dateadd(month,-3,date)为计算日期date的8个月前的日期。

select dateadd(day,-3,getdate()) 执行结果是:当前时间的前三天。

3) datediff(datepart,startdate,enddate):计算两个日期之间的差额。datepart为计量单位。

select datetdiff(hh,getdate(),dateAdd(day,-3,getdate()))  执行结果为-72。

select FName,FInDate,DateDiff(year,FInDate,getdate()) from T_Employee 员工的工龄。

4) datepart(datepart,date):返回一个日期的特定部分。例如:

select datepart(year,getdate()),datepart(month,getdate())  执行结果:2012  4

(4) 类型转换函数

1) cast(expression as data_type)

2) Convert(date_type,express)

例如:select cast (’123’as int),cast(‘2012/4/9’ as dattime),Convert(datetime,’2012/4/9’)

  1. 空值处理函数

(1) isNull(express,value):如果express不为空则返回express,否则返回value。例如:

select isNull(Fname,’佚名’) as 姓名 from T_Employee

  1. Case函数用法

(1) 单值判断,相当于switch case,语法为:

case expression

when value1 then returnvalue1

when value2 then returnvalue2

when value3 then returnvalue3

else defaultreturnvalue

end

举例如下:select FName,

(

when 1 then ‘普通用户’

when 2 then ‘会员’

when 3 then ‘VIP’

else ‘未知客户类型’

end

) as 客户类型 from T_Customer

  1. 索引Index

(1) 全表扫描,对数据进行检索(select)效率最差的就是全表扫描,就是一条一条的找。

(2) 如果没有目录,查询汉语字典就要一页页的翻,而有了目录,只要查询目录即可,为了提高检索的速度,可以为经常检索的列添加索引,相当于创建目录。

(3) 创建索引的方式,在表设计器中单击右键,选择”索引/键”到添加到在列中选择索引包含的列。

(4) 使用索引能够提高查询效率,但是索引也是占据空间的,而且添加,删除,更新数据的时候也需要同步更新索引,因此会降低insert,update,delete的速度,只有在经常检索的字段(where)上创建索引。

(5) (*)即使创建了索引,任然有可能全表扫描,比如:link,函数,类型转换等。

  1. 表连接ioin

(1) select o.BillName,c.Name,c.Age

from T_Orders as o join T_Customers as c on o.customerID=c.ID

注:简单的join可以将两张表按照一定的规律连接起来,使我们可以再两张甚至更多的表之间进行查询。

  1. 子查询

(1)  将一个查询语句做成一个结果集供其它SQL语句使用,就像使用普通的表一样,被当做结果集的查询语句被称为子查询。所有可以使用表的地方几乎都可以使用子查询来代替。

select * from (select * from T2 where FAge<30)。

SQL数据库开发知识总结:提高篇的更多相关文章

  1. SQL数据库开发知识总结:基础篇

    1数据库概述 (1) 用自定义文件格式保存数据的劣势. (2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到”数据库”可能有两种含义:MSSQL ...

  2. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

  3. PL/SQL数据库开发那点事

    PL/SQL数据库开发那点事-->编程,存储程序 在SQL*plus 中编写PL/SQL程序,并在SQL*plus 中执行它, PL/SQL块的代码就存放在SQL*plus的缓冲区中.如果在SQ ...

  4. 测试人员需要了解的sql知识(提高篇)

    上一篇写了一些基础的sql知识,这里再深挖一些常用的 ------------------------------------------------------------------骄傲的分割线- ...

  5. SQL 数据库基本知识

    SQL:Structured Quety Language SQL SERVER是一个以客户/服务器(c/s)模式访问.使用Transact-SQL语言的关系型数据库管理子系统(RDBMS) DBMS ...

  6. SQL数据库开发中的一些经典代码

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as  2.数据库加密: ...

  7. SQL 数据库开发一些精典的代码(转永南)

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密: s ...

  8. SQL 数据库开发一些精典的代码(转自 咏南工作室)

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密: s ...

  9. sql数据库基础知识整理,常用函数及常用语法

    1常用数据库聚合函数max()min()sum()avg()count() 2字符串处理函数len() 与 datalength()  区别:len是返回字符长度  datalength是返回字节长度 ...

随机推荐

  1. CSU 1515 Sequence (莫队算法)

    题意:给n个数,m个询问.每个询问是一个区间,求区间内差的绝对值为1的数对数. 题解:先离散化,然后莫队算法.莫队是离线算法,先按按询问左端点排序,在按右端点排序. ps:第一次写莫队,表示挺简单的, ...

  2. python 递归函数

    在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: f ...

  3. kvo原理概述

    kvo概述 kvo,全称Key-Value Observing,它提供了一种方法,当对象某个属性发生改变时,允许监听该属性值变化的对象可以接受到通知,然后通过kvo的方法响应一些操作. kvo实现原理 ...

  4. GridView控件显示图片

    与图片的二进制数据库存储和显示 1.将图片以二进制存入数据库 2.读取二进制图片在页面显示 3.设置Image控件显示从数据库中读出的二进制图片 4.GridView中ImageField以URL方式 ...

  5. java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决办法

    java.lang.UnsupportedClassVersionError: Bad version number in .class file 造成这种错误的原因是支撑Tomcat运行的JDK版本 ...

  6. Android开发——自动生成Android屏幕适配的dimens.xml文件

    使用dimens.xml解决屏幕适配问题是Android官方解决方案,本文主要讲述了如何自动生成Android屏幕适配的dimens.xml,减少了工作量,在维护dimens.xml文件时更加省时省力 ...

  7. 【转载】Android Studio 设置内存大小及原理

    http://www.cnblogs.com/justinzhang/p/4274985.html http://tsroad.lofter.com/post/376316_69363ae Andro ...

  8. 对get_baserel_parampathinfo函数的学习

    /* * get_baserel_parampathinfo * Get the ParamPathInfo for a parameterized path for a base relation, ...

  9. Java对MySQL数据库进行连接、查询和修改【转载】

    一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创 ...

  10. Android 获取信号强度

    大 家看到标题就明白了,我们有的时候在电梯里,有时有的电话有信号,有时有的电话没有信号,这个是非常闹心的,要是我们能监听一下我们自己手机信号的强度就 好了.这样,当我们在等重要的人士的电话,不至于接不 ...