文档详情

SQL Server数据库基础

jiups****uk12
实名认证
店铺
DOC
1.38MB
约81页
文档ID:40001610
SQL Server数据库基础_第1页
1/81

SQL Server 数据库基础数据库基础当创建了数据库之后,下一步就需要设计数据库对象SQL Server 能够创建多种数据 库对象,如表、索引、视图、存储过程、游标、触发器等本章将对其基础知识、相关的 操作进行详细介绍 本章主要内容:表索引视图存储过程游标触发器1 表表本节我们介绍数据表的基础知识,以及一些基本的操作:创建、修改、删除操作需 要提醒的是,创建数据表是创建数据库的一项基本操作在实际的项目开发过程中,在创 建数据表的时候,需要注意使用五种范式对表的数据列进行划分,得到表的逻辑结构,然 后通过 SQL Server 提供的工具加以实现其物理结构1.1 表基础表基础表是包含数据库中所有数据的数据库对象,表定义为列的集合,与电子表格相似,数 据在表中是按行和列的格式组织排列的每行代表唯一的一条记录,而每列代表记录中的 一个域例如,下面是 SQL Server 提供的默认数据库 Pubs 中的 sales 表结构如图 1 所示图 1 “sales”表该表包含行和列信息,其中行表示数据,列表示数据域 (stor_id、ord_num、ord_date、qty、payterns、title_id) 。

设计数据库时,应先确定需要什么样的表,各表中都有哪些数据以及各个表的存取权 限等等在创建和操作表过程中,对表进行更为细致的设计创建一个表最有效的方法是 将表中所需的信息一次定义完成,包括数据约束和附加成分也可以先创建一个基础表, 向其中添加一些数据并使用一段时间这种方法可以在添加各种约束、索引、默认设置、 规则和其它对象形成最终设计之前,发现哪些事务最常用,哪些数据经常输入 最好在创建表及其对象时预先将设计写在纸上,设计时应注意: 表所包含的数据的类型 表的各列及每一列的数据类型(如果必要,还应注意列宽) 哪些列允许空值 是否要使用以及何时使用约束、默认设置或规则 所需索引的类型,哪里需要索引,哪些列是主键,哪些是外键 当设计完成数据表之后,可以采用多种方式创建数据表,如在 SQL Server Management Studio 中使用图形界面创建数据库表,或者执行 Transact-SQL 语句创建数据库表 表的每一列都有一组属性,如名称、数据类型、为空性和数据长度等列的所有属性 构成列的定义可以使用数据库关系图在数据库表中直接指定列的属性在数据库中创建 表之前列应具备三个属性:列名、数据类型和数据长度。

1.2 创建企业信息平台的数据表创建企业信息平台的数据表在了解了 SQL Server 数据表概念和列属性之后,下面就可以创建数据表SQL Server 提供了多种方式创建数据表如在 SQL Server Management Studio 中采用图形向导创建数 据表,也可以使用 Transact-SQL 语句创建数据表,下面分别加以介绍 (1)使用 SQL Server Management Studio 创建数据库表 使用 SQL Server Management Studio 创建数据库表的步骤如下: 1. 打开 SQL Server Management Studio,如图 2 所示图 2 SQL Server Management Studio2. 选择需要创建表的数据库,展开文件夹,选择“表” ,单击鼠标右键,选择“新建 表” ,如图 3 所示图 3 选择“新建表”菜单项3. 输入列的名称、数据类型、长度、是否允许为空等属性,如图 4 所示图 4 定义数据表4. 当定义完成之后,单击工具栏上的按钮,保存该表,SQL Server Management Studio 将弹出对话框,要求输入表名,如图 5 所示。

