SQL总结(三)其他查询

其他常用的SQL,在这里集合。

1、SELECT INTO

从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份或者用于对记录进行存档。

语法:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

IN 子句可用于向另一个数据库中拷贝表。

1)备份表信息

SELECT ID,Name
INTO Students_Backup
FROM Students

2)复制到备份库

SELECT *
INTO Students IN 'Backup.mdb'
FROM Students

2、IDENTITY

作用:创建唯一的,递增的列

注意:一张表中只能有一列为IDENTITY

1)创建学生信息表时,指定其ID为自增列,从1开始,每次递增1

IF OBJECT_ID (N'Students', N'U') IS NOT NULL
DROP TABLE Students;
GO
--学生信息表
CREATE TABLE Students(
ID int primary key IDENTITY(1,1) not null,
Name nvarchar(50),
Age int,
Sex bit,
City nvarchar(50),
MajorID int
)

2)如果指定了自增列,又需要插入指定ID的值,需要停止INDENTIY,执行后再开启。

SET IDENTITY_Insert Students ON
insert Students(ID,Name,Age,City) values(10,'Jim',18,'NewYank')
SET IDENTITY_Insert Students OFF

3)与SELECT INTO 合用,插入行号

这个常常用于临时表分页时使用。

注意:如果查询的列中有自增列,需要将其删除,或者屏蔽,因为一张表中只有一个IDENTITY字段。

SELECT IDENTITY(int,1,1) AS RowNumber,Name,Age,Sex,City
INTO Students_Backup
FROM Students

SCOPE_IDENTITY() 

还有一个常用的函数,与此一起使用 SCOPE_IDENTITY()

常常在有IDENTITY列的插入时,需要返回当前的行的IDENTITY的列值。

如:

IF OBJECT_ID (N'Students', N'U') IS NOT NULL
DROP TABLE Students;
GO
--学生信息表
CREATE TABLE Students(
ID int IDENTITY(1,1) PRIMARY KEY not null,
Name nvarchar(50),
Age int,
Sex bit,
City nvarchar(50),
MajorID int
) INSERT INTO Students(Name,Age,Sex,City,MajorID) VALUES('Jim',18,0,'ShangHai',12)
SELECT SCOPE_IDENTITY()

这个例子,每次返回插入记录的ID的值。如果有其他关联表用到此ID,这时就不用再从数据库查一遍了。

3、OBJECT_ID

返回架构范围内对象的数据库对象标识号。

1)查询表是否存在

SELECT OBJECT_ID(N'Students',N'U')

与以下语句等价:

SELECT id FROM sysobjects WHERE name=N'Students' and type=N'U'

2)常常用于创建表、视图时,做判定。保证脚本的重复执行

创建学生信息表时,需要判定该表是否存在,如果存在则删除

IF OBJECT_ID (N'Students', N'U') IS NOT NULL
DROP TABLE Students;
GO
--学生信息表
CREATE TABLE Students(
ID int primary key IDENTITY(1,1) not null,
Name nvarchar(50),
Age int,
Sex bit,
City nvarchar(50),
MajorID int
)

4、跨库执行

如果系统需要多个数据库,当执行跨库脚本,无需再次进行连接,可以执行如下脚本

实例:当前在master库,查询TestDB库的Students表信息:

USE master

SELECT * FROM TestDB..Students

常用函数

1、LEN函数

计算字段值的长度

SELECT LEN(Name) AS NameLength FROM Students

2、FORMAT函数

FORMAT 函数用于对字段的显示进行格式化。

语法:

SELECT FORMAT(column_name,format) FROM table_name

1)时间格式化

SELECT FORMAT(GETDATE(),'yyyy-MM-dd') 

结果:2014-05-13

3、CAST函数

1、实例:将价格转为整型

SELECT CAST(Price AS smallint) AS CPrice FROM Orders

结果:10

2、将字段解析为XML

SELECT CAST(Scheme AS xml) AS CPrice FROM Orders

