SQLServer2000数据库表的创建和管理_第1页
SQLServer2000数据库表的创建和管理_第2页
SQLServer2000数据库表的创建和管理_第3页
SQLServer2000数据库表的创建和管理_第4页
SQLServer2000数据库表的创建和管理_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server 2000数据库表的创建和管理 51 表的创建与修改表的创建与修改 52 添加数据信息添加数据信息 53 对已有数据进行管理对已有数据进行管理 54 约束约束5.1 表的创建与修改 5.1.1 字段的属性 5.1.2 使用 Enterprise Manager创建表 【例5.1】在demo数据库中创建一个用户信息表,表名为users,表结构如表5.1所示。 返回目录字段名数据类型长度允许空Idbigint8 Usernamevarchar20Passwordvarchar20Emailvarchar50Resumevarchar1000Phonevarchar20 5.1.

2、3 5.1.3 使用使用T-SQLT-SQL语句创建表语句创建表 其语法格式如下: CREATE TABLE database_name.owner.|owner.table_name /*指定表名*/ ( /*字段的定义*/ |column_name AS computed_column_expression /*定义计算字段*/ | /*指定表的约束*/ ) ONfilegroup|DEFAULT /*指定存储表的文件组*/ TEXTIMAGE_ONfilegroup|DEFAULT /*指定存储text、ntext和image类型数据的文件组*/ 以CREATE TABLE语句创建用户信

3、息表users 返回目录5.1.4 5.1.4 修改表修改表1使用使用Enterprise ManagerEnterprise Manager修改表修改表2. 2. 使用使用ALTER TABLEALTER TABLE命令修改表命令修改表ALTER TABLE语句的语法格式如下所示 :ALTER TABLE table_name ALTER COLUMN column_namenew_data_type(precision,scale) NULL|NOT NULL|ADD,n |DROPCONSTRATINTconstraint_name|COLUMN,n 返回目录 table_name:此参

4、数是指定要修改的表的名称。 ALTER COLUMN子句:是指定要进行修改表中的字段的属性。要修改的字段名由column_name给出。 new_data_type:为被修改字段的新的数据类型。 Precision:此参数是指定其数据类型的有效位数。 Scale:此参数是指定数据类型的小数位数。 NULL|NOT NULL:此参数是指定其字段是否可接受NULL。 ADD子句:向表中增加新字段。新字段的定义方法与CREATE TABLE语句中定义字段的方法相同。 DROP子句:从表中删除字段或约束。COLUMN参数中指定的是被删除的字段名,constraint_name是被删除的约束名。 【例5

5、.2】在用户信息表users中增加一个新字段sex,说明用户的性别,并将username字段的长度由原来的20改为15。 返回目录 5.1.4 5.1.4 修改表修改表 3使用使用DROP TABLEDROP TABLE命令删除表命令删除表 ALTER TABLE语句的语法格式如下所示:ALTER TABLE table_nameALTER COLUMN column_namenew_data_type(precision,scale)NULL|NOT NULL|ADD,n|DROPCONSTRATINTconstraint_name|COLUMN,n 返回目录 3使用DROP TABLE命令

6、删除表 DROP TABLE命令可以删除一个表和表中的数据及其与表有关的所有索引、触发器、约束、许可对象(与表相关的视图和存储过程,需要用 DROP VIEW 和 DROP PROCEDURE命令来删除)。 DROP TABLE 命令的语法如下 DROP TABLE table_name 【例5.3】 删除demo数据库中的表users drop table demo.dbo.users 返回目录5.2 添加数据信息添加数据信息可以通过企业管理器工具和T-SQL语句来进行添加数据信息。5.2.1 通过企业管理器添加数据信息通过企业管理器添加数据信息5.2.2 使用使用T-SQL语句添加表数据语

7、句添加表数据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:用在INSERT关键字和目标表之间的

8、可选关键字。table_name:指目标数据表的表名。WITH ( .n):指定一个或多个目标表允许的表线索,可选。view_name:指定视图名称。rowset_function_limited:行集合函数限制 即使用 OPENQUERY或 OPENROWSET函数column_list:指定要添加数据的字段,字段之间用逗号隔开。VALUES:指定对应于column_list的值DEFAULT指定 SQL Server 使用为此字段指定的缺省值Expression:指定一个常数、变量或表达式,表达式中不能含有SELECT或EXECUTE语句。derived_table:指定一个返回数据行的S

