電子掌出版社 第5章 SQL Server2000数据库表的创建和管理 5.1表的创建与修改 5.2添加数据信息 5.3对已有数据进行管理 5.4约束
第5章SQL Server 2000数据库表的创建和管理 5.1 表的创建与修改 • 5.2 添加数据信息 • 5.3 对已有数据进行管理 • 5.4 约束
電子掌出版社 5.1表的创建与修改 5.1.1字段的属性 5.1.2使用 Enterprise Manager创建表 【例5.1】在demo数据库中创建一个用户信息表,表名 为 users,表结构如表5.1所示。 字段名数据类型长度允许空 Id bigint Username varchar20 Password varchar 20 Ema varchar 50 Resume varchar 1000 Phone varchar20 返回目录
5.1 表的创建与修改 • 5.1.1 字段的属性 • 5.1.2 使用 Enterprise Manager创建表 • 【例5.1】在demo数据库中创建一个用户信息表,表名 为users,表结构如表5.1所示。 • 返回目录 字段名 数据类型 长度 允许空 Id bigint 8 Username varchar 20 √ Password varchar 20 √ Email varchar 50 √ Resume varchar 1000 √ Phone varchar 20 √
電子掌出版社 5.1.3使用T-SL语句创建表 ·其语法格式如下 CREATE TABLE Database_name. [owner owner ]table_name /*指定表名* ( /*字段的定义* Icolumn_name as computed_column_expression /*K 定义计算字段* X /*指定表的约束* ·[ON{ filegroup DEFaULT}/*指定存储表的文件组* [TEXTIMAGE_ONfilegroup DEFAULT] /*指 定存储text、 ntext和 Iimage类型数据的文件组* 以 CREATE TABLE语句创建用户信息表 users 返回目录
• 5.1.3 使用T-SQL语句创建表 • 其语法格式如下: • CREATE TABLE • [database_name.[owner.]|owner.]table_name /*指定表名*/ • ({ /*字段的定义*/ • |column_name AS computed_column_expression /* 定义计算字段*/ • |} /*指定表的约束*/ • ) • [ON{filegroup|DEFAULT}] /*指定存储表的文件组*/ • [TEXTIMAGE_ON{filegroup|DEFAULT}] /*指 定存储text、ntext和image类型数据的文件组*/ • 以CREATE TABLE语句创建用户信息表users • 返回目录
電子掌出版社 5.1.4修改表 1.使用 Enterprise Manager修改表 2.使用 ALTER TABLE命令修改表 ALTER TABLE语句的语法格式如下所示 ALTER TABLE table name A[ALTER COLUMN column_name rnew_data_typelprecision scaled INULLINOT NULL ADD]s. n] DROPILCONSTRATINT]constraint_name CoLUMn.n 返回目录
5.1.4 修改表 1.使用Enterprise Manager修改表 2. 使用ALTER TABLE命令修改表 ALTER TABLE语句的语法格式如下所示 : ALTER TABLE table_name {[ALTER COLUMN column_name {new_data_type[(precision[,scale])] [NULL|NOT NULL] ]} |ADD{[]}[,…n] |DROP{[CONSTRATINT]constraint_name|COLUMN}[,…n] 返回目录
電子掌出版社 table name:此参数是指定要修改的表的名称 ALTER COLUMN子句:是指定要进行修改表中的字段 的属性。要修改的字段名由 column name给出。 new data type:为被修改字段的新的数据类型 Precision:此参数是指定其数据类型的有效位数。 Scale:此参数是指定数据类型的小数位数 NULLINOT NULL:此参数是指定其字段是否可接受 NULL。 ADD子句:向表中增加新字段。新字段的定义方法与 CREATE TABLE语句中定义字段的方法相同 DROP子句:从表中删除字段或约束。 COLUMN参数 中指定的是被删除的字段名, constraint name是被删除 的约束名 【例52】在用户信息表 users中増加一个新字段sex,说 明用户的性别,并将 username字段的长度由原来的20 改为15。 返回目录
• table_name:此参数是指定要修改的表的名称。 • ALTER COLUMN子句:是指定要进行修改表中的字段 的属性。要修改的字段名由column_name给出。 • new_data_type:为被修改字段的新的数据类型。 • Precision:此参数是指定其数据类型的有效位数。 • Scale:此参数是指定数据类型的小数位数。 • NULL|NOT NULL:此参数是指定其字段是否可接受 NULL。 • ADD子句:向表中增加新字段。新字段的定义方法与 CREATE TABLE语句中定义字段的方法相同。 • DROP子句:从表中删除字段或约束。COLUMN参数 中指定的是被删除的字段名,constraint_name是被删除 的约束名。 • 【例5.2】在用户信息表users中增加一个新字段sex,说 明用户的性别,并将username字段的长度由原来的20 改为15。 • 返回目录
電子掌出版社 ·5.1.4修改表 3.使用 DROP TABLE命令删除表 ALTER TABLE语句的语法格式如下所示: ALTER TABLE table name { ALTER COLUMN column name rnew_data_ type[(precision l scaled INULLINOT NULL ADD[1.n DROPICONSTRATINT]constraint_ name CoLUMns.n] 返回目录
• 5.1.4 修改表 3.使用DROP TABLE命令删除表 • ALTER TABLE语句的语法格式如下所示: • ALTER TABLE table_name • {[ALTER COLUMN column_name • {new_data_type[(precision[,scale])] • [NULL|NOT NULL] • ]} • |ADD{[]}[,…n] • |DROP{[CONSTRATINT]constraint_name|COLUMN}[,…n] • 返回目录
電子掌出版社 ·3.使用 DROP TABLE命令删除表 DROP TABLE命令可以删除一个表和表中的数据及其 与表有关的所有索引、触发器、约束、许可对象(与 表相关的视图和存储过程,需要用DROPⅤIEW和 DROP PROCEDURE命令来删除) DROP TABLE命令的语法如下 DROP TABLE table name 【例53】删除demo数据库中的表 users drop table demo. dbo. users 返回目录
• 3.使用DROP TABLE命令删除表 • DROP TABLE命令可以删除一个表和表中的数据及其 与表有关的所有索引、触发器、约束、许可对象(与 表相关的视图和存储过程,需要用 DROP VIEW 和 DROP PROCEDURE命令来删除)。 • DROP TABLE 命令的语法如下 • DROP TABLE table_name • 【例5.3】 删除demo数据库中的表users • drop table demo.dbo.users • 返回目录
電子掌出版社 52添加数据信息 可以通过企业管理器工具和TSQL语句来进行添加数据信息。 521通过企业管理器添加数据信息 522使用TSQL语句添加表数据 Ⅰ NSERT语句通常有两种形式:一种是添加一条记录,另一种是添 加子查询的结果;后者可以一次添加多条记录。 · INSERT语句语法格式如下所示: INSERT [INTO] f table_name WiTH( [n]) I view_name rowset_ function_limited y ti(column_list)] d VALUES( DEFAULT I NULL expression .n]) derived table execute_statement) I DEFAULT VALUES 返回目录
5.2 添加数据信息 • 可以通过企业管理器工具和T-SQL语句来进行添加数据信息。 • 5.2.1通过企业管理器添加数据信息 • 5.2.2使用T-SQL语句添加表数据 • INSERT语句通常有两种形式:一种是添加一条记录,另一种是添 加子查询的结果;后者可以一次添加多条记录。 • INSERT语句语法格式如下所示: • INSERT [INTO] • { table_name WITH ( [...n]) • | view_name • | rowset_function_limited } • { [(column_list)] • { VALUES ( { DEFAULT | NULL | expression }[,...n] ) • | derived_table • | execute_statement } } • | DEFAULT VALUES • 返回目录
電子掌出版社 下面说明主要参数与子句的含义 INTO:用在 INSER关键字和目标表之间的可选关键字。 table name:指目标数据表的表名。 ·WITH(< table hint_ limi ted〉[..n]):指定一个或多个目标表 允许的表线索,可选 vlew name:指定视图名称。 rowset function limited:行集合函数限制即使用 OPENQUERY 或 OPENROWSET函数 · column_list:指定要添加数据的字段,字段之间用逗号隔开。 · VALUES:指定对应于 column list的值 · DEFAULT指定 SQL Server使用为此字段指定的缺省值 Expression:指定一个常数、变量或表达式,表达式中不能含有 SELECT或 EXECUTE语句。 derived table:指定一个返回数据行的 SELECT语句 · execute_ statemen t:指定一个返回 SELECT或 READTEXT语句的 EXECUTE语句,其返回集必须与 column list中指定的字段一致或 兼容 DEFAULT VALUES:让所有的字段使用缺省值作为添加数据 返回目录
• 下面说明主要参数与子句的含义: • INTO:用在INSERT关键字和目标表之间的可选关键字。 • table_name:指目标数据表的表名。 • WITH ( [...n]):指定一个或多个目标表 允许的表线索,可选。 • view_name:指定视图名称。 • rowset_function_limited:行集合函数限制 即使用 OPENQUERY 或 OPENROWSET函数 • column_list:指定要添加数据的字段,字段之间用逗号隔开。 • VALUES:指定对应于column_list的值 • DEFAULT指定 SQL Server 使用为此字段指定的缺省值 • Expression:指定一个常数、变量或表达式,表达式中不能含有 SELECT或EXECUTE语句。 • derived_table:指定一个返回数据行的SELECT语句。 • execute_statement :指定一个返回SELECT或READTEXT 语句的 EXECUTE语句,其返回集必须与column_list 中指定的字段一致或 兼容。 • DEFAULT VALUES:让所有的字段使用缺省值作为添加数据。 • 返回目录
電子掌出版社 ·【例54】添加数据到用户信息表 users中 use demo insert users (id, username, phone) values(20033506,’ zhang,13022567899) 使用T-SQL的 INSERT. SELECT语句来添加多条记录 【例55】将留言簿数据库表 guestbook admin中的数据 添加到 guestbook users,用户信息表。 use demo insert guestbook users select username, Password from guestbook admin select x from guestbook users 返回目录
• 【例5.4】添加数据到用户信息表users中 use demo • insert users • (id, username, phone) • values(20033506, 'zhang’ , 13022567899) • 使用T-SQL的INSERT…SELECT语句来添加多条记录。 • 【例5.5】将留言簿数据库表guestbook_admin中的数据 添加到guestbook_users用户信息表。 use demo • insert guestbook_users • select username,Password • from guestbook_admin • select * from guestbook_users 返回目录