结果:

<xml>
<ProductID>101</ProductID>
<ProductName>Card</ProductName>
</xml>

4、CONVERT

语法:

CONVERT(data_type,expression[,style])

说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.

tyle数字在转换时间时的含义如下:

------------------------------------------------------------------------------------------------------------
Style(2位表示年份)         |  Style(4位表示年份)   |   输入输出格式                                    
------------------------------------------------------------------------------------------------------------
0                               | 100                           |   mon dd yyyy hh:miAM(或PM)              
------------------------------------------------------------------------------------------------------------
1                               |  101   美国                |   mm/dd/yy                                       
------------------------------------------------------------------------------------------------------------
2                               |  102    ANSI               |   yy-mm-dd                                        
------------------------------------------------------------------------------------------------------------
3                               |  103    英法                |   dd/mm/yy                                       
------------------------------------------------------------------------------------------------------------
4                               |  104    德国                |   dd.mm.yy                                        
------------------------------------------------------------------------------------------------------------
5                               |  105    意大利             |   dd-mm-yy                                        
------------------------------------------------------------------------------------------------------------
6                               |  106                            |   dd mon yy                                        
------------------------------------------------------------------------------------------------------------
7                               |  107                            |   mon dd,yy                                        
------------------------------------------------------------------------------------------------------------
8                               |  108                            |   hh:mm:ss                                         
------------------------------------------------------------------------------------------------------------
9                               |  109                            |   mon dd yyyy hh:mi:ss:mmmmAM(或PM)
------------------------------------------------------------------------------------------------------------
10                             |  110    美国                 |   mm-dd-yy                                         
------------------------------------------------------------------------------------------------------------
11                             |  111    日本                 |   yy/mm/dd                                        
------------------------------------------------------------------------------------------------------------
12                             |  112    ISO                  |   yymmdd                                           
------------------------------------------------------------------------------------------------------------
13                             |  113     欧洲默认值     |   dd mon yyyy hh:mi:ss:mmm(24小时制)  
------------------------------------------------------------------------------------------------------------
14                             |  114                            |   hh:mi:ss:mmm(24小时制)                    
------------------------------------------------------------------------------------------------------------
20                             |  120     ODBC 规范     |    yyyy-mm-dd hh:mi:ss(24小时制)         
------------------------------------------------------------------------------------------------------------
21                             |   121                           |    yyyy-mm-dd hh:mi:ss:mmm(24小时制) 
------------------------------------------------------------------------------------------------------------

1)实例:时间转换为指定形式

SELECT CONVERT(NVARCHAR(20),GETDATE(),120) 

结果:2014-05-13 23:49:34

2)实例转为XML格式

SELECT CONVERT(xml,Scheme) FROM Orders

结果:

<xml>
<ProductID>101</ProductID>
<ProductName>Card</ProductName>
</xml>

全部脚本

SELECT UCASE(Name) FROM Students
SELECT UCASE(LastName) as LastName,FirstName FROM Persons SELECT GETDATE() --2014-05-13 23:15:36.130 SELECT FORMAT(GETDATE(),'yyyy-MM-dd') --2014-05-13 IF OBJECT_ID('Orders','U') IS NOT NULL
DROP TABLE Orders
CREATE TABLE Orders
(
ID bigint primary key not null,
ProductID int,
ProductName nvarchar(50),
Price float,
Scheme text,
Created datetime default(getdate())
) INSERT INTO Orders(ID,ProductID,ProductName,Price,Scheme)
VALUES(201405130001,101,'Card',10.899,'<xml><ProductID>101</ProductID><ProductName>Card</ProductName></xml>') SELECT LEN(ProductName) AS NameLength FROM Orders -- SELECT FORMAT(Created,'yyyy-MM-dd') AS FormatDate FROM Orders --2014-05-13 SELECT ROUND(Price,2) FROM Orders --10.9 SELECT CAST(Price AS smallint) AS CPrice FROM Orders
-- SELECT CAST(Scheme AS xml) AS CPrice FROM Orders --CONVERT
SELECT CONVERT(NVARCHAR(20),GETDATE(),120) --2014-05-13 23:49:34
SELECT CONVERT(xml,Scheme) FROM Orders
/* 结果:
<xml>
<ProductID>101</ProductID>
<ProductName>Card</ProductName>
</xml>
*/

