1、 天津市神州商龙科技有限公司 常见问题答疑 常见问题答疑 之 数 据 库 部 分 目 录 第一部分 数据库安装与设置 3 1.1问:windows xp操作系统应该安装什么版本的sql server 2000? 3 1.2问:sql server 2000安装时选择哪种身份验证模式? 3 1.3问:如何用sql 语句清除Microsoft sql server 2000数据库的日志? 3 1.4问:如何修改数据库的空间大小? 3 1.5问:客户端计算机是否需要安装Sql serve
2、r及安装sql server 2000 sp4补丁? 4 1.6问:在Sql server 2000如何备份数据库? 4 1.7问:在Sql server 2000如何还原数据库? 6 1.8问:在Sql server 2000如何附加数据库? 7 1.9问:在Sql server 2000如何收缩数据库? 8 1.10问:在Sql server 2000如何分离数据库? 9 1.11问:在Sql server 2000数据库命名有何要求? 9 第二部分 常用sql 语法与示例 10 2.1 查询语句语法 10 2.1.1示例: 10 2.2 更新语句语法 10 2.2.
3、1示例 10 2.3清除表语法 11 2.3.1示例 11 2.4删除表语法 11 2.4.1示例 11 2.5插入语法 11 2.5.1示例 11 2.6同库或非同库之间表与表之间数据导入 11 2.6.1示例 11 第三部分 数据库工具 11 3.1 数据库--置疑sql处理办法 12 3.2 修复坏的数据库sql处理办法 12 第一部分 数据库安装与设置 1.1问:windows xp操作系统应该安装什么版本的sql server 2000? 答:windows xp操作系统应该安装sql server 2000 personal个人版本。如果操作系统为2
4、000或2003时可安装sql server 2000标准版或个业版均可。 1.2问:sql server 2000安装时选择哪种身份验证模式? 答:身份验证模式为“混合模式”,密码为空。(建议不设密码) 安装时最好不要设置“SA”的密码,否则可能导制软件连不上数据库 1.3问:如何用sql 语句清除Microsoft sql server 2000数据库的日志? 答:方法是打开 sql server的"查询分析器"功能执行下面的sql 例如:清除数据库名tcgem的日志 dump transaction tcgem with no_log 1.4问:如何修改数据库的空间大
5、小? 答:例如:修改tcgem数据库为例,操作方法:打开Sql 2000企业管理器,选择tcgem数据库点右键“属性”,在“数据库文件和事务日志”两个页面中进行修改空间大小(修改方法如下图所示)。 1.5问:客户端计算机是否需要安装Sql server及安装sql server 2000 sp4补丁? 答:客户端的计算机只需要安装sql server 2000的客户端工具组件即可。 并且需要安装sql server 2000 sp4补丁 1.6问:在Sql server 2000如何备份数据库? 答:例如:备份tcgem数据库为例,操作方法:打开Sql 2000
6、企业管理器,选择tcgem数据库点右键“所有任务——备份数据库”,操作方法:如下图一、二、三,备份成功后,可以到指定的目录下找备份成功的文件名。 (图一) (图二) (图三) 1.7问:在Sql server 2000如何还原数据库? 答:例如:还原tcgem数据库为例,操作方法:打开Sql 2000企业管理器,选择tcgem数据库点右键“所有任务——还原数据库”,操作方法:如下图一、二、三、四。 (图一) (图二) (图三) (图四) 1.8问:在Sql server 2000如何附加数据库? 答:例如:附加tcgem数据库名为例:
7、图一) (图二) 1.9问:在Sql server 2000如何收缩数据库? 答:如下图所示,如收缩tcgem数据库: (图一) (图二,收缩数据文件) (图二,收缩事务日文件) 1.10问:在Sql server 2000如何分离数据库? 答:例如:分离tcgem数据库为例,操作方法:打开Sql 2000企业管理器,选择tcgem数据库点右键“所有任务——分离数据库”,点确定即可把数据为分离。注:分离完的数据库,只能用附加数据库的方法,恢复原数据库名。 1.11问:在Sql server 2000数据库命名有何要求? 答:(1)用户自行建立数据库名,不可
8、与系统数据库名相同(如:不可用master等); (2)不可以用“阿拉伯数字”或 “.”建立用户数据库名(不能识别数据库名称 如:123,tcgem5.6); (3)可以用英文字母+阿拉伯数字命明用户数据库名称(如:tcgem56, tcgem_56 均可)。 第二部分 常用sql 语法与示例 2.1 查询语句语法 select 字段名1,字段名2,……字段名n from 表名 (条件[where ]) 2.1.1示例: ---查询员工档案表(ygda)或菜品档案表(cp)中所有记录 Select * from ygda Sel
9、ect * from cp ---查询员工档案表(ygda)中ygbh=’001’记录 Select * from ygda where ygbh='001' ---模糊查询,如查询菜品名称中包含’ 果汁’ select * from cp where cpmc like '%果汁%' --多表关联查询1,如查询出营业流水号=’0101000050’的所有销售菜品的记录.,菜品明细记录存放于pjnr表中,可以用下面两条sql中任意一条查询均可 select * from pjnr where fwls in(select fwls from yypj where yyls
10、'0101000050') select * from pjnr ,yypj where pjnr.fwls=yypj.fwls and yypj.yyls='0101000050' --多表关联查询2,例如查询相同时间段营业报表和品项销售报表中,统计的数据不一样,两个报表中统计的有差异流水号。 --例如查询2008-9-18 10:0:0.000 10:0:0.000指企业信息中第一个市别时间 select * from yyls where jssj>='2008-9-18 10:0:0.000' and jssj<'2008-9-18 10:0:0.000' and y
11、yls not in (select DISTINCT(yyls) from yypj where rqsj>='2008-9-18 10:0:0.000' and rqsj<'2008-9-18 10:0:0.000') --多表关联查询3,例如查询相同时间段营业报表和品项销售报表中分别统计的流水号,可以比对下面两条sql查出的结果核对哪个流水号为另一表中少的。 select * from yyls where yyls.jssj >= '2008-9-18 10:0:0.000' and yyls.jssj < '2008-9-19 10:0:0.000' select D
12、ISTINCT(yyls) from yypj where rqsj>='2008-09-18 10:00:00.000' and rqsj<'2008-09-19 10:00:00.000' 2.2 更新语句语法 update 表名 set 字段名1=值1,set字段名2=值2,…set字段名n=值2 (条件[where ]) 2.2.1示例 (1)更新员工档案表(ygda)和菜品档案(cp)表中scbz字段中值,scbz=0为可用,scbz=1为删除 Update ygda set scbz=0 Update cp set scbz=0 (2)把菜品表
13、cp)中删除的记录,置为可用,scbz=0为可用,scbz=1为删除 Update cp set scbz=0 (3)把所有菜品表(cp)中cpbh原来3位编号,前加上一个’0’,下面两条sql均可 Update cp set cpbh='0'+cpbh Update cp set cpbh='0'+substring(cpbh,1,3) (4)把所有菜品表(cp)中cpbh原来10位编号,缩短至6位编号 update cp set cpbh = substring(cpbh,5,6) ---注释:把菜品编号截取为6位长度, sub
14、string(cpbh,5,6)中5代表从第5位开始截取,取的长度为6位 2.3清除表语法 delete from表名 (条件[where ]) 2.3.1示例 ---清除系统日志xtrz表中所有记录 Delete from xtrz ---清除系统日志xtrz表’2008年1月1日之前的数据 Delete from xtrz where sj<'2008-01-01 01:01:01.360' 2.4删除表语法 drop table 表名 2.4.1示例 ---删除temptable表 Drop table temptable 注:无特殊情况时
15、不要用删除表语句 2.5插入语法 INSERT INTO ygda (字段名1, 字段名2,……. 字段名n) VALUES (插入值1, 插入值2,….. 插入值n) 2.5.1示例 ---插入到ygda表中编号='988', 姓名='李小丽'个员工记录 INSERT INTO ygda ( ygbh, ygxm, xb, dz, dh, sfzh, sr, zw, bm, ygzj, czmm, scbz, ygkh ) VALUES ( '988', '李小丽', '女', '南开区', '15925113226', '120924197808092121', '1978-8
16、9 0:0:0.000', '收银员', '收银台', 95, '', 0, '988' ) 2.6同库或非同库之间表与表之间数据导入 2.6.1示例 --同库(如tcgem)从一个表(ygda_temp)导入到另一个表中记录(ygda) insert into ygda select * from ygda_temp --把tcgembak数据库中员工档案导入到tcgem数据库的员工档案(ygda)表中 insert into tcgem.dbo.ygda select * from tcgembak.dbo.ygda 2.7在表中增
17、加字段 ALTER TABLE 表名 ADD 字段名 类型 null/not null --厨房传菜增加拼菜员主键 Alter table pjnr add pcyzj numeric(8,0) null 第三部分 数据库工具 3.1 数据库--置疑sql处理办法 metadb.mdf指被置疑的mdf备份,操作步骤: (1)建一个新库名为:newdb (2)停掉数据库服务。删除新库的log文件,将metadb.mdf覆盖newdb.mdf (3)启动数据库服务器。数据库newdb的状态为“置疑” (4)打开sql server 查询分析器,逐条执行下面sql
18、 允许对系统目录直接修改 use master go sp_configure 'allow updates',1 go reconfigure with override go update sysdatabases set status=-32768 where dbid=DB_ID('newdb') (5)重建log dbcc rebuild_log('newdb','C:\Program Files\Microsoft SQL Server\MSSQL\Data\newdb_log.ldf') (6)dbcc检查 dbcc checkdb('newdb')
19、7)设置数据库为正常状态 sp_dboption 'newdb','dbo use only','false' (8)不允许对系统目录直接修改 sp_configure 'allow updates',0 go reconfigure with override go 3.2 修复坏的数据库sql处理办法 ----退出所有软件模块及消息服务程序 ----先把sql server的服务停止,然后再重新启动,最后只打开查询分析器 ----把把下面的sql 语句逐句执行,执行完一句返回结果后,再执行一下句,不要全部执行, use master go --------下面
20、的第一个参数都是有问题数据库的名称(如:餐饮数据库名为tcgem) --------设置为单用户模式 sp_dboption 'tcgem','single user','true' go -------------------------------------- DBCC CHECKDB('tcgem',REPAIR_ALLOW_DATA_LOSS) go --------设置回多用户模式 sp_dboption 'tcgem','single user','false' go 网址: 传真:022-23708900 总机电话:022-23708800 技术支持分机号码:800,801,802,807,809,815,812,813 Email:shanglong@ 第 12 页 共 12 页
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818