易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : sql

SQL 随机抽样的总结

对于SQL 随机抽样我们常想到的就是newid(),但如果对于一个在百万、千万甚至更大海量数据表中抽样的话,简单的newid(),其性能,效率就不是很理想了。所以在这里有必要讨论一下,择优而用。
 
long_goods是一个百万数据的表,Ctrl+L执行以下语句:
 
--id_index是我为主键加的一个非聚焦索引
SELECT top 1  * from long_goods order by newid()
--查询开销 43%
SELECT top 1  * from long_goods with(index=id_index) order by newid()
--查询开销 54%
select top 1 * from long_goods where id=(select top 1 id from long_goods order by newid())
--查询开销 1%
select top 1 * from long_goods where id=(select top 1 id from long_goods with(index=id_index) order by newid())
--查询开销 1%
 
虽然第三个与第四个的开销是一样,但实际应该是第四种优于第三种。
 
如果MS SQL2005升级到支持 TABLESAMPLE 的话,以下语句的抽样执行效率可为最优的
SELECT * from long_goods TABLESAMPLE SYSTEM (10 PERCENT)
 
呵呵..下班了,至于其中原因,下次有空再续. ......

一个项目经常用到的50个sql语句


说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。
问题及描述:
--1.学生表
Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别
--2.课程表
Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号
--3.教师表
Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名
--4.成绩表
SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数
*/
--创建测试数据
create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10))
insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')
insert into Student values('02' , N'钱电' , '1990-12-21' , N'男')
insert into Student values('03' , N'孙风' , '1990-05-20' , N'男')
insert into Student values('04' , N'李云' , '1990-08-06' , N'男')
insert into Student values('05' , N'周梅' , '1991-12-01' , N'女')
insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女')
insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女')
insert into Student values( ......

sql语句学习笔记(6) 常用字符串操作函数

这些函数在系统函数可以找到。下面是我练习时写的代码,包含了常用的字符串操作函数
/*********************************
常用字符串函数:sql中没有数组这一说
*********************************/
--int charindex('要找的字符串','源字符串',开始位置),获取字符串中指定字符串的位置
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print Charindex('湖',@str,1)--输出为4(字符串操作中的起始位置是1而不是0)
--区别于charindex,是一种模式匹配
--参考资料http://msdn.microsoft.com/zh-cn/library/ms190184.aspx
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print patindex('%湖%',@str)--输出4
--string substring('源字符串',起始位置,长度),从源字符串中指定位置开始获取指定长度的字符串
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print substring(@str,1,2)--打印出‘江苏’
--string replace(‘源字符串’'要被替换的字符串',‘要 ......

SQL面试题

1、两表,一张有上百万的数据(表A),另一张只有一万多条数据(表B),A表的外键关联到B表的主键上。
问下面两条SQL语句,那条性能更高?
(1)SELECT A.ID, B.ID from A, B WHERE A.FID = B.ID
(2)SELECT A.ID, B.ID from B, A WHERE A.FID = B.ID ......

SQL知识大杂烩


$$$为每节的开始
-------------------------------------------------------------------------------------------------------------------------------------------------
$$$ SQL中系统临时表的使用和禁忌 及 Exec(SQLScript) 的使用
以前在SQL 中写SP 时,如比较复杂时,喜欢中间使用临时表来暂存相关记录,这样的好处有很多,提高效率,提高程序的可读性等。当然后临时表的使用,一般均会使用用户临时表,即 #TempTable, 但有一些情况下,偶尔也会使用系统临时表,即 ##TempTable。 
两种临时表的的使用语法差不多,可用几种方法来建立,可 Create ,也可 Select Into 。 
当然关键的是系统临时表和用户临时表的区别:(如下) 
1)用户临时表:用户临时表的名称以单个数字符号(#)开头; 
用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的. 
当创建它的进程消失时这个临时表就自动删除. 
2)系统临时表:系统临时表的名称以数字符号(##)开头 
全局临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失的时候,它也自动删除. 
明白了这些就知道了他们的用途和限制,但有一些地方还是容易出问 ......

使用jdbc连接sql数据库

基本上就是这些步骤:
下载你要连接的数据库的JDBC驱动程序(driver)。通常都是一个jar文件,复制到你的project里面,确保识别这个库就可以了。
加载驱动, 不同的数据库需要不同 JDBC driver。
连接数据库,不同的数据库同样需要不同的JDBC URL。
下面给出连接不同数据库的例子
连接 mini SQL
// Establish a connection to a mSQL database using JDBC.
import java.sql.*;
class JdbcTest1 {
public static void main (String[] args) {
try
{
// Step 1: Load the JDBC driver.
Class.forName("com.imaginary.sql.msql.MsqlDriver");
// Step 2: Establish the connection to the database.
String url = "jdbc:msql://www.myserver.com:1114/contact_mgr";
Connection conn = DriverManager.getConnection(url,"user1","password");
}
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
}
连接Interbase
// Establish a connecti ......
总记录数:4346; 总页数:725; 每页6 条; 首页 上一页 [32] [33] [34] [35] 36 [37] [38] [39] [40] [41]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号