SlideShare una empresa de Scribd logo
1 de 24
3.0  数据库与表的创建
创建数据库之前的准备 :
•    数据库命名规则
•    需具备的权限
•    数据库的所有者
•    数据库上限
•    数据库文件和文件组
•    事务日志
•    数据库状态
命名规则
数据库命名规则 :
命名规则取决于数据库的兼容级别 , 不同的级别对应不同的规则
级别可以为 : 60; 65; 70; 80(sqlserver2000); 90(sqlserver2005)
90 的命名规则 :
1. 长度不能超过 128 个字符
2. 本地临时表名称不能超过 116 个字符
3. 名称的第一个字符必须是英文、中文 ( 其它语言字母 ) 、下划
线、 @ 、 # 符号。
4. 除了第一个字符之外的字符,还可以包括数字、 $
5. 名称中间不能有空格或者其他字符
6. 名称不能是保留字
权限
权限:
创建数据库至少的具有以下权限:
Create database
Create any database
Alter any database
数据库的拥有者:
创建数据库的用户将成为该数据库的所有者。任何可以访问到
SQLSERVER 的链接的用户 (SQL Server 登录帐号或者
Windows 用户 ) 都可成为数据库的所有者。
数据库的上限:
在同一个实例中,最多可以创建 32767 个数据库,超过这个数
量数据库创建会失败。
数据库文件和文件组:
每个数据库必须包含两个文件 : 一个数据文件和一个日志文件
数据文件包含的是数据库的数据和对象,如表、视图、索引等
等
日志文件包含的是用来恢复数据库所包含的一些信息 ;
为了便于分配和管理,可以将数据文件集合起来,放到文件组
中。
事务日志:
用于记录数据库操作的所有事物以及每个事物对数据库所做的修
改,一旦数据库系统出现故障,事务日志是恢复数据的唯一源泉
文件组:
每个数据库有一个主要文件组。此文件组包含主要数据文件和未
放入其他文件组的所有次要文件。可以创建用户定义的文件组,
用于将数据文件集合起来,以便于管理、数据分配和放置。
• 主要的文件组 
包含主要文件的文件组。所有系统表都被分配到主要文件组中。
• 用户自定义的文件组
用户首次创建数据库或以后修改数据库时明确创建的任何文件组。
默认文件组 :
   如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分