图 5 定义表名的对话框5. 当定义了表名之后,单击“OK“按钮,保存该表,数据表创建完成 (2)使用 Transact-SQL 创建数据库表 在 SQL Server Management Studio 提供的查询分析器中,可以定义 Transact-SQL 的 CREATE TABLE 语句创建数据表其语法格式如下:CREATE TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name ( { | }[ ] [ ,...n ] ) [ ON { partition_scheme_name ( partition_column_name ) | filegroup | “ DEFAULT “ } ] [ { TEXTIMAGE_ON { filegroup | “ DEFAULT “ } ] [ ; ]::= column_name [ NULL | NOT NULL ][ COLLATE collation_name ] [ [ CONSTRAINT constraint_name ] DEFAULT constant_expression ] | [ IDENTITY [ ( seed ,increment ) ] [ NOT FOR REPLICATION ] ][ ROWGUIDCOL ] [ [ ...n ] ] ::= [ type_schema_name . ] type_name [ ( precision [ , scale ] | MAX | xml_schema_collection ) ] sql_server_native_type | type_name ::= [ CONSTRAINT constraint_name ] { { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR = fillfactor| WITH ( [, ...n ] ) ][ ON { partition_scheme_name ( partition_column_name ) | filegroup | “ DEFAULT “ } ]| [ FOREIGN KEY ] REFERENCES [ schema_name . ] referenced_table_name [ ( ref_column ) ] [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ NOT FOR REPLICATION ] | CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } ::= column_name AS computed_column_expression [ PERSISTED [ NOT NULL] ] [ [ CONSTRAINT constraint_name ]{ PRIMARY KEY | UNIQUE }[ CLUSTERED | NONCLUSTERED ][ WITH FILLFACTOR = fillfactor | WITH ( [, ...n ] )]| [ FOREIGN KEY ] REFERENCES ref_table [ ( ref_column ) ] [ ON DELETE { NO ACTION | CASCADE } ] [ ON UPDATE { NO ACTION } ] [ NOT FOR REPLICATION ] | CHECK ( logical_expression ) [ ON { partition_scheme_name ( partition_column_name ) | filegroup | “ DEFAULT “ } ] ] ::= [ CONSTRAINT constraint_name ] { { PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] (column [ ASC | DESC ] [ ,...n ] ) [ WITH FILLFACTOR = fillfactor |WITH ( [, ...n ] ) ][ ON { partition_scheme_name (partition_column_name)| filegroup | “ DEFAULT “ } ] | FOREIGN KEY ( column [ ,...n ] ) REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] [ NOT FOR REPLICATION ] | CHECK [ NOT FOR REPLICATION ] ( logical_expression ) } ::= { PAD_INDEX = { ON | OFF } | FILLFACTOR = fillfactor | IGNORE_DUP_KEY = { ON | OFF } | STATISTICS_NORECOMPUTE = { ON | OFF } | ALLOW_ROW_LOCKS= { ON | OF} | ALLOW_PAGE_LOCKS={ ON | OF} }其中,各个参数的具体说明如下: database_name,是要在其中创建表的数据库名称。

database_name 必须是现有数 据库的名称如果不指定数据库,database_name 默认为当前数据库当前连接 的登录必须在 database_name 所指定的数据库中有关联的现有用户 ID,而该用 户 ID 必须具有创建表的权限 schema_name,是新表所属于的模式名 table_name,是新表的名称表名必须符合标识符规则数据库中的 owner.table_name 组合必须唯一table_name 最多可包含 128 个字符,但本地 临时表的表名(名称前有一个编号符 #)最多只能包含 116 个字符 column_name,是表中的列名列名必须符合标识符规则,并且在表内唯一以 timestamp 数据类型创建的列可以省略 column_name如果不指定 column_name,timestamp 列的名称默认为 timestamp computed_column_expression,是定义计算列值的表达式计算列是物理上并不存 储在表中的虚拟列计算列由同一表中的其它列通过表达式计算得到例如,计 算列可以这样定义:cost AS price * qty。

表达式可以是非计算列的列名、常量、 函数、变量,也可以是用一个或多个运算符连接的上述元素的任意组合表达式 不能为子查询 PERSISTED,定义 SQL Server 物理存储计算值到表中,当计算列依赖的任何其他 列值发生改变的时候,更新值 ON { | filegroup | “DEFAULT “ } ,定义表所在的分区模式或者 文件组如果选择,表是一个分区表如果定义为 filegroup, 表存储在文件组中文件组必须位于数据库中 TEXTIMAGE_ON { filegroup| “DEFAULT “]} ,是表示 text、ntext 和 image 列 存储在指定文件组中的关键字如果表中没有 text、ntext 或 image 。

下载提示
相似文档
正为您匹配相似的精品文档