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
相关文档:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2010 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......
1.sql是一种脚本语言
2.sql可写脚本程序,但最重要的作用发挥在对数据库的操作上
3.sql server2005中的注释有两种/***/多行注释,--可以单行注释
4.sql中的自定义变量以@开头,系统变量以@@开头
5.sql中声明变量和VB类似,使用declare声明变量如:declare @i int,@j int,此语句声明了2个整形变量@i和@j
6.sql中的数据 ......
在Oracle中,如果在sql中出现'&'符号,会被自动转义;
而被要求输入在&符号后跟随的字符串的值,例如:
update tablename set columnName='http://www.g.cn/cv2.jsp?spid=222&cid=333';
执行这个操作时,Oracle会提示
Enter value for cid:
原因是在Oracle中 & 符号是作为转义字符使用的。
解决方法 ......
对于SQL 随机抽样我们常想到的就是newid(),但如果对于一个在百万、千万甚至更大海量数据表中抽样的话,简单的newid(),其性能,效率就不是很理想了。所以在这里有必要讨论一下,择优而用。
long_goods是一个百万数据的表,Ctrl+L执行以下语句:
--id_index是我为主键加的一个非聚焦索引
SELECT top 1&nb ......