SQL总结(三)其他查询的更多相关文章

  1. 【SQL】Oracle分页查询的三种方法

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...

  2. SQL多表连接查询

    SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体 ...

  4. ArcGIS中的三种查询

    ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Clie ...

  5. LinQ实战学习笔记(三) 序列,查询操作符,查询表达式,表达式树

    序列 延迟查询执行 查询操作符 查询表达式 表达式树 (一) 序列 先上一段代码, 这段代码使用扩展方法实现下面的要求: 取进程列表,进行过滤(取大于10M的进程) 列表进行排序(按内存占用) 只保留 ...

  6. 【转】SQL Server T-SQL高级查询

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student ...

  7. sql server操作2:查询数据库语句大全【转】

    注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...

  8. select子句和三种子查询

    一.select子句 五种子句 Where.group by.having.order by.limit Where.group by.having.order by.limit运用的这个顺序不能变 ...

  9. SQL Server 之 子查询与嵌套查询

    当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询. 1 子查询 子查询是一个嵌套在select.insert.update或delete语句或其他子查询中的查询.任何允许使用 ...

  10. 数据库SQL的多表查询

    数据库 SQL 的多表查询:eg: table1: employees, table2: departments,table3: salary_grades; 一:内连接: 1):等值连接: 把表em ...

随机推荐

  1. html5 video标签兼容性与自定义控件

    Video不兼容IE8及之前的版本和opera mini. 格式上MPEG4/H.264兼容大部分浏览器,除低版本Firefox和低版本opera,这些可以通过用ogg格式解决,而webm是一种开放. ...

  2. Effective Java阅读笔记——引言

    “我很希望10年前就拥有这本书.可能有人认为我不需要任何Java方面的书籍,但是我需要这本书.” ——Java之父 James Gosling 在图书馆找到这本java著作时,首先看到了这句话.   ...

  3. 三星在GPL下发布其exFAT文件系统实现源码

    exFAT文件系统是微软的一个产品,设计让外置储存设备和PC之间实现无缝的TB级数据转移和数据交换,它只支持Windows和OS X,不支持Linux.作为一个含有大量专利的私有产品,没有人会预计它会 ...

  4. 介绍开源的.net通信框架NetworkComms框架之七 数据加密通信

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  5. Node.js 路由

    我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码. 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数.这一功能应当属 ...

  6. STC12C5A60S2 常用的中断源和相关寄存器

    1) 中断源 STC12C5A60S2共有十个中断源,每个中断源可设置4类优先级:当相同优先级下各中断优先级由高到低依次如下: 1.1)INT0(外部中断0) 中断向量地址 0003H, C语言编程: ...

  7. golang的第一个deadlock

    package main import (     "fmt"     "math/rand" ) func push(c chan []int) {      ...

  8. MagicalRecord的使用(第三方库实现的数据库)

    MagicalRecord:http://cocoadocs.org/docsets/MagicalRecord/2.1/ 安装: 1.新建一个工程,注意不要勾选 Core Data. 2.利用Coc ...

  9. 基于百度定位及天气获取的DEMO +fragment+sharedpreference

    此工程较BaiduLocationXML相比:1.植入fragment,结合微信UI2.在原本主界面的button  textview  textview 移植到Fragment13.增加网络判断,网 ...

  10. GoldenGate 12.2 支持不可见列invisible column的复制

    Oracle Goldengate 12.2现在可以复制不可见列,在以前的版本中是没有此项功能的.示例:在源和目标都创建一个不可见和虚拟列commission SQL>  create tabl ...