电子商务数据库实验指导书_第1页
电子商务数据库实验指导书_第2页
电子商务数据库实验指导书_第3页
电子商务数据库实验指导书_第4页
电子商务数据库实验指导书_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、 电子商务数据库实验指导书1、 安装sql serversql server 环境需求 sql server 2000常见的版本 企业版(enterprise edition)标准版(standard edition)个人版(personal edition)开发者版(developer edition) 安装、运行sql server 2000的硬件需求(1)计算机inter及其兼容计算机,pentium 166mz或者更高处理器或dec alpha和其兼容系统。(2)内存(ram)企业版最少64mb内存,其他版本最少需要32mb内存,建议使用更多的内存。(3)硬盘空间完全安装(full)需

2、要180mb的空间,典型安装(typical)需要170mb的空间,最小安装(minimum)需要65mb的空间安装、运行sql server 2000的软件需求 sql server 2000企业版必须运行于安装windows nt server enterprise edition 4.0或者windows2000 advanced server以及更高版本的操作系统下。sql server 2000标准版必须运行于安装windows nt server enterprise edition 4.0、windows nt server 4.0、windows 2000 server以及更高

3、版本的操作系统下。sql server 2000 个人版可在多种操作系统下运行,如可运行于windows 9x, windows nt 4.0或windows 2000的服务器版或工作站版的操作系统下。sql server 2000 开发者版可运行于上述windows 9x以外的所有操作系统下。sql server 2000的安装sql server 2000的安装过程与其它microsoft windows系列产品类似。 用户可根据向导提示,选择需要的选项一步一步地完成。sql server 工具:企业管理器:企业管理器是基于一种新的被称为微软管理控制台(microsoft manageme

4、nt console)的公共服务器管理环境,它是sql server中最重要的一个管理工具。企业管理器不仅能够配置系统环境和管理sql server,而且由于它能够以层叠列表的形式来显示所有的sql server对象,因而所有sql server对象的建立与管理都可以通过它来完成。 利用企业管理器可以完成的操作有 :管理sql server 服务器;建立与管理数据库;建立与管理表、视图、存储过程、触发程序、角色、规则、默认值等数据库对象,以及用户定义的数据类型;备份数据库和事务日志、恢复数据库;复制数据库;设置任务调度;设置警报;提供跨服务器的拖放控制操作;管理用户帐户;建立transact-

5、sql命令语句以及管理和控制sql mail 图:sql server 企业管理器(enterprise manager)界面服务管理器(service manager) sql server 服务管理器是在服务器端实际工作时最有用的实用程序,其界面如图1-21所示。服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务,其提供的服务包括:sql server、sql server agent、msdtc(microsoft distributed transaction coordinator,微软分布式事务协调器)图:sql server 服务管理器(service manager)界

6、面查询分析器(query analyzer) sql server 2000新的图形化查询分析器用于输入和执行transaction-sql语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握sql语言,深入理解sql server的管理工作有很大帮助导入和导出数据(imput and export data) 导入和导出数据采用dtc 导入/导出向导来完成。此向导包含了所有的dtc(data transformation services)工具,提供了在ole db数据源之间复制数据的最简捷的方法创建表和视图主要sql语句:1. create data

7、base database_name with log in “pathname”创建数据库。database_name:数据库名称。“pathname”:事务处理日志文件。如:select dirpath form systables where tabtype = “l”;例:create databse customerdb with log in “/usr/john/log/customer.log”;2. database databse-name exclusive database_name:数据库名称。exclusive:独占状态。存取当前目录和dbpath中指定的目录下的数

8、据库,事务中处理过程中不要使用此语句。例:dtabase customerdb;3. close database 关闭当前数据库。database_name:数据库名称。此语句之后,只有下列语句合法:create database; database; drop databse; rollforward database;删除数据库前必须使用此语句。例:close database; drop database database_name删除指定数据库。database_name:数据库名称。用户是dba或所有表的拥有者;删除所有文件,但不包括数据库目录;不允许删除当前数据库(须先关闭当前数

9、据库);事务中处理过程中不能使用此语句,通过rollback work 也不可将数据库恢复。例:drop databse customerdb; create temp table table-name (column_name datatype not null, )in “pathname”创建表或临时表。table-name :表名称。column_name:字段名称。data-type:字段数据类型。path-name:指定表的存放位置temp用于指定建立临时表;表名要唯一,字段要唯一;有connect权限的用户可建立临时表;创建的表缺省允许connect用户存取,但不可以alter例

10、:create table user( c0 serial not null, c1 char (10),c2 char(2),c3 smallint,c4 decimal(6,3),c5 date) in “usr/john/customer.dbs/user; alter tablealter table table-name add (newcol_name newcol_type before oldcol_name, ) | drop (oldcol_name, )| modify (oldcol_name newcol_type not null, ), 修改表结构。table-n