9、ELECT语句。execute_statement:指定一个返回SELECT或READTEXT语句的EXECUTE语句,其返回集必须与column_list 中指定的字段一致或兼容。DEFAULT VALUES:让所有的字段使用缺省值作为添加数据。返回目录 【例5.4】添加数据到用户信息表users中use demo insert users (id, username, phone) values(20033506, zhang,使用T-SQL的INSERTSELECT语句来添加多条记录。 【例5.5】将留言簿数据库表guestbook_admin中的数据添加到gu

10、estbook_users用户信息表。 use demo insert guestbook_users select username,Password from guestbook_admin select * from guestbook_users 返回目录 5.3.15.3.1修改数据信息修改数据信息 其语法如下:UPDATE table_name WITH ( .n) | view_name | rowset_function_limited SET column_name = expression | DEFAULT | NULL | variable = expression |

11、 variable = column = expression ,.n FROM ,.n WHERE | WHERE CURRENT OF GLOBAL cursor_name | cursor_variable_name OPTION ( ,.n )返回目录5.3 对已有数据进行管理其中主要参数说明如下:table_name:此参数是用来指定要进行修改记录的表名。WHERE:此参数是用来设置筛选要进行修改记录的条件式。SET子句:用于指定更新的方法。FROM:此参数是用来指定提供修改作业条件的表名。column_name:指定要更新数据的字段。IDENTITY字段不能被更新。expressi

12、on:可以是常量、变量、表达式或返回单个值的子查询。DEFAULT:指定使用已经定义的缺省值作为字段的值。NULL:指定使用 NULL 值作为字段的值。 variable:事先定义的变量,用于存储表达式的值。应注意,SET variable = column = expression将变量和字段设定为与表达式相同的值,它与 SET variable = column, column = expression语句不同,后者将字段的值赋给变量后再将表达式的值赋给字段。 【例5.6】将users表内的性别字段内容,都改为“男”use demoUPDATE usersSET sex男where sex

13、女Go 【例5.7】修改users表内的所有用户的username后缀为user。 Use demoupdate usersset username = username +userGO 返回目录5.3 对已有数据进行管理 5.3.2 5.3.2 删除数据信息删除数据信息在TSQL语句中,提供了DELETE 和TRUNCATE TABLE命令来删除表中的数据信息。DELETE语句的语法如下所示:DELETE FROM table_name WITH ( .n) | view_name | rowset_function_limited FROM ,.n WHERE | CURRENT OF G

14、LOBAL cursor_name | cursor_variable_name OPTION ( ,.n)返回目录其中主要参数说明如下FROM:此参数为可选选项,用于连接DELETE关键字和要删除数据的对象名称。table_name:指定要删除数据的表名。WITH ( .n):指定一个或多个目标表允许的表提示。view_name:指定用于删除数据的视图。rowset_function_limited:行集合函数限制。即使用OPENQUERY或OPENROWSET 函数。FROM :指定一个额外的 FROM 子句。WHERE:指定限制数据删除的条件。如果不指定WHERE子句,就会删除表中的所有

15、数据。在WHERE子句中指定两种形式的删除操作:一种是搜索删除,即使用搜索条件来限定要删除的数据行。 另一种是定位删除,即使用CURRENT OF子句来指定一个游标,删除操作会在游标的当前位置产生 定位删除,比搜索删除更精确。返回目录【例5.8】删除users表中Id为20033506的用户记录。 use demoDELETE FROM userswhere Id = 20033506 GO 【例5.9】删除users表中所有用户的信息记录。 use demoDELETE FROM usersGO 返回目录5.4 表的约束 约束(Constraint)是 Microsoft SQL Serve

16、r 提供的自动保持数据库完整性的一种方法。在SQL Server中创建一个表时,有5种约束类型: 主关键字约束(Primary Key Constraint) 外关键字约束(Foreign Key Constraint) 惟一性约束(Unique Constraint) 检查约束(Check Constraint) 缺省约束(default Constraint)1. .主关键字约束主关键字约束也称主键约束,能惟一地指定一行记录。每一个主键字段的定义不允许为NULL属性。一个表的定义只能有一个主键约束。定义主关键字约束的语法如下 CONSTRAINT constraint_name PRIMA

17、RY KEY CLUSTERED | NONCLUSTERED column_name1, column_name2,column_name16 返回目录各参数说明如下:constraint_nam:指定约束的名称。CLUSTERED|NONCLUSTERED:指定索引类别,CLUSTERED为缺省值。column_name:指定组成主关键字的字段名,主关键字最多由16个字段组成。【例5.11】在留言簿数据库(库名为demo)中, 创建一个留言信息表guestbook_messages, 以留言编号为主关键字。CREATE TABLE dbo.guestbook_messages ( id b

18、igint IDENTITY (1, 1) NOT NULL , username char (20) COLLATE Chinese_PRC_CI_AS NULL , subject char (100) COLLATE Chinese_PRC_CI_AS NULL , content char (1000) COLLATE Chinese_PRC_CI_AS NULL , date datetime NULL constraint pk_ id primary key (id) ON PRIMARYGO返回目录5.4 表的约束 2.外关键字约束 当一个表中的一个字段或多个字段的组合和其它表

19、中的主关键字定义相同时,就可以将这些字段或字段的组合定义为外关键字。 作用:1.在更新字段值时,其它表中有与之相关联的外关键字约束的表中的外关键字字段也将被相应地做相同的更新. 2.插入数据时,如果与之相关联的表的字段中无与插入的外关键字字段值相同的值时,系统会拒绝插入数据. 定义外关键字约束的语法如下 CONSTRAINT constraint_name F O R E I G N K E Y c o l u m n _ n a m e 1 , column_name2,column_name16 REFERENCES ref_table ref_column1,ref_column2, r

20、ef_column16 ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION NOT FOR REPLICATION 返回目录各参数说明如下 REFERENCES:指定要建立关联的表的信息ref_table:指定要建立关联的表的名称ref_column指定要建立关联的表中的相关字段的名称ON DELETE CASCADE | NO ACTION:指定在删除表中数据时,对关联表所做的相关操作。ON UPDATE CASCADE | NO ACTION:指定在更新表中数据时,对关联表所做的相关操作。 NOT FOR REPLICAT

21、ION:指定字段的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。 【例5.12】 创建一个留言用户信息表guestbook_users,与前面创建的留言信息表相关联。CREATE TABLE dbo.guestbook_users (userid bigint IDENTITY (1, 1) NOT NULL , username char (20) COLLATE Chinese_PRC_CI_AS NULL , password char (20) COLLATE Chinese_PRC_CI_AS NULL constraint pk_userid primary key

22、(userid) ,foreign key(id) references products(id) ON PRIMARYGO返回目录 5.4 表的约束3. 惟一性约束惟一性约束指定一个或多个字段的组合的值具有惟一性,以防止在字段中输入重复的值。惟一性约束指定的字段可以有NULL属性。由于主关键字值是具有惟一性的,因此主关键字字段不能再设定惟一性约束。惟一性约束最多由16个字段组成,并且一个表最多可有250个唯一性约束。定义惟一性约束的语法如下 CONSTRAINT constraint_name UNIQUE CLUSTERED | NONCLUSTERED column_name1, col

23、umn_name2,column_name16 返回目录【例5.13】创建一个用户信息表,其中用户的手机号码具有惟一性。CREATE TABLE dbo.users ( id bigint IDENTITY (1, 1) NOT NULL , u s e r n a m e v a r c h a r ( 2 0 ) C O L L A T E Chinese_PRC_CI_AS NULL , p a s s w o r d v a r c h a r ( 2 0 ) C O L L A T E Chinese_PRC_CI_AS NULL , email varchar (50) COLLA

24、TE Chinese_PRC_CI_AS NULL , r e s u m e v a r c h a r ( 1 0 0 0 ) C O L L A T E Chinese_PRC_CI_AS NULL , phone varchar (20) COLLATE Chinese_PRC_CI_AS NULL constraint pk_id primary key (id),constraint uk_phone unique (phone) ON PRIMARYGO返回目录4.检查约束检查约束对输入字段或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。 可以对每个字段设置符合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论