WEB开发网
开发学院数据库MSSQL Server SQL开发中容易忽视的一些小地方 阅读

SQL开发中容易忽视的一些小地方

 2008-10-13 10:07:39 来源:WEB开发网   
核心提示: 学生表记录:插入数据999999行.可以说的上是一个不大不小的表.CREATE TABLE [dbo].[classInfo]([classID] [int] IDENTITY(1,1) NOT NULL,--所属班级ID[sClassName] [varchar](50) COLLATE

学生表记录:插入数据999999行.可以说的上是一个不大不小的表.

CREATE TABLE [dbo].[classInfo](
[classID] [int] IDENTITY(1,1) NOT NULL,--所属班级ID
[sClassName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,--班级名称
[sInformation] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,--班级相关信息
[sDescription] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,--班级描述
[iSchooling] [int] NULL,--学费
CONSTRAINT [PK_classInfo] PRIMARY KEY CLUSTERED
(
[classID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
  
) ON [PRIMARY]

班级表:共插入100行,实际可能不存在这么多的班级.

示例需求:查询学生的基本信息以及所属班级名称,我们都会第一时间想到用表关联,这里我列出相关实现方法.

第一:将数据量较大的学生表放在前面.

--大表在前

select top 1000 a.sUserName,b.sClassName from student a
inner join classInfo b on
  
a.classID=b.classID

第二:将数据量较小的班级表放在前面.

--小表在前

select top 1000 a.sUserName,b.sClassName from classInfo b
inner join student a on
  
a.classID=b.classID

第三:用where 实现.

--join与where

select top 1000 a.sUserName,b.sClassName from classInfo b, student a

where a.classID=b.classID

归纳:以上三种方式查询的结果都完全相同,但它们在实现效率上会有不同吗?这里首先提出两个网络上的观点:

网络观点一:一般要使得数据库查询语句性能好点遵循一下原则:在做表与表的连接查询时,大表在前,小表在后.

上一页  1 2 3 4 5 6  下一页

Tags:SQL 开发 容易

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接