SQLSERVER 学习笔记(四)索引 join 子查询 行号
索引: 经常用where进行查询的才需要建索引,主键自动有索引。 索引能够提高搜索的效率,但是索引占用空间,同时会降低insert?update?delete等修改的效率。 即使创建了索引,仍有可能全表扫描,如like?函数?类型转换等。 手动添加方法:?在表上?右键-设计-在列上点索引/键?添加索引,选择字段。
join的用法? 先建立两个表 create?table?T_Customers(Id?int,Name?nvarchar(50)); alter?T_Customers?add?Age?; insert?into?IdNameAge)?values(1N'tom'),(2N'jerry'3N'john' (4N'lily'5N'lucy'); T_OrdersBillNo?CustomerId?); BillNoCustomerIdN'001'N'002') N'003'4N'004'N'005'select?*?from?显示所有订单的客户名称 select?o.cAge T_Orders?as?o?join?c?on?=Id? order?by?ASC; --显示所有年龄大于岁的顾客订单 BillNo where?>15?--显示所有年龄大于平均年龄的顾客订单使用了子查询 BillNo Id? >(select?AVG);? 子查询 将一个查询语句作为结果集供其他SQL语句使用。 单值(一行一列)作为子查询 SELECT?SELECT?MINFYearPublishedT_Book最新的书MAX最旧的书 多行单列子查询 查询书出版那一年读者入会信息 T_Reader? FYearOfJoin?in ( FYearOfPublished??; ); ROW_NUMBER()?行号? 显示-5行的数据 但是ROW_NUMBER()不能出现在where中,但是还是有办法 from ( over?ORDER?BY?FSalary?DESC)rownumFNumberFSalaryFAge T_Employ e1 e1>=3?and?<=5; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |