SQL语句导入导出
/******* 导出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/*********** 导入Excel
SELECT *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
/*动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\test.xls'
set @s ='''Microsoft.Jet.OLEDB.4.0'',
''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''
set @s = 'SELECT * from OpenDataSource ('+@s+')...sheet1$'
exec(@s)
*/
SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
/********************** EXCEL导到远程SQL
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名 (列名1,列名2)
SELECT 列名1,� ......
优化器在形成执行计划时需要做的一个重要选择是如何从数据库查询出需要的数据。对于SQL语句存取的任何表中的任何行,可能存在许多存取路径(存取方法),通过它们可以定位和查询出需要的数据。优化器选择其中自认为是最优化的路径。
在物理层,oracle读取数据,一次读取的最小单位为数据库块(由多个连续的操作系统块组成),一次读取的最大值由操作系统一次I/O的最大值与multiblock参数共同决定,所以即使只需要一行数据,也是将该行所在的数据库块读入内存。逻辑上,oracle用如下存取方法访问数据:
(1) 全表扫描(Full Table Scans, FTS)
为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件。Oracle顺序地读取分配给表的每个数据块,直到读到表的最高水线处(high water mark, HWM,标识表的最后一个数据块)。一个多块读操作可以使一次I/O能读取多块数据块(db_block_multiblock_read_count参数设定),而不是只读取一个数据块,这极大的减少了I/O总次数,提高了系统的吞吐量,所以利用多块读的方法可以十分高效地实现全表扫描,而且只有在全表扫描的情况下才能使用多块读操作。在这种访问模式下,每个数据块只被读一次。由于HWM� ......
SQL函数
在SQL中,函数对数据或数据组执行操作,然后返回需要的值。函数表达式可以出现在SELECT列表中,或者
在任何允许出现的位置上。SQL包含了七种函数:
(1)聚合函数:返回汇总值。
(2)转型函数:将一种数据类型转换为另外一种。
(3)日期函数:处理日期和时间。
(4)数学函数:执行算术运算。
(5)字符串函数:对字符串、二进制数据或表达式执行操作。
(6)系统函数:从数据库返回在SQLSERVER中的值、对象或设置的特殊信息。
(7)文本和图像函数:对文本和图像数据执行操作。
1、聚合函数:它对其应用的每个行集返回一个值。
函数 返回值
AVG(表达式) 返回表达式中所有的平均值。仅用于数字列并自动忽略NULL值。
COUNT(表达式) 返回表达式中非NULL值的数量。可用于数字和字符列。
COUNT(*) 返回表中的行数(包括有NULL值的列)。
MAX(表达式) 返回表达式中的最大值,忽略NULL值。可用于数字、字符和日期时间列。
MIN(表达式) 返回表达式中的最小值,忽略NULL值。可用于数字、字符和日期时间
列。
SUM(表达式) 返回表达式中所有的总和,忽略NULL值。仅用于数字列。
2、转换函数:有CONVERT和CAST两 ......
一、配置 SQL Server,使之允许 CLR 集成:
1.单击“开始”按钮,依次指向“所有程序”、Microsoft SQL Server 2005 和“配置工具”,然后单击“外围应用配置器”。
2.在 SQL Server 2005 外围应用配置器工具中,单击“功能的外围应用配置器”。
3.选择您的服务器实例,展开“数据库引擎”选项,然后单击“CLR 集成”。
4.选择“启用 CLR 集成”。
此外,您可以在 SQL Server 中运行以下查询(此查询需要 ALTER SETTINGS 权限):
USE [database]
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
二、创建 SQL Server Project,配置数据库连接信息。右键打开该项目属性,选择“database ”,将Permission Level设为“unsafe”
三、
项目创建后添加一个.cs 文件,如下演示如何进行表值函数扩展
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Se ......
你是否遇到过 想在 字符串里面写 SQL语句,但是总是遇到 某些符号不会写.
比如说在字符串里面写个变量.
like: str sql="select * from abc where id= ' "++" ' "
id的变量应 先用单引号然后“+”号。
今天遇到个很长的SQL语句,而且SQL语句里面嵌套了字符串。当时根本不会写,后来在同事帮助下,终于解决了。
方法:
不管字符串多长,只要记住 如果是个变量 就写成 "+变量+"。其它一切不动。
例子:
else if(DB.getFirst("select parentcategoryid from category where categoryid in
("
+
DB.getFirst("select parentcategoryid from category where categoryid=" +
EnMapArray[cnum] + "
")+"
)") == DB.getFirst("select parentcategoryid from category where categoryid in ("+DB.getFirst("select parentcategoryid from category where categoryid=" + EnMapArray[EnMapArray.Length - 1] + "")+")")) ......
1.SELECT语句从数据库中选取数据
SELECT '列名' from '表名' SELECT list_name from table_name 从 '表名' 选区'列名' 数据 SQL SELECT * from table_name 从 '表名' 选区全部数据
2.SELECT 加WHERE 语句
SELECT '列名' from '表名' WHERE '条件'
3.SELECT 加AS 语句
使用AS 给数据指定一个别名。此别名用来在表达式中使用 count()函数的作用是:计算数组中的元素数目或对象中的属性个数。 SELECT CONCAT(*) AS new_name
4.SELECT JOIN ON语句
JOIN联合操作两个表 SELECT '列名1' '列名2' from '表名1' JOIN '表名2' ON 条件 SELECT A.SYMBOL,A.SNAME from SECURITYCODE A JOIN DAYQUOTE B ON A.SYMBOL =B.SYMBOL SQL--JOIN之完全用法(版本2)
5.SELECT ORDER BY语句
ORDER BY排序ASC升序, DESC降序 SELECT '列名' from '表名1' ORDER BY '列名' [ASC, DESC] SELECT list_name from table_name Orders ORDER BY list_name
6.SELECT LIMIT语句
SELECT * from table LIMIT [offset,] rows | rows OFFSET offset LIMIT 返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二 ......