配给默认文件组。不管何时,只能将一个文件组指定为默认文件组。默
认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新
对象。
PRIMARY 文件组是默认文件组,除非使用 ALTER DATABASE 语句
进行了更改。但系统对象和表仍然分配给 PRIMARY 文件组,而不是新
的默认文件组。
数据库的状态
• ONLINE 在线
• OFFLINE 离线
• RESTORING 还原
• RECOVERING 恢复
• RECOVER PENDING 恢复待定
• SUSPECT 可疑
• EMERGENCY
Management Studio 创建数据库:
选项页配置参数
Create database 语句创建数据库
USE [master]
GO
CREATE DATABASE [DB_test]
ON PRIMARY
( NAME = N'test_Data1', FILENAME = N'D:datafilefile1.mdf' , SIZE = 2048KB ,
MAXSIZE = UNLIMITED, FILEGROWTH = 5120KB /*5%*/ ),
FILEGROUP [FileGroup1]
( NAME = N'test_Data2', FILENAME = N'E:datefile2file2.ndf' , MAXSIZE = UNLIMITED,
FILEGROWTH = 5120KB ),
( NAME = N'test_Data3', FILENAME = N'E:datefile2file3.ndf' , MAXSIZE = UNLIMITED,
FILEGROWTH = 5120KB )
LOG ON
( NAME = N'test_Log', FILENAME = N'D:datafiletest_log.LDF' ,FILEGROWTH =
20480KB )
COLLATE Chinese_PRC_BIN
--[ WITH ... ]
GO
排序规则 COLLATE 
如果 SQL Server 实例的所有用户都使用同一种语言,则应选择
支持该语言的排序规则。例如,若所有用户都讲法语,则选择法
语排序规则。
如果 SQL Server 实例的用户使用多种语言,则应选择能对多语
种需求提供最佳支持的排序规则。例如,如果用户一般都讲西欧
语言,则选择 Latin1_General 排序规则。
当支持使用多种语言的用户时,对所有字符数据都使用
Unicode 数据类型 nchar 、 nvarchar 和 ntext 最为重
要。 Unicode 旨在消除非 Unicode char 、 varchar 和 text
数据类型的代码页转换困难。
检索 Windows 排序规则和 SQL 排序规则的所有有效排序规则
名称的列表:
SELECT * FROM ::fn_helpcollations()
SQL 排序规则示例
字典顺序、区分大小写、区分重音、用于 1252 字符集。
该排序规则对美国英语字符集(代码页 1252 - Windows Latin 1
ANSI ,排序次序 ID 54 )使用字典排序规则。排序时不考虑大
、小写字符和重音符号。
在 Transact-SQL 中,字符串 SQL_Latin1_General_CP1_CI_AI
用于指定该设置。
CI 指定不区分大小写, CS 指定区分大小写。
AI 指定不区分重音, AS 指定区分重音。
Omitted 指定不区分大小写, KS 指定区分假名类型。
Omitted  指定不区分大小写, WS  指定区分大小写。
BIN  指定使用二进制排序次序。
下面是 Windows 排序规则名称的一些示例:
• Latin1_General_CI_AS
• 排序规则使用 Latin1 General 字典排序规则,代码页为
1252 。不区分大小写但区分重音。
• Estonian_CS_AS
• 排序规则使用爱沙尼亚字典排序规则,代码页为 1257 。区
分大小写并区分重音。
• Latin1_General_BIN
• 排序规则使用代码页 1252 和二进制排序规则。忽略 Latin1
General 字典排序规则。
分离数据库 :
• 使用工具操作
• 使用系统存储过程: exec sp_detach_db 'dbname'
注意事项 : 需要将进程结束后 c
修改数据库配置
附加数据库 :
• 使用工具操作
• 使用 T-SQL
exec sp_attach_db [dbname], 'd:*.mdf','d:*.ldf'
以上方式最多只能列出 16 个文件,如超出只能使用以下方式
create database [dbname]
on (filename = '.......mdf'),
(filename = '.......ldf')
     可以删除日志文件后仅附加数据文件,系统会自动创建新的
日志文件
分离和附加数据库
脱机
仅仅让数据库处于离线状态。
需要复制数据文件而又不想让整个 SQLSERVER 服务停止时,
可以先将 DB 脱机。
USE master
ALTER DATABASE [dbname]
SET OFFLINE
-- SET ONLINE
脱机和联机数据库
删除数据库
SQL:
DROP DATABASE [dbname]
-- 删除多个数据库
DROP DATABASE [dbname],[dbname2]
数据库
自动收缩
ALTER DATABASE [dbname]
SET AUTO_SHRINK ON
手动收缩
DBCC SHRINKDATABASE
( [ 'dbname' | dbid | 0 ] [, target_percent]
[, {notruncate | truncateonly } ]
)
-- dbcc shrinkdatabase (dbname1,10)
收缩数据库
手动收缩数据文件
Tools:
       任务 - 收缩 - 文件
T-SQL:
       DBCC SHRINKFILE (Filename,3)
4.0  表数据的操作
• 表的分类
• 列 ( 数据类型、自定义类型 )
• 数据操作
o Insert
o Delete  或者 Trancate Table
o Update
delete  与 truncate table 的不同点:
5.0 查询与视图
索引与数据完整性
聚集索引
  数据表本身就是 索引的一部分,意即 数据表本省就是聚集索引
的叶子层,整个数据表的摆放都是按照你选定的键值排序的。数
据表内的数据实际摆放方式只可能有一种顺序,所以一个数据表
只能有一个聚集索引。
  在指定聚集索引时,数据字段本身并不需要唯一,若指定非唯
一的聚集索引, sqlserver 内部会自行为重复的键值建立 4bytes
的唯一标识
非聚集索引
  完全独立于数据表之外的结构,其叶子层放的数据有两种可能
书签 (bookmark) 或聚集索引的键值
  注意:
 
  选择聚集索引的键值很大,则整个数据表的各种索引都将会变
得没有效率,因为所有的非聚集索引的叶子层势必都会因为纳入
聚集索引的键值而变大
  SQLSERVER 在 insert 、 update 、 delete 数据时会自动的维护索引
,所以索引数量要恰到好处,一般数据表最多 8-10 个索引

Más contenido relacionado

Destacado

Deshiroj Te Pendohem Por
Deshiroj Te Pendohem PorDeshiroj Te Pendohem Por
Deshiroj Te Pendohem Porguestef339
 
Mining Big Data to Predicting Future
Mining Big Data to Predicting FutureMining Big Data to Predicting Future
Mining Big Data to Predicting FutureIJERA Editor
 
Ternary Content Addressable Memory Types And Matchline Schemes
Ternary Content Addressable Memory Types And Matchline SchemesTernary Content Addressable Memory Types And Matchline Schemes
Ternary Content Addressable Memory Types And Matchline SchemesIJERA Editor
 
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...IJERA Editor
 
Comparative Study of Manual Lubrication and Automatic Lubrication
Comparative Study of Manual Lubrication and Automatic LubricationComparative Study of Manual Lubrication and Automatic Lubrication
Comparative Study of Manual Lubrication and Automatic LubricationIJERA Editor
 
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...IJERA Editor
 

Destacado (8)

Deshiroj Te Pendohem Por
Deshiroj Te Pendohem PorDeshiroj Te Pendohem Por
Deshiroj Te Pendohem Por
 
iSLAM
iSLAMiSLAM
iSLAM
 
Mining Big Data to Predicting Future
Mining Big Data to Predicting FutureMining Big Data to Predicting Future
Mining Big Data to Predicting Future
 
Ternary Content Addressable Memory Types And Matchline Schemes
Ternary Content Addressable Memory Types And Matchline SchemesTernary Content Addressable Memory Types And Matchline Schemes
Ternary Content Addressable Memory Types And Matchline Schemes
 
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...
Assessment of Water Quality of Lakes for Drinking and Irrigation Purposes in ...
 
Comparative Study of Manual Lubrication and Automatic Lubrication
Comparative Study of Manual Lubrication and Automatic LubricationComparative Study of Manual Lubrication and Automatic Lubrication
Comparative Study of Manual Lubrication and Automatic Lubrication
 
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...
A Survey of Privacy-Preserving Algorithms for Finding meeting point in Mobile...
 
CONTENTMARKETING
CONTENTMARKETINGCONTENTMARKETING
CONTENTMARKETING
 

Similar a Sql Server 2005 Basic02

第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程kidmany2001
 
My sql 使用规范
My sql 使用规范My sql 使用规范
My sql 使用规范Mask Wang
 
20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_ricoRico Chen
 
Sql Server 高级技巧系列之三整体优化
Sql Server 高级技巧系列之三整体优化Sql Server 高级技巧系列之三整体优化
Sql Server 高级技巧系列之三整体优化向 翔
 
Sql语句编写优化和基本原理总结
Sql语句编写优化和基本原理总结Sql语句编写优化和基本原理总结
Sql语句编写优化和基本原理总结wangchongan
 

Similar a Sql Server 2005 Basic02 (7)

12
1212
12
 
第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程
 
My sql 使用规范
My sql 使用规范My sql 使用规范
My sql 使用规范
 
20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico20120324 sql server 2012新特性by_rico
20120324 sql server 2012新特性by_rico
 
MYSQL
MYSQLMYSQL
MYSQL
 
Sql Server 高级技巧系列之三整体优化
Sql Server 高级技巧系列之三整体优化Sql Server 高级技巧系列之三整体优化
Sql Server 高级技巧系列之三整体优化
 
Sql语句编写优化和基本原理总结
Sql语句编写优化和基本原理总结Sql语句编写优化和基本原理总结
Sql语句编写优化和基本原理总结
 

Sql Server 2005 Basic02