SQL总结(三)其他查询
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总结(三)其他查询的更多相关文章
- 【SQL】Oracle分页查询的三种方法
[SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 ? 1 2 3 4 5 6 7 8 9 10 11 [sql] select * from t_user t whe ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (11) -----第三章 查询之异步查询
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体 ...
- ArcGIS中的三种查询
ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Clie ...
- LinQ实战学习笔记(三) 序列,查询操作符,查询表达式,表达式树
序列 延迟查询执行 查询操作符 查询表达式 表达式树 (一) 序列 先上一段代码, 这段代码使用扩展方法实现下面的要求: 取进程列表,进行过滤(取大于10M的进程) 列表进行排序(按内存占用) 只保留 ...
- 【转】SQL Server T-SQL高级查询
SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student ...
- sql server操作2:查询数据库语句大全【转】
注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...
- select子句和三种子查询
一.select子句 五种子句 Where.group by.having.order by.limit Where.group by.having.order by.limit运用的这个顺序不能变 ...
- SQL Server 之 子查询与嵌套查询
当由where子句指定的搜索条件指向另一张表时,就需要使用子查询或嵌套查询. 1 子查询 子查询是一个嵌套在select.insert.update或delete语句或其他子查询中的查询.任何允许使用 ...
- 数据库SQL的多表查询
数据库 SQL 的多表查询:eg: table1: employees, table2: departments,table3: salary_grades; 一:内连接: 1):等值连接: 把表em ...
随机推荐
- Python之路 day2 购物车小程序1
#Author:ersa ''' 程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时 ...
- logistic回归模型
一.模型简介 线性回归默认因变量为连续变量,而实际分析中,有时候会遇到因变量为分类变量的情况,例如阴性阳性.性别.血型等.此时如果还使用前面介绍的线性回归模型进行拟合的话,会出现问题,以二分类变量为例 ...
- progresql - 常用的管理命令
1.查看当前数据库实例的版本 Select version(); 2.查看数据库的启动时间 Select pg_postmaster_start_time(); 3.查看最后load配置文件的时间 s ...
- WPF:ListView 分页
布局MainWindow.xaml <ListView Name="list_Reg" ItemsSource="{Binding Source={StaticRe ...
- App_GlobalResources.afvubzdv.resources.dll”--“拒绝访问。“
在使用ArcGIS Viewer for Silverlight创建应用程序的时候有时会出现编译错误 前面的忘了 最后是App_GlobalResources.afvubzdv.resources. ...
- ajax json 动态传值
<a href="#" onclick="getRightInfo(${v.ctid})"></a> <div id=" ...
- oracle procedure
http://www.cnblogs.com/wuhenke/archive/2010/03/20/1690535.html
- Windows Store App 插值动画
插值动画支持DoubleAnimation.ColorAnimation和PointAnimation类型的动画.其中比较常用的是DoubleAnimation动画,它可以用来控制界面元素的Doubl ...
- CodeForces 688C-NP-Hard Problem
题意: 给你一个无向图,判断是否能够构成一个二分图,如果能的话,输出二分图左边的集合和右边的集合 分析: 先给每一个顶点的color初始化-1,表示没有被染色,用vector数组v[a],表示元素a所 ...
- OC中快速创建NSNumber NSDictionary NSArray的方法
NSNumber: @() @小括号 或者 NSNumber * num = @3; NSValue * value = @4; NSDictionary :@{} @大括 ...