资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
企管理表格企管理表格数据表的建和管理数据表的建和管理5.1表的创建与修改5.1.1 字段的属性 5.1.2 使用 Enterprise Manager创建表 【例5.1】在demo数据库中创建一个用户信息表,表名为users,表结构如表5.1所示。返回目录字段名数据类型长度允许空Idbigint8Usernamevarchar20Passwordvarchar20Emailvarchar50Resumevarchar1000Phonevarchar205.1.3 5.1.3 使用使用T-SQLT-SQL语句创建表语句创建表其语法格式如下:CREATE TABLE database_name.owner.|owner.table_name /*指定表名*/( /*字段的定义*/|column_name AS puted_column_expression /*定义计算字段*/| /*指定表的约束*/)ONfilegroup|DEFAULT /*指定存储表的文件组*/TEXTIMAGE_ONfilegroup|DEFAULT /*指定存储text、ntext和image类型数据的文件组*/以CREATETABLE语句创建用户信息表users返回目录5.1.4 5.1.4 修改表修改表1使用使用Enterprise ManagerEnterprise Manager修改表修改表2. 2. 使用使用ALTER TABLEALTER TABLE命令修改表命令修改表ALTERTABLE语句的语法格式如下所示 :ALTER TABLE table_name ALTER COLUMN column_namenew_data_type(precision,scale)NULL|NOT NULL|ADD,n |DROPCONSTRATINTconstraint_name|COLUMN,n返回目录table_name:此参数是指定要修改的表的名称。ALTERCOLUMN子句:是指定要进行修改表中的字段的属性。要修改的字段名由column_name给出。new_data_type:为被修改字段的新的数据类型。Precision:此参数是指定其数据类型的有效位数。Scale:此参数是指定数据类型的小数位数。NULL|NOTNULL:此参数是指定其字段是否可接受NULL。ADD子句:向表中增加新字段。新字段的定义方法与CREATETABLE语句中定义字段的方法相同。DROP子句:从表中删除字段或约束。COLUMN参数中指定的是被删除的字段名,constraint_name是被删除的约束名。【例5.2】在用户信息表users中增加一个新字段sex,说明用户的性别,并将username字段的长度由原来的20改为15。返回目录5.1.4 5.1.4 修改表修改表3使用使用DROP TABLEDROP TABLE命令删除表命令删除表ALTERTABLE语句的语法格式如下所示:ALTER TABLE table_nameALTER COLUMN column_namenew_data_type(precision,scale)NULL|NOT NULL|ADD,n|DROPCONSTRATINTconstraint_name|COLUMN,n返回目录3使用DROPTABLE命令删除表DROPTABLE命令可以删除一个表和表中的数据及其与表有关的所有索引、触发器、约束、许可对象(与表相关的视图和存储过程,需要用DROPVIEW和DROPPROCEDURE命令来删除)。DROPTABLE命令的语法如下 DROP TABLE table_name【例5.3】删除demo数据库中的表usersdrop table demo.dbo.users返回目录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:用在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:让所有的字段使用缺省值作为添加数据。返回目录【例5.4】添加数据到用户信息表users中use demoinsert users(id, username, phone)values(20033506, zhang, 13022567899)使用T-SQL的INSERTSELECT语句来添加多条记录。【例5.5】将留言簿数据库表guestbook_admin中的数据添加到guestbook_users用户信息表。 use demoinsert guestbook_usersselect username,Passwordfrom guestbook_adminselect * 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 | 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字段不能被更新。expression:可以是常量、变量、表达式或返回单个值的子查询。DEFAULT:指定使用已经定义的缺省值作为字段的值。NULL:指定使用NULL值作为字段的值。variable:事先定义的变量,用于存储表达式的值。应注意,SETvariable=column=expression将变量和字段设定为与表达式相同的值,它与SETvariable=column,column=expression语句不同,后者将字段的值赋给变量后再将表达式的值赋给字段。【例5.6】将users表内的性别字段内容,都改为“男”use demoUPDATE usersSET sex男where sex女Go【例5.7】修改users表内的所有用户的username后缀为user。Use demoupdate usersset username = username +userGO返回目录5.3 对已有数据进行管理5.3.2 5.3.2 删除数据信息删除数据信息在TSQL语句中,了DELETE和TRUNCATETABLE命令来删除表中的数据信息。DELETE语句的语法如下所示:DELETE FROM table_name WITH ( .n) | view_name | rowset_function_limited FROM ,.n WHERE | CURRENT OF GLOBAL cursor_name | cursor_variable_name OPTION ( ,.n)返回目录其中主要参数说明如下FROM:此参数为可选选项,用于连接DELETE关键字和要删除数据的对象名称。table_name:指定要删除数据的表名。WITH(.n):指定一个或多个目标表允许的表提示。view_name:指定用于删除数据的视图。rowset_function_limited:行集合函数限制。即使用OPENQUERY或OPENROWSET函数。FROM:指定一个额外的FROM子句。WHERE:指定限制数据删除的条件。如果不指定WHERE子句,就会删除表中的所有数据。在WHERE子句中指定两种形式的删除操作:一种是搜索删除,即使用搜索条件来限定要删除的数据行。另一种是定位删除,即使用CURRENTOF子句来指定一个游标,删除操作会在游标的当前位置产生定位删除,比搜索删除更精确。返回目录【例5.8】删除users表中Id为20033506的用户记录。use demoDELETE FROM userswhere Id = 20033506 GO【例5.9】删除users表中所有用户的信息记录。use demoDELETE FROM usersGO 返回目录5.4 表的约束 约束(Constraint)是 Microsoft SQL Server 的自动保持数据库完整性的一种方法。在SQL Server中创建一个表时,有5种约束类型: 主关键字约束(Primary Key Constraint) 外关键字约束(Foreign Key Constraint) 惟一性约束(Unique Constraint) 检查约束(Check Constraint) 缺省约束(default Constraint)1. .主关键字约束主关键字约束也称主键约束,能惟一地指定一行记录。每一个主键字段的定义不允许为NULL属性。一个表的定义只能有一个主键约束。定义主关键字约束的语法如下 CONSTRAINT constraint_name PRIMARY 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 bigint 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.外关键字约束 当一个表中的一个字段或多个字段的组合和其它表中的主关键字定义相同时,就可以将这些字段或字段的组合定义为外关键字。 作用:1.在更新字段值时,其它表中有与之相关联的外关键字约束的表中的外关键字字段也将被相应地做相同的更新.2.插入数据时,如果与之相关联的表的字段中无与插入的外关键字字段值相同的值时,系统会拒绝插入数据.定义外关键字约束的语法如下CONSTRAINT constraint_name FOREIGN KEY column_name1, column_name2,column_name16 REFERENCES ref_table ref_column1,ref_column2, ref_column16 ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION NOT FOR REPLICATION 返回目录各参数说明如下REFERENCES:指定要建立关联的表的信息ref_table:指定要建立关联的表的名称ref_column指定要建立关联的表中的相关字段的名称ONDELETECASCADE|NOACTION:指定在删除表中数据时,对关联表所做的相关操作。ONUPDATECASCADE|NOACTION:指定在更新表中数据时,对关联表所做的相关操作。NOTFORREPLICATION:指定字段的外关键字约束在把从其它表中复制的数据插入到表中时不发生作用。【例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 (userid) ,foreign key(id) references products(id) ON PRIMARYGO返回目录5.4 表的约束3.惟一性约束惟一性约束指定一个或多个字段的组合的值具有惟一性,以防止在字段中输入重复的值。惟一性约束指定的字段可以有NULL属性。由于主关键字值是具有惟一性的,因此主关键字字段不能再设定惟一性约束。惟一性约束最多由16个字段组成,并且一个表最多可有250个唯一性约束。定义惟一性约束的语法如下CONSTRAINT constraint_name UNIQUE CLUSTERED | NONCLUSTERED column_name1, column_name2,column_name16返回目录【例5.13】创建一个用户信息表,其中用户的号码具有惟一性。CREATE TABLE dbo.users ( id bigint IDENTITY (1, 1) NOT NULL , username varchar (20) COLLATE Chinese_PRC_CI_AS NULL , password varchar (20) COLLATE Chinese_PRC_CI_AS NULL , varchar (50) COLLATE Chinese_PRC_CI_AS NULL , resume varchar (1000) COLLATE 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.检查约束检查约束对输入字段或整个表中的值设置检查条件,以限制输入值,保证数据库的数据完整性。可以对每个字段设置符合检查。定义检查约束的语法如下CONSTRAINT constraint_name CHECK NOT FOR REPLICATION (logical_expression)各参数说明如下NOTFORREPLICATION:指定检查约束在把从其它表中复制的数据插入到表中时不发生作用。logical_expression:指定逻辑条件表达式,返回值为TRUE或FALSE。返回目录【例5.14】在例【5.11】中创建的留言信息表,其中留言字数必须不大于1000。CREATE TABLE dbo.guestbook_messages ( id bigint 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 chk_content check (content=1000) ,) ON PRIMARYGO返回目录
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号