SQLSERVER笔记
SQL Server 2005 数据库基础及应用技术教程与实训 ? 1. 在同一个实例中,最多可以创建32767个数据库,超过这个数量的数据库创建会失败。 8。使用系统存储过程sp_help查看表的结构。语法格式:[exec] sp_help [table_name] 12。默认与DEFAULT约束的作用是当用户向数据库表中插入一行数据时,如果没有明确给出某列的输入值,则由SQL Server自动为该列输入默认值。但写DEFAULT约束不同的是,默认值是一种数据库对象,在数据库中只需定义一次,就可以被一次或多次地应用在任意表中的列或多列上,还可以应用在用户自定义数据类型。 13。使用规则 执行绑定规则的命令语句如下: 14。使用top percent。例如:SELECT TOP 5 PERCENT * FROM BOOK115。在输入SQL语句时,注意标点符号(如引号、逗号等)一定要在半角状态下输入。16。LIKE关键字%百分号:匹配包含0个或多个字符的字符串。_下划线:匹配任何单个字符。[]排列通配答,匹配任何在范围或集合之内的单个字符,例如,[m-p]匹配的是m,n,o,p单个字符。[^]不在范围之内的字符,匹配任何在不范围或集合之内的单个字符,例如,[^mnop]或[^m-p]匹配的是除了m,p之外的任何字符。17。使用IS NULL 关键字查询没有赋值的行。18。使用COMPUTE 子句用来计算总计或进行分组小计,总计值或小计值将作为附加的新行出现在查询结果中。该子句用在WHERE子句之后。例如:查询出版社“中国长安”出版图书的本数,包括编号,书名,ISBN号和出版社,并计算平均定价。SELECT 编号,书名,ISBN号,定价,出版社 FROM book1 WHERE 出版社=‘中国长安’ COMPUTE AVG(定价)19。使用COMPUTE BY 子句对 BY后面给出的列进行分组显示,并计算该列的分组小计。使用COMPUTE BY子句时必须按照ORDER BY 和COMPUTE BY 中的BY 指定的列进行排序。例如:按各出版社显示book1表中的编号,书名,定价,出版社,并计算每个出版的平均定价。SELECT 编号,书名,定价,出版社 FROM book1 ORDER BY 出版社 COMPUTE AVG(定价) BY 出版社20。WHERE 子句对原始记录进行过滤,HAVING子句对结果进行过滤。21。需要特别指出的是,子查询的SELECT 语句中不能使用ORDER BY 子句,ORDER BY 子句只能对最终查询结果排序。22。UNION运算符用于将两个或多个查询结果合并成一个结果,当使用UNION运算符时,需要以下两个规则:1>.所有查询中列数和列的顺序必须相同。2>.所有查询中按顺序对应列的数据类型必须兼容。例如:SELECT 书名 FROM book1 UNION SELECT 编号 FROM book2如果希望重新排序多个查询结果的合并结果,则在最后的SELECT 语句中使用ORDER BY 子句。23。不等值连接:在连接条件中使用等运算符以外的其他比较运算符(>,>=,<=,!>,!<,<>) 来比较连接的列值。例如:查询book1表和book2表中凡是编号不相等的所有书的书名和编号信息。SELECT bool.书名,book1.编号,book2.书名,book2.编号 FROM book1,book2 where boo1.编号<>book2.编号?24。自连接:如果所连接的两个表为同一个表,那么这种连接又称为自连接。自连接能把一个表中的行和该表中的另外一些行联系起来。例如:在book1表查询与编号为“YBZT0005”图书的出版社相同的书名,定价和出版日期。SELECT a.编号,a.书名,a.定价,a.出版日期 FROM book1 a,book1 bWHERE a.出版社=b.出版社 AND a.编号<>'YBZT0005' AND b.编号=‘YBZT0005’25。建立索引的原则。创建索引虽然可以提高查询速度,但是它需要牺牲一定的系统性能。因此,在创建时需具有以下几点原则。???? 1>.定义有主键的数据列一定要建立索引。因为主键可以加速定位到表中的某一行。???? 2>.定义有外键的数据列一定要建立索引。外键列通常用于表与表之间的连接,在其上创建索引可以加快表间的连接。???? 3>.对于经常查询的数据列最好建立索引。?????????? a.对于需要在指定范围内快速或频繁查询的数据列,因为索引已经排序,其指定的范围是连续的,查询可以利用索引的排序,加?快查询时间。?????????? b.经常用在WHERE子句中的数据列,将索引建立在WHERE子句的集合过程中,对于需要加速或频繁检索的数据列,可以让这些经常参与查询的数据列按照索引的排序进行查询,加快查询的时间。????? 4>.对于那些查询中很少涉及到的列、重复值比较多的列不要建立索引。例如,在查询中很少使用的列,有无索引并不能提高查询速度,相反增加了系统维护时间和消耗了系统空间;又如,“性别”列只有列值“男”和“女”,增加索引并不能显著提高查询的速度。????? 5>.对于定义为text、image和bit数据类型的列不要建立索引。因为这些数据类型的数据列的数据量要么很大,要么很小,不利于使用索引。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |