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 masterSELECT * 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 --4 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 --10 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> */

转载于:https://www.cnblogs.com/aipiaoborensheng/p/4897034.html

SQL总结(三)其他查询相关推荐

  1. sql 循环处理数据_图文介绍 SQL 的三种查询计划处理模型,Spark 用了其中两个

    我已经在之前的 <一条 SQL 在 Apache Spark 之旅(上)>.<一条 SQL 在 Apache Spark 之旅(中)> 以及 <一条 SQL 在 Apac ...

  2. MongoDB 教程三: 高级查询 (SQL到MongoDB映射表)

    查询接口 对于查询操作,MongoDB 提供了 db.collection.find() 方法.这个方法接收查询条件和映射两个条件并且返回一个指向匹配文档的 游标 .你可以使用 limits, ski ...

  3. sql oracle分页查询,【SQL】Oracle分页查询的三种方法-Oracle

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; 按照学生ID排名 ...

  4. ScottGu之博客翻译-LINQ to SQL第三部分,查询数据库 (Part 3 - Querying our Database)

     本贴只为共享知识,更为简洁(即无英文的版本)将会发布在博客堂上,堂主正对此文进行审阅. 希望本贴能对您的LINQ to SQL语言的学习有一定的帮助! 原贴链接: http://weblogs.as ...

  5. Entity SQL Language 三 Where/Exists/In/Like/参数及外键查询

    上文写了关于Where及Select的基本操作,这一篇讲一下Where的进阶操作 先说一下查看所生成的SQL的方法,.ToTraceString() 例如: string entitySQL = &q ...

  6. 时间序列数据和MongoDB:第三部分 - 查询,分析和呈现时间序列数据

    作者:Robert Walters 译者:刘东华 (Martin Liu) 在 时间序列数据和MongoDB中:第一部分 - 简介 我们回顾了您需要了解的关键问题,以了解数据库的查询访问模式.在 时间 ...

  7. 【转】在SQL Server中通过SQL语句实现分页查询

    在SQL Server中通过SQL语句实现分页查询 2008年01月06日 星期日 12:28 建立表: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY ...

  8. ArcGIS中的三种查询

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

  9. SQL语法之排序查询(进阶3)and常见函数(进阶4)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  10. SQL语法之基础查询(进阶1)and条件查询(进阶2)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

最新文章

  1. 中国科学院、东南大学等联合发表最新的视觉 Transformer 综述
  2. SQUAD的rnet复现踩坑记
  3. 【线段树】Traffic Jams in the Land(CF498D)
  4. 光纤收发器长距离的传输过程出现死机的解决方案
  5. c++ 原子操作 赋值_Volatile深度剖析-原子性
  6. java中priorityqueue_详解JAVA中priorityqueue的具体使用
  7. 电脑护眼模式_2020年双11护眼仪/眼部按摩仪推荐 |护眼仪/眼部按摩仪选购指南 |高性价比护眼仪推荐...
  8. 《像外行一样思考,像专家一样实践》
  9. ZOJ-3103 Cliff Climbing 最短路
  10. Chapter 6-Blurring Things Up之Do It Twice
  11. CFSSL 生成证书
  12. SQL SEVER select对象名无效
  13. 偏微分方程matlab课件,MATLAB偏微分方程求解.ppt
  14. 强网杯团队赛---Misc
  15. 掌门教育们的在线教育直播授课老师,“被一张布困住了”
  16. 安卓手机来电防火墙_超好用的手机APP推荐,绝对有你不知道的!
  17. Axure8.0 -手机端长文字滚动演示
  18. mac protobuf java_mac 下 使用 protobuf 生成 java 及 js 及配合socket.io 使用
  19. Android中自带的list布局
  20. Vue项目History模式404问题解决

热门文章

  1. es6与java的相似度,特斯拉Model Y对比蔚来ES6!这次对比结果出乎意料
  2. 单域名多php,php多域名单站点路由
  3. python多线程下载百度网盘_python多线程突破百度云限速下载
  4. matlab在图像上画出来的矩形框如何变成可托动的_计算机基础系列:源代码如何被计算机执行...
  5. 浙江大学计算机考研大纲,2018年浙江大学研究生入学考试《计算机学科专业基础》(878)考试大纲...
  6. 速算C语言程序设计,C语言程序设计课程设计-速算24.doc
  7. thinkcmf 去掉index.php,​ThinkCMF5.0如何修改入口文件 解决方法
  8. 华为亮度自动调节没了_一加8T不止有8192级自动亮度调节 刘作虎在线种草
  9. python 微信发送图片失败什么原因_[已解决] Appium-Python 测试聊天时同时发送 9 张图片的问题...
  10. uml 类图_UML 类图