加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER笔记

发布时间:2020-12-12 15:41:29 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server 2005 数据库基础及应用技术教程与实训 ? 1. 在同一个实例中,最多可以创建32767个数据库,超过这个数量的数据库创建会失败。 2。在默认情况下,数据库的数据文件都放在同一个目录下,这并不是最佳的方法,建议将数据文件和日志文件放在不同的驱动

SQL Server 2005 数据库基础及应用技术教程与实训

?

1. 在同一个实例中,最多可以创建32767个数据库,超过这个数量的数据库创建会失败。
2。在默认情况下,数据库的数据文件都放在同一个目录下,这并不是最佳的方法,建议将数据文件和日志文件放在不同的驱动器上。
3。使用次要数据文件可以将数据分散在多个磁盘上以提高读取速度。如果数据库很大,大到单个数据文件大小超过单个WINDOWS文件的最大大小时,就必须要使用次要数据文件,以便可以让数据库继续增长。
4。让数据库的文件大小自动增长虽然很方便,但是由于不定时地增长,会让增长后的文件在磁盘中不连续存放,也会降低数据库的效率。另外,如果数据库所需要的空间比较多,而增长属性设置太小,会造成数据库频繁增长,这样也会影响数据库的效率。但也不宜将数据库文件设置过大,造成空间浪费。
5。在SQL SERVER中每个数据库最多可存储20亿个数据表,每个数据表可以有1024列,每行最多可以存储8060字节。
6。text用于存储无限长度的字符串(每行可达2GB)
7。对于二进制型数据的存储来说,SQL Server提供3种数据类型,分别为binary,varbinary和image。其中,binary用于存储长度固定的二进制字符串;varbinary用于存储长度可变的二进制字符串;image用于存储大的二进制字符串(每行可达2GB)。
注:Binary型数据类似于字符型数据,当实际的字符串长度小于给定长度时,binary类型会在实际的字符串尾部添加0,而不是空格。

8。使用系统存储过程sp_help查看表的结构。语法格式:[exec] sp_help [table_name]
9。SQL Server中有五种约束类型,分别是CHECK约束,DEFAULT约束,PRIMARY KEY约束,FOREIGN KEY约束和UNIQUE约束。
10。使用Transact-SQL语句为teacher表创建CHEK约束。
??? use book
??? ALTER TABLE teacher
??? ADD
??? CONSTRAINT CK_teacher CHECK(性别='男' or 性别='女')
删除CHECK约束。
ALTER TABLE teacher
DROP CONSTRAINT CK_teacher
11 。创建Default约束
ALTER TABLE teacher
ADD CONTRAINT 性别 '男' FOR 性别
删除这个DEFAULT约束:
ALTER TABLE teacher
DROP CONSTRINT? DE_性别

12。默认与DEFAULT约束的作用是当用户向数据库表中插入一行数据时,如果没有明确给出某列的输入值,则由SQL Server自动为该列输入默认值。但写DEFAULT约束不同的是,默认值是一种数据库对象,在数据库中只需定义一次,就可以被一次或多次地应用在任意表中的列或多列上,还可以应用在用户自定义数据类型。
创建默认的命令如下:
CREATE DEFAULT default_name
AS constraint_expression
将默认绑定到表中某列上的命令如下:
EXEC sp_bindefault default_name 'table_name.[column_name[,...]|user_datetype]'
例如:EXEC sp_bindefault DF_TEST,'tableName.ColumnName'

13。使用规则
其实规则与CHECK约束的关系相对于默认与DEFAULT约束的关系一样,规则这种数据库对象的作用与CHECK约束一样,只不过规则不固定于哪个列,而是在创建好以后,指定插入数据表列上的有效值,从而确保用户在该列上输入的数据是在指定的范围之内。
创建规则的语法如下:
CREATE RULE rule_name
AS condition_expression
其中:rule_name:新建的规则名。
condition_expression:定义规则的条件。
例如:USE book
GO
CREATE RULE GZ_定价
AS 定价>=0 and @定价<=10000
注意:“@定价”是个变量,现在还不知道它代表数据表中的哪个列,只有待该规则绑定到表中的一个具体列上,它才代表那个具体列的列值。

执行绑定规则的命令语句如下:
EXEC sp_bindrule rule_name,'table_name.[column_name[...]|user_datetype]'
例如:EXEC sp_bindrule GZ_定价,'book2.定价'

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数据类型的列不要建立索引。因为这些数据类型的数据列的数据量要么很大,要么很小,不利于使用索引。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读