11、ame:表名称。newcol_name:新字段名称newcol_type:新字段类型oldcol_name:老字段名称可以使用单个或多个add子句、drop子句、modify子句,但某个字句失败,操作即中止;原字段是null,不允许modify为not null,除非所有null字段中均非空,反之可以;alter使用者是表的拥有者或拥有dba权限,或被授权;事务中处理过程中不要使用此语句。例:alter table useradd ( c6 char(20) before c5); rename table oldname to newname修改表名。oldname:原名称。newname:

12、新名称。rename使用者是表的拥有者或拥有dba权限,或被授权;事务中处理过程中不要使用此语句。例:rename user to bbb; drop table table-name删除表。table-name:表名称。删除表意味着删除其中所有数据、各字段上的索引及对表的赋权、视图等;用户不能删除任何系统目录表;语句使用者是表拥有者或拥有dba权限,事务中处理过程中不要使用此语句。 rename column table.oldcolumn, to newcolumn修改字段名。table.oldcolumn:表名及原字段名称newcolumn:新字段名称。语句使用者是表的拥有者或拥有dba

13、权限或有alter权限的用户,事务中处理过程中不要使用此语句。例:rename column user.c6 to c7; create view view-name column-listcreate view view-name column-list as select_statement with check option创建视图。view-name:视图名称。column-list:字段列表。select_statement:select语句。以下语句不使用视图:alter table,drop index,alter index,lock table,create index, r

14、ename table;视图将延用基表的字段名,对表达式等虚字段和多表间字段重名必须指明标识其字段名;若对视图中某些字段命名,则所有字段都必须命名;视图中数据类型延用基表中的数据类型,虚字段起诀于表达式;不能使用order by和union子句;对视图中所有的字段要有select权限;事务中处理过程中使用此语句,即使事务回滚,视图也将建立,不能恢复。例:create view v_user as select * from user where c1 = “b1”; drop view view-name删除视图。view-name:视图名称。用户可删除自己建立的视图;视图的后代视图也被删除;

15、事务中处理中不要使用此语句。例:drop view v_user表数据操作包括数据的插入、修改和删除一、插入数据 在向表中添加数据时应该注意两点:第一是用户权限,只有sysadmin角包成员、数据库和数据库对象所有者及其授权用户才有权限向表中添加数据;第二是数据格式,对于不同的数据类型,插入数据的格式也不一样,应严格遵守它们各自的格式要求。transact-sql语言中用insert语句向表或视图中插入新的数据行。insert语句的语法格式为:insert into table_sourcecolumn_listvalues (default | constant_expression ,n)

16、|default values|select_statement|execute_statement其中,column_list参数为新插入数据行中一列或多列列名列表,它说明insert 语句只为指定列插入数据。在给表或视中部分列插入数据时,必须使用列名列表方式指出这部分列名。其余未指定列的列值要根据它们的默认值和空值属性情况而定,它们有以下几种可能取值:(1)对于timestamp列或具有identity属性列,它们的列值由sql server计算后自动赋值。(2)如果这些列有默认值或关联有默认数据库对象,插入新列时,它们的值为默认值。(3)当这些列没有默认值设置时,但它们允许空值时,该列值

17、为空。(4)当这些列既没有默认值设置,也不允许空值时,sql server在执行insert 语句时将产生错误,导致插入操作失败。当未指定column_list 参数时,为各列所提供的数据顺序应严格按照表中各列的定义顺序,而使用column_list参数则可以调整向表中所插入数据的列顺序,只要values子句所提供的数据顺序与column_list参数中指定的列顺序相同即可。values子句为新插入行中column_list 参数所指定列提供数据,这些数据可以以常量表达式形式提供,或使用default关键字说明向列中插入其默认值。default values说明向表中所有列插入其默认值。对于具

18、有indentity 属性或timestamp 数据类型列,系统将自动插入下一个适当值。对于没有设置默认值的列,如果它们允许空值,sql server将插入null,否则返回一错误消息。select_statement是标准的数据库查询语句,它是sql server为insert语句所提供的又一种数据插入方式。insert语句将select_statement子句所返回的结果集合数据插入到指定表中。查询语句结果集合每行中的数据数量、 数据类型和排列顺序也必须与表中所定义列或 column_list 参数中指定列的数量、数据类型和排列顺序完全相同。sql server为insert语句提供的第四

19、种数据插入方式是通过执行系统存储过程,其数据来自于过程执行后所产生的结果集合。所执行的过程可以为存储过程、系统存储过程或扩展存储过程,它们既可以为本地存储过程,又可以是远程服务器上的存储过程,只要用户具有它们的执行权限即可。有关存储过程请参阅对应的内容。table_source说明insert语句插入数据时所操作的表或视图,其语法格式可简单书写为:table_name as table_alias| view_name as table_aliastable_name和view_name说明被插入数据的表或视图名称,table_alias参数为表或视图设置别名。使用别名有两方面原因:第一、当表

20、或视图名称较长时,使用别名可以简化书写工作;第二,在自连接或子查询中,使用别名可以区别同一个表或视图。在向表中插入数据时, 如果所插入的数据与约束或规则的要求冲突, 或是它们的数据类型不兼容时,将导致insert 语句执行失败。当使用select或execute子句向表中一次插入多行数据时,如果其中有任一行数据有误,它将导致整个插入操作失败,使sql server停止所有数据行的插入操作。例一、使用数值列表方式( 假定 usertable 表中只定义了name、age和sex字段,且name、sex均为char类型,age为int类型)。insert usertablevalues (张三,女

21、,18)例二、使用列名列表方式insert usertable (age,name)values (18,张三)例三、在数值列表中,还可以将变量的值插入到表中。在使用变量为列提供数据时,应保证变量的数据类型与列数据类型相同,或是可以自动将它们转换为相同的数据类型。例如:declare name char(16)set name=张三insert usertablevalues (name,default,20)本例中asp中是这样的:dim namename=张三sqlstr=insert usertable values (&name&,女,20)例四、将select子句的所返回的结果集合插

22、入到表中。例如:insert usertable (name,sex,age)select s+name,sex,agefrom usertablewhere name like 张%二、修改数据 transact-sql中的update语句用于修改表中数据,该语句的语法格式为:update ()set (column_name=expression | default | variable = expression ,nfrom| (select_statement) as table_alias ,m) ,nwhere| current of (global cursor_name | c

23、ursor_variable_name 别看写了一大堆,最常用的只是下列格式:update table_nameset column_name1=variable1,column_name2=variable2where search_conditions其中table_or_view参数指出待修改的表或视图名称,其格式与insert语句中该参数的格式相同。set子句指出表中被修改的列或变量,以及它们的新值。column_name为被修改的列名,variable为一个已经声明的局部变量名称,它们修改后的值由expression表达式提供,或使用default关键字将默认值赋给指定列。from子

24、句引出另一个表,它为update语句的数据修改操作提供条件。where子句中的search_conditions 参数说明update语句的修改条件,它指出表或视图中的哪些行需要修改。省略where子句时,说明对指定的表或视图中的所有行进行修改!where子句中的current of说明在游标的当前位置处执行修改操作,游标由curror_name 或游标变量cursor_variable_name指定。update不能修改具有identity属性列的列值。例一、将usertable表中所有人员的性别改为男update usertableset sex=男例二、将性别为null的所有人员的性别改

25、成男update usertableset sex=男where sex is null例三、将所有姓名为null的人员的姓名改为张三、性别改为女,年龄改为18update usertableset name=张三,sex=女,age=18where name is null三、删除数据 transact-sql中,delete和truncate table语句均可以删除表中的数据。delete语句的语法格式为:deletetable_name | view_namefrom| (select_statement) as table_alias (column_alias ,m),nwhere

26、| current of global cursor_name|cursor_variable_namedelete语句的结构与update语句有些类似,其中也包含from子句和where子句。where子句为数据删除指定条件。不使用where子句时,delete语句将把有或视图中所有的数据删除。from子句是transact-sql在ansi基础上对delete语句的扩展,它指定要连接的表名,提供与相关子查询相似的功能。truncate table语句语法格式为:truncate table table_nametruncate table语句删除指定表中的所有数据行,但表结构及其所有索引继

27、续保留,为该表所定义约束、规则、默认和触发器仍然有效。如果所删除表中包含有identity列,则该列将被复位到其原始基值。使用不带where子句的delete语句也可以删除表中所有行,但它不复位identity列。与delete语句相比,truncate table语句的删除速度更快。因为delete语句在每删除一行时都要把删除操作记录到日志中,而truncate table语句则是通过释放表数据页面的方法来删除表中数据,它只在释放页面做一次事务日志记录。所以使用truncate table语句删除数据后,这些行是不可恢复的,而delete操作则可回滚,能够恢复原来数据。因为truncate

28、table语句不做操作日志,它不能激活触发器,所以truncate table语句不能删除一个被其它表通过foreign key约束所参照的表。例一、使用delete语句删除usertable表中name为张三的数据行delete usertablewhere name=张三例二、下面使用from子句和where子句指定条件,然后从tb_update表中删除数据delete tb_updatefrom tb_constraint as a,tb_update as bwhere =and a.country=chinadelete tb_updatefrom (select * from tb_constraintwhere country=usa) as awhere =tb_触发器定义:何为触发器?在s

温馨提示

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

评论

0/150

提交评论