文档库 最新最全的文档下载
当前位置:文档库 › MSSQL数据库各种语句学习资料教学内容

MSSQL数据库各种语句学习资料教学内容

MSSQL数据库各种语句学习资料教学内容
MSSQL数据库各种语句学习资料教学内容

M S S Q L数据库各种语句学习资料

数据库(catalog)

表(table)

列(column)或叫字段(field)

数据类型(datatype)

记录(record)或叫行(row)

主键(PrimaryKey)

索引(index)

表关联:这种将两张表通过字段关联起来的方式就被称为“表关联”,关联到其他表主键的字段被称为“外键”

例子:select * from employees where age<18

delete from employees where position=‘名誉总裁’

create table T_person (FName Varchar(20),FAge int,FRemark

Varchar(20),primarykey(FName));

create table T_Debt(FNumber Varchar(20),FAmount Numeric(10,2) NOT

NULL,FPerson varchar(20),PrimaryKey

(FNumber),foreignkey(FPerson) references T_Person(FName));

insert into T_person(FName,FAge,FRemark)values('tom',18,'USA') 注:在插入数据的时候某些字段没有值,我们可以忽略这些

字段,例子:insert into T_Person(FAge,FName) values(22,'lxf')

说明:Numeric(10,2) 指定字段是数字型,长度为10位,小数为两位

foreignkey(FPerson)外部约束主键为FPerson

说明:增加一个列

Alter table tabname add columnname type

例子:alter table dbo.T_Person add Fcity varchar(20)

*非空约束对数据插入或更新的影响

如果对一个字段添加了非空约束,那么我们是不能向这个字段中插入或更新为NULL值的。

*主键对数据插入或更新的影响

主键是在同一张表中必须是唯一的,如果在进行数据插入或更新的时候指定的主键与表中已有的数据重复的话则会导致违反主键

约束的异常。

*外键对数据插入或更新的影响

外键是指向另一个表中已有的数据的约束,因此外键值必须是在目标表中存在的。如果插入或更新的数据在目标表中不存在的话

则会导致违反外键约束异常。

**UPDATE

update T_Person

set FRemark='sonin'

update T_Person

set FAge=12

where FName='tom'

update T_Person

set FAge=22

where FName='jim' or FName='LXF'

**DELETE

delete from T_Person;删除T_Person表中的所有数据

drop table T_Person;删除表中的所有数据,及把表结构全部删除。

delete from T_Person where FAge>20 or FRemark='Mars'

********数据检索

select * from T_Employee

select FNumber,FName,FAge,FSalary from T_Employee

select FNumber as 编号,FName as 姓名,FAge as 年龄 from T_Employee (其中的‘as’不是必须的,是可以省略的)

select * from T_Employee

where FSalary<5000 or FAge>25;

几种聚合函数:

MAX 计算字段最大值

MIN 计算字段最小值

AVG 计算字段平均值

SUM 计算字段合计值

COUNT 统计数据条数

select MAX(FSalary) from T_Employee

where FAge>25 注:查询年龄大于25岁的员工的最高工资。

select MAX(FSalary) as MAX_SALARY from T_Employee

where FAge>25

select AVG(FAge) from T_Employee

where FSalary>3800 注:统计工资大于3800元的员工的平均年龄。

select SUM(FSalary) from T_Employee; 注:统计应支出工资的总额。

select MIN(FSalary),MAX(FSalary) from T_Employee; 注:多次使用聚合函数,统计公司的最低工资和最高工资。

select COUNT(*),COUNT(FNumber) from T_Employee; 注:COUNT(*)统计的是结果集的总条数,而COUNT(FNumber)统计的则是除了

结果集中FNumber字段不为空值(也就是不等于NULL)的记录的总条数。

*****排序

select * from T_Employee

order by FAge ASC 注:按升序排列, ASC是可以省略的

select * from T_Employee

order by FAge DESC 注:按降序排列,

select * from T_Employee

order by FAge DESC, FSalary DESC; 注:order by 允许指定多个排序列,首先按第一个排序,分不出的按第二个排序。

**** select * from T_Employee

where FAge>23

order by FAge DESC,FSalary DESC;注:ORDER BY 子句要放到where子句后,不能颠倒它们的顺序。

*******通配符过滤 SQL中的通配符过滤使用LIKE关键字。注:使用通配符时,数据库要对全表进行扫描,所以速度非常慢,不要

过分使用通配符。

1.单字符匹配

select * from T_Employee

where FName LIKE '_erry'; 注:以任意字符开头,剩余部分为“erry”。

select * from T_Employee

where FName LIKE '__n_' ; 注:检索长度为4,第三个字符为“n”,其他字符为任意字符的姓名。

2.多字符匹配

select * from T_Employee

where FName LIKE 'T%' ; 注:检索以“T”开头,长度任意,

select * from T_Employee

where FName LIKE '%n%' ; 注:检索姓名中包含字母“n”的员工信息

select * from T_Employee

where FName LIKE '%n_' ; 注:检索最后一个字符为任意字符,倒数第二个字符为“n”长度任意的字符串。

select * from T_Employee

where FName LIKE '[SJ]%' ;注:检索的是以“S”或者“J”开头,长度任意的数据

select * from T_Employee

where FName LIKE '[^SJ]%' ;注:否定符“^”是来对集合取反,即检索的是不以

“S”或者“J”开头,长度任意的数据

******空值检测

select * from T_Employee

where FName IS NULL ; 注:不能使用普通的等于运算符进行判断,而要使用

IS NULL关键字。

select * from T_Employee

where FName IS NOT NULL ; 注:检索FName字段不为空的数据。

select * from T_Employee

where FName IS NOT NULL AND FSalary<5000; 注:查询所有姓名已知且工

资小于5000的员工的信息。

*****反义运算符

select * from T_Employee

where FAge!=22 AND FSalary!<2000 ;注:检索所有年龄不等于22岁并且工资

不小于2000员的信息。

<> 不等于

<= 不大于

>= 不小于

NOT 运算符用来将一个表达式的值取反

select * from T_Employee

where NOT(FAge=22) AND NOT(FSalary<2000) ;注:检索所有年龄不等于22岁并且工资不小于2000元的信息。

“!”运算符只能运行MSSQL和DB2两种数据库上,统一运算符可以使用在所有数据库中,建议采用NOT运算符,能比较容易的表达要

实现的需求。

*****多值检测

select FAge,FNumber,FName from T_Employee

where FAge IN(23,25,28) ; 注:为了解决进行多个离散值的匹配问题,SQL提供了IN语句。检索年龄为23,25,28的数据。

select * from T_Employee

where FAge between 23 and 60 ;注:检索年龄在23到60岁之间的数据,包括23和60。

select * from T_Employee

where (FSalary between 2000 and 3000)

OR (FSalary between 5000 and 8000) ; 注:检索所有工资介于2000元到3000元之间以及5000元到8000元的员工信息。

*******数据分组

ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20);

ALTER TABLE T_Employee ADD FDepartment VARCHAR (20); 注:ALTER ADD 通过更改、添加、除去列和约束,或者通过启用

或禁用约束和触发器来更改表的定义。

**GROUP BY 子句进行分组

select FAge from T_Employee

where FSubCompany='Beijing'

group by FAge ; 注:采用分组以后的查询结果是以分组形式提供的。

select FSubCompany,FDepartment from T_Employee

group by FSubCompany,FDepartment ; 注:先根据FSubCompany,再在每个小组内根据FDepartment进行二次分组,查询数据

select FAge,COUNT(*) AS CountOfThisAge from T_Employee

GROUP BY FAge ; 注:检索每个年龄段的员工的人数

select FSubCompany,FAge,COUNT(*) AS CountOfThisSubCompAge from

T_Employee

group by FSubCompany,FAge

order by FSubCompany ; 注:统计每个公司的年龄段的人数。****“COUNT(*)”对每个分组统计总数,这样就可以统计出每个公

司每个年龄段的员工的人数了。

select FAge,COUNT(*) AS CountOfThisAge from T_Employee

group by FAge

HAVING COUNT(*) IN (1,3) ; 注:HAVING语句和WHERE几乎是一样的,不过使用WHERE的时候GROUP BY子句要位于WHERE子句之后,

而HAVING时,要在之前。

****在HAVING语句中不能包含未分组的列名。

例:select FAge,COUNT(*) AS CountOfThisAge from T_Employee

where FName IS NOT NULL

GROUP BY FAge ;

*****抑制数据重复

distinct 关键字是用来进行重复数据抑制的最简单的功能。

select DISTINCT FDepartment from T_Employee ; 注:DISTINCT是对整个结果集进行数据重复抑制的,而不是针对每个列。

计算字段

******常量字段

select 'CowNew集团',918000000,FName,FAge,FSubCompany from T_Employee ******字段间的计算

select FNumber,FName,FAge*FSalary AS '工资指数' from T_Employee ;

select 125+521,FNumber,FName,FSalary/(FAge-21) AS FHappyIndex from

T_Employee

select * from T_Employee

where FSalary/(FAge-21)>1000 ;

*****数据处理函数

LEN 计算字符串长度的函数

select FName,LEN(FName) AS namelength from T_Employee

where FName IS NOT NULL

SUBSTRING 取得字符串的子串的函数,接受三个参数,第一个为要取的主字符串,第二个为子串的起始位置,第三个为子串的长度

select FName,SUBSTRING(FName,2,3) from T_Employee

where FName IS NOT NULL

SIN 计算正弦函数值的函数

ABS 计算绝对值的函数

****多个函数可以嵌套使用

select FName,FAge,SIN(FAge),ABS(SIN(FAge)) from T_Employee

****字符串的拼接

select '工号为'+FNumber+'的员工姓名为'+FName from T_Employee

where FName IS NOT NULL

select * from T_Employee

where FSalary BETWEEN FAge*1.5+2000 AND FAge*1.8+5000 ;

注:检索上限为年龄的1.8倍加上5000,下限为年龄的1.5倍加上2000元的员工的信息。

select MAX(FSalary/FAge) AS MAXVALUE,MIN(FSalary/FAge) AS MINVALUE from T_Employee ;查询工资年龄指数的最高和最低值

***年龄全部加1

UPDATE T_Employee SET FAge=FAge+1 ;

*****不从实体表中取得数据

select 1 ;

select LEN('abc')

select 1,2,3,'a','b','c'

****联合结果集

select FNumber,FName,FAge from T_Employee

where FAge<30

UNION

select FldCardNumber,FName,FAge from T_TempEmployee

where FAge>40

UNION

select FldCardNumber,FName,FAge from T_TempEmployee

where FAge<30 ;

**注:联合结果集不必受被联合的多个结果集之间的关系限制,但还是要遵守两个原则:一是每个结果集必须有相同的列数,二是

每个结果集的列必须类型相容。(如果需要将未知列补足为一个默认值,那么可以使用常量字段)

在默认情况下,UNION运算符合并了两个查询结果集,其中完全重复的数据行被合并为了一条。

如果需要在联合结果集中返回所有的记录而不管它们是否唯一,则需要在UNION运算符后使用ALL操作符,

例子:select FName,FAge from T_Employee

UNION ALL

select FName,FAge from T_Employee

****联合结果集应用举例

*员工年龄报表

select '正式员工最高年龄',MAX(FAge) from T_Employee

UNION

select '正式员工最低年龄',MIN(FAge) from T_employee

UNION

select '临时工最高年龄',MAX(FAge) from T_TempEmployee

UNION

selcet '临时工最低年龄',MIN(FAge) from T_TempEmployee

*正式员工工资表表

要求查询每位正式员工的信息,包括工号、工资,并且在最后一行加上所有员工工资额合计。

select FNumber,FSalary from T_Employee

UNION

select '工资合计',SUM(FSalary) from T_Employee

*打印5以内自然数的平方

select 1,1*1

UNION

select 2,2*2

UNION

select 3,3*3

UNION

select 4,4*4

UNION

select 5,5*5

***列出员工姓名

要求列出公司中所有员工(包括临时工)的姓名,将重复的姓名过滤掉select FName from T_Employee

UNION

select FName from T_TempEmployee

***分别列出正式员工和临时工的姓名

要求分别列出正式员工和临时工的姓名,要保留重复的姓名

select '以下是正式的员工的姓名'

UNION ALL

select FName from T_Employee

UNION ALL

select '以下是临时工的姓名'

UNION ALL

select FName from T_TempEmployee

函数的应用

****数学函数

(空,以后补齐)

****字符串函数

(空,以后补齐)

****日期时间函数

日期类型:年-月-日 Date来表示日期类型

时间类型:小时-分-秒 Time来表示时间类型

日期时间类型:年-月-日小时-分-秒 DateTime来表示日期时间类型

时间戳类型:比日期时间类型精度要求还要高的日期时间信息, TimeStamp 来表示日期时间戳类型

***在MYSQL MSSQL DB2中可以用字符串来表示日期时间类型,数据库系统会自动在内部将它们转换为日期时间类型。

在MSSQL中,GETDATE() 返回的是包括了日期、时间的时间戳信息,

CONVERT (VARCHAR(50),GETDATE(),101) ,可以得到日期时间值的日期部分01/24/2008

CONVERT(VARCHAR(50),GETDATE(),108) ,可以得到日期时间值的时间部分21:37:19

******日期增减

在MSSQL中提供了DATEADD()函数,进行日期时间的加法运算,格式如:DATEADD(datepart,number,date)

其中date为待计算的日期,datepart指定要返回心智的日期组成部分,MSSQL 2005中可识别的日期部分及其缩写:

取值说明

year 年份

quarter 季度

month 月份

dayofyear 当年度的第几天

day 日

week 当年度的第几周

weekday 星期几

hour 小时

minute 分

second 秒

millisecond 毫秒

例子:select FBirthDay,DATEADD(YEAR,3,FBirthDay) AS threeyrs, DATEADD(QUARTER,20,FBirthDay) AS ttqutrs,

DATEADD(MONTH,68,FBirthDay) AS sxtmonths,

DATEADD(WEEK,-1000,FBirthDay) AS thweeik

from T_Person ;

注:计算每个人出生后3年、20个季度、68个月以及1000个周前的日期。*****计算日期差额

在MSSQL中提供了DATEDIFF()函数用于计算两个日期之间的差额,

格式:DATEDIFF(datepart,startdate,enddate) 其中参数datepart为计算差额时使用的单位,startdate为起始日期,enddate

为结束日期。

例子:select FRegDay,FBirthDay,DATEDIFF(WEEK,FBirthDay,FRegDay) from T_Person ;注:计算注册日期和出生日期之间的周数

差额。

*****计算一个日期是星期几

在MSSQL中提供了DATENAME函数,这个函数可以返回一个日期的特定部分,并且尽量用名称来表述这个特定部分,

格式:DATENAME(datepart,date) ;其中参数date为待计算日期,date参数也可以是日期格式的字符串;参数datepart指定要返

回的日期部分的参数。

例子:select FBirthDay,DATENAME(Weekday,FBirhtDay),

FRegDay,DATENAME(DW,FRegDay)

from T_Person

注:计算出生日期和注册日期各是星期几;

*****取得日期的指定部分,比如检索本年的每个月的16日的销售量

在MSSQL中使用前面介绍了的DATENAME()函数,使用它可以提取日期的任意部分

例子:select FBirthDay,

DATENAME(year,FBirthDay) as y,

DATENAME(dayofyear,FBirthDay) as d,

DATENAME(week,FBirthDay) as u

from T_Person; 注:提取每个人员的出生年份、出生是是当年的第几天、出生时是当年的第几周;

在MSSQL中还提供了一个DATEPART()函数,这个函数也可以用来返回一个日期的特定部分,

格式:DATEPART(datepart,date) 其中参数date为待计算日期,date参数也可以是日期格式的字符串,参数datepart指定要返

回的日期部分参数,

显然使用dayofyear做为datepart参数调用DATEPART()函数就可以得到一个日期是当年的第几天;使用year做为datepart参数调用

DATEPART()函数就可以得到一个日期的年份;以此类推。。。

例子:select FBirthDay,DATEPART(Dayofyear,FBirthDay),

FRegDay,DATEPART(YEAR,FRegDay)

from T_Person ; 计算出生日期是当年第几天以及注册日期中的年份部分;DATEPART() 和 DATENAME() 的不同:DATEPART()函数返回值是数字,DATENAME()函数则会将尽可能的以名称的方式做为返回值。

******其他函数

****类型转换

在MSSQL中提供了CAST()和CONVERT()两个函数进行类型转换,CAST()是符合ANSI SQL99的函数,CONVERT()是符合ODBC标准的函数,

格式:CAST(expression AS data_type)

CONVERT(data_type,expression) 参数expression为待进行类型转换的表达式,而type为转换的目标类型,

例子:select

CAST('-30' AS INTEGER) AS i,

CONVERT(DECIMAL,'3.1415926') AS d,

CONVERT(DATETIME,'2008-08-08 08:09:10') AS dt

注:以整形、数值、日期时间类型为目标类型的数据转换

例子2:select FIdNumber,

RIGHT(FIdNumber,3) AS 后三位,

CAST(RIGHT(FIdNumber,3) AS INTEGER) AS 后三位的整数形式

CAST(RIGHT(FIdNumber,3) AS INTEGER)+1 AS 后三位数加1,

CONVERT(INTEGER,RIGHT(FIdNumber,3))/2 AS 后三位除以2

from T_Person

*****空值处理

COALESCE()函数,这个函数主要用来进行空值处理,

COALESCE(expression,value1,value...,valuen) 注:第一个参数expression为待检测的表达式,而其后的参数个数不定。

COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式,

如果expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返回value1;否则判断value2是

SQL Server数据库远程备份和还原

远程备份SQL SERVER数据库 我们使用本地的SQL 企业管理器来实现远程备份SQL SERVER数据库。步骤如下:1,首先打开企业管理器-------展开MICROSOFT SQL SERVERS------在SQL SERVER组上右键-------选择“新建SQL SERVER 注册”如图所示: 2,打开向导后点击下一步,进入添加服务器,在可用的服务器里输入你要远程备份数据库的服务器IP ,点击添加以后,在添加的服务器栏目里就会出现刚才你所添加的服务器IP。点击下一步。如图所示:

3,在这一步,选择第二项,使用SQL 身份验证。如图所示: 4,输入正确的SQL 管理员帐号和密码,点击确定以后,就将远程的服务器SQL数据库显示在本地了!如图所示:

5,展开远程服务器的数据库。按照下图所示,就可以在本地进行远程SQL SERVER的数据库备份了。

=============================================== 说明: 一、当我们真正使用SQL SERVER的超级用户进行远程备份数据库的时候,我们就能感受到这个帐号不仅带来了方便,更给服务器安全带来了不可忽视的威胁,所以这个帐号一定要和系统管理员密码那样设置的够复杂! 二、经我个人测试,发现无法用SQL SERVER 2000 来远程链接 SQL SERVER 2005. 三、以上测试均在:WINDOWS 2003 SQL SERVER2000下测试成功!

SQL Server 2000 数据库还原备份文件 1、打开Sql server 2000数据库,在数据库标签上有右键选择-》所有任务-》还原数据库 2、弹出还原数据库对话框 (1)在“常规”选项卡中的“还原为数据库(R):”后面的文本框中填写要还原后数据库的名称 (2)在“常规”选项卡中的“还原”后面的单选按钮中选择“从设备(M)”(3)在“常规”选项卡中的“参数”的“设备(V)”中点击按钮“选择设备”(4)在弹出的对话框中选择“文件名(F)”的单选按钮,在下面的选择框中选择需要还原的文件 (5)点击确定

Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle数据库日常维护 【版本整理日期:2011/02/26 】 版本整理人:1634068400@https://www.wendangku.net/doc/b910400996.html, 本文档包含以下内容: 1.Oracle数据库日常维护 2.Oracle DBA 常用管理脚本 3.Oracle DB 常用SQL 语句

/******************************************************** https://www.wendangku.net/doc/b910400996.html,(若跳转不成功,请复制到浏览器或联系Q) https://www.wendangku.net/doc/b910400996.html,/item.htm?id=7437120468Metalink Sharing ********************************************************/

在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: l数据库的启动、关闭,启动时的非缺省参数; l数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; l对数据库进行的某些操作,如创建或删除表空间、增加数据文件; l数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA -600)

DBA 应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题 处理 启动参数不对 检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换 如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点 或归档操作的效率; 有人未经授权删除了表空间 检查数据库的安全问题,是否密码太简 单;如有必要,撤消某些用户的系统权 限 出现坏块 检查是否是硬件问题(如磁盘本生有坏 块),如果不是,检查是那个数据库对象 出现了坏块,对这个对象进行重建 表空间不够 增加数据文件到相应的表空间 出现ORA-600 根据日志文件的内容查看相应的TRC 文件,如果是Oracle 的bug ,要及时打 上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间) 数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name,

数据库基础操作语句

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

SQLServer数据库备份与恢复

SQLServer数据库备份与恢复 学院:工程学院专业:机械设计制造及其自动化班级:01 姓名:张丹学号:1522111 【实验内容】 通过SQL Server 自带的备份功能备份数据库 利用SQL Server自带的还原功能还原数据库 【实验原理】 数据库的建立和使用极大的方便了人们对数据的管理和应用,数据的稳定性和可恢复至关重要,因此要定期对数据库的数据进行备份。 【实验环境】 Windows 实验台 SQL Server 2000 【实验步骤】 打开Windows实验台,运行Windows 2003系统;运行SQL Server 2000的“查询分析器”和“企业管理器”。 SQL Server 数据库备份 (1)打开企业管理器,展开服务器组,然后展开服务器。 (2)展开数据库,选中所要备份的数据库,单击鼠标右键,依次选择“所有 任务”,“备份数据库”。 (3)在弹出的对话框中,依次修改:“名称”、“备份方式”、“目的”、“重写方 式”,最后点“确定”。 (4)开始备份。 (5)最后备份完成。 SQL Server 数据库还原 (1)打开企业管理器,展开服务器组,然后展开服务器。 (2)展开数据库,选中所要还原的数据库,单击鼠标右键,依次选择“所有 任务”,“还原数据库”。 (3)在弹出的对话框中,依次修改:“还原后的数据名”、“要还原的备份文件”。

(4)然后选择“选项”标签卡,选中“在现有数据库上强制还原”多选项。 (5)点击“确定”按钮开始还原。 (6)最后还原完成,如下图所示。 【实验总结】 该实验较复杂,对数据库的备份与还原的掌握与运用十分实用。

面试数据库常用操作语句

数据库复习资料准备 1、创建/删除数据库:Create/ Drop database name 2、创建新表:Create table name(id int not null primary key, name char(20)) // 带主键 Create table name(id int not null, name char(20), primary key (id, name)) // 带复合主键Create table name(id int not null default 0, name char(20)) // 带默认值 3、删除表:Drop table name 4、表中添加一列:Alter table name add column size int 5、添加/删除主键:Alter table name add/drop primary key(size) 6、创建索引:Create [unique] index idxname on tabname(col) 7、删除索引:Drop index idxname 8、选择:Select *from table where 范围 9、删除重复记录Delete from name where id not in (select max(id) from name group by col1) 10、插入:Insert into table(field1, field2) values (value1, value) 11、删除:Delete from table where 范围 12、更新:Update table set field=value where 范围 13、查找:Select *from table where field like “” 14、排序:Select *from table order by field [desc] 15、总数:Select count as totalcount from table 16、求和:Select sum(field) as sumvalue from table 17、平均:Select avg(field) as avgvalue from table 18、最大:Select max(field) as maxvalue from table 19、最小:Select min(field) as minvalue from table 20、复制表:Select * into b from a where 范围Select top 0 * into b from a where 范围 21、拷贝表:Insert into b(a, b, c) select d,e,f from b; 22、子查询: select ename from emp where deptno=(select deptno from dept where loc='NEW');// 单查询select ename from emp where deptno in (select deptno from dept where dname like 'A%');// 多行子查询 select deptno,ename ,sal from emp where (deptno,sal) IN (select deptno,MAX(sal) from emp group by deptno);// 多列子查询 23、外连接查询:Select a.a, a.b, a.c, b.c, b.d, b.f from a left out join b on a.a = b.c 24、between用法:Select a,b,c, from table where a not between 数值1 and 数值2 25、in用法:select * from table1 where a [not] in (‘值1’,‘值2’,‘值4’,‘值6’) 26、两张关联表,删除主表中在副表中没有的信息:delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1) 27、日程提前五分钟提醒:select * from 日程where datediff(‘minute‘,f开始时间,getdate())>5 28、前10条记录:select top 10 * form table1 where 范围 29、包括所有在TableA 中但不在TableB和TableC 中的行:select a from tableA except (select a from tableB) except (select a from tableC) 30、随机取出10条数据:select top 10 * from tablename order by newid() 31、列出数据库里所有的表名:select name from sysobjects where type=‘U’ 32、列出表里的所有的字段:select name from syscolumns where id=object_id(‘TableName’)

数据库增删改查基本语句

数据库增删改查基本语句 adoquery1.Fielddefs[1].Name; 字段名 dbgrid1.columns[0].width:=10; dbgrid的字段宽度 adoquery1.Fields[i].DataType=ftString 字段类型 update jb_spzl set kp_item_name=upper(kp_item_name) 修改数据库表中某一列为大写select * from master.dbo.sysobjects ,jm_https://www.wendangku.net/doc/b910400996.html,ers 多库查询 adotable1.sort:='字段名称ASC' adotable排序 SQL常用语句一览 sp_password null,'新密码','sa' 修改数据库密码 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值orderby 字段名[desc] " sql="select * from 数据表where 字段名like '%字段值%' orderby 字段名[desc]" sql="select top10 * from 数据表where 字段名orderby 字段名[desc]" sql="select * from 数据表where 字段名in('值1','值2','值3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" (3)删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" sql="insert into 目标数据表select * from 源数据表"(把源数据表的记录添加到目标数据表)

MSSQL数据库高可用性方案

高可用MS SQL Server数据库解决方案 建设目标 减少硬件或软件故障造成的影响,保持业务连续性,从而将用户可以察觉到的停机时间减至最小,确保数据库服务7*24小时(RTO为99.9%)运转,建设一套完整的高可用性MS SQL Server数据库系统。 需求分析 服务器宕机造成的影响 服务器宕机时间使得丢失客户收益并降低员工生产效率,为了避免对业务造成影响,从两个方面采取预防措施: 一、计划宕机时的可用性: ●补丁或补丁包安装 ●软硬件升级 ●更改系统配置 ●数据库维护 ●应用程序升级 二、防止非计划性宕机: ●人为错误导致的失败 ●站点灾难 ●硬件故障

●数据损毁 ●软件故障 现有状况 ●服务器存在单点故障; ●数据库未做高可用性配置; ●数据库版本为MS SQL Server2008; ●服务器配置为CPU E7540 2.0,24G存; ●数据库容量约800G 技术解决方案 解决思路 考虑到本项目的需求和最佳性能,为了达到最佳可用性,方案采用两台数据库服务器做故障转移集群,连接同一台存储做数据库的共享存储,实现故障自动转移。同时,将旧服务器作为镜像数据库,采用SQL Server 2012的alwayson 功能来再次完成自动故障转移,并可以分担查询的负载。

架构拓扑 新数据库:承担数据库主体计算功能,用于生产数据,采用双机集群,实现自动故障转移。 旧数据库:通过镜像功能,存储数据库副本,用于发生故障时的转移。也可配置为只读,承担备份的负载。 存储:存储采用双控制器,双FC连接两台服务器,避免单点故障。 主/辅域控制器:采用双机模式,SQL Server 2012 实现高可用的必备基础设施。 高可靠性技术方案 SQL Server的企业版支持所有的高可用性功能,这些功能包括:

ACCESS数据库中常见的SQL语句汇总教程

ACCESS数据库的SQL语句教学 1、查询所有记录:Select *通常用于快速查看表中的记录。当对表的结构无法确切记忆时,或要快速查看表中的记录时,使用Select *是很方便的。 use 企业销售管理系统 Select * from 职工 2、投影查询:很多时候并不需要将所有列的数据都显示出来。投影查询就是允许用户显示所需要的列。假设显示职工表中职工号、姓名、工资信息,具体操作方法如下。 Select 职工号,姓名,工资 from 职工 在Select查询中,还可以按照实际的需要或自己的喜好安排显示列的顺序,如果要把姓名放到第一列,则代码如下: Select 姓名, 职工号,工资 from 职工 3、条件查询:显示wh1或wh2仓库、性别不为女、工资在1300~2100之间的职工信息。具体操作如下: Select * from 职工号 where(仓库号='wh1' or 仓库号='wh2') And not 性别='女' and 工资>=1300 and 工资<=2100 在这里一定要注意,(仓库号='wh1' or仓库号='wh2')一定要加括号,否则就不是原题的意思。 4、谓词In查询:在查找特定条件的数据时,如果条件较多,就需要用到多个Or运算符,以查找满足其中任一条的记录。但使用多个Or运算符,将使Where子句变得过于冗长,这时使用In就非常清楚。另外,在后面讲解的嵌套查询中,也必须使用In查询。下面以显示zg1、zg2、zg11、zg15的订购单信息为例具体讲解一下。

使用Or运算符 Select * from 订购单 where 职工号='zg1' or 职工号='zg2' Or 职工号='zg11' or 职工号='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 in('zg1', 'zg2', 'zg11', 'zg15') 在Select语句中,还支持In与Not结合使用。假设显示职工号不为zg1, zg2, zg11, zg15的订购单信息,具体代码如下: 使用Or运算符 Select * from 订购单 where 职工号!='zg1' or 职工号!='zg2' Or 职工号!='zg11' or 职工号!='zg15' 使用谓词In Use 企业销售管理系统 Select * from 订购单 where 职工号 not in('zg1', 'zg2', 'zg11', 'zg15') 5、模糊Like查询:有的时候,我们不清楚所要查询的信息,如显示职工信息,但不能确定该职工的姓名,只知道他姓名中含有“王”字,那该如何查找呢?SQL中提供了Like关键字,使用Like进行了查询时,还要指定通配符。 通配符及其含义

SQL Server备份与还原--恢复master数据库

SQL Server备份与还原--恢复master数据库 简介: Master数据库在整体上控制SQL sever的所有方面。这个数据库中包括所有的配置信息、用户登陆信息、当前正在服务器中运行的信息等。是整个系统中最重要的数据库。Master 数据库被损坏,可能导致SQL Server实例无法启动,所以在创建了任何用户定义的对象后都要备份它。下面几种情况都应该备份Master数据库: 更改服务器范围的配置选项 创建或删除用户数据库 创建或删除逻辑备份设备 Master数据库只能做完整备份 实验名称:备份master数据库 实验模拟环境: Master数据库数据丢失或出现设置错误,但能启动实例,通过还原Master的完整备份修复已损坏的数据库 注:恢复的前提必须是此前对数据库进行过完整备份,否则就失败。 实验步骤: 1. 破坏master文件(假设其文件破坏) 停止SQL Server服务,更改数据库文件master.mdf(随便重命名这里改为yue.mdf)

再次启动SQL Server服务,系统会提示错误信息,启动失败,如下图所示; 将数据库安装光盘1放进光驱

2. 运行安装setup.exe,重建master数据库。 在命令行下,运行cd c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn路径,进入数据库安装目录。 运行start /wait E:\setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=https://www.wendangku.net/doc/b910400996.html, 查看系统目录如图,新建成功。 3. 重建成功好,重新启动服务。

阿里云 MSSQL2008导入数据教程

MSSQL2008导入数据教程 一、导入数据的前提条件: 1、必需安装SQL SERVER2008 企业管理器——(SQL SERVER 一般会简称成MSSQL) 2、网络必需稳定,如果网络太慢客户端的MSSQL管理器会出现假死状态 二、需要了解的知识: 1、一个数据库可以包含多个数据表、多个存储过程、多个视图、函数等; 2、一个数据表肯定包含了多条数据行,比如文章内容就存在数据表里;

3、视图可以理解为虚拟的数据表,这个表的数据来自物理数据表,比如可以把三个表合成一个视图以便查询; 4、存储过程和函数是一段SQL脚本,它们大大增强了SQL语言的功能和灵活性;

通过以上的内容已经大概了解了SQL数据库需要的一些知识,下面开始来导数据。 三、数据导入的总体步骤: 1、在本机连接到远程服务器。 2、在本机生成SQL脚本,并把本机生成的脚本放到远程执行(这一步会建好表结构存储过程之类的,但没有把表里的数据行导进去)。 3、导入数据表里的数据(这一步就是把本机数据表里的数据行导入到远程的数据表)。 注意:以下演示涉及到的地址、用户名密码等信息为举例说明,实际操作请按自己所取得的主机信息填写。

例如:本地电脑上有个数据库,这个数据库包含"数据表"、"视图"、"自定义函数"、"存储过程",要把这些都导到远程服务器。 例如:购买的主机MSSQL数据库的远程服务器信息是这样的: 数据库地址: https://www.wendangku.net/doc/b910400996.html, 数据库用户名:hds100005678 数据库密码:****** 第一步:在本机连接到远程服务器;

连接成功后可以看到在本机的MSSQL管理器上多了个服务器节点; 第二步:在本机生成SQL脚本,并把本机生成的脚本放到远程执行;

数据库基本SQL语句大全

数据库基本SQL 语句大全 学会数据库是很实用D ??记录一些常用的sql 语句…有入门有提高 有见都没见过的…好全…收藏下… 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好 事…以后数据方面的东西就不用在程序里搞喽?.而且程序与数据库只要 一个来回通讯就可以搞定所有数据的操作 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建 备份数据的device USE master EXEC sp_addumpdevice ‘ disk ‘ c: MyNwind_1.dat ---开始备份 BACKU P DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not n ull] [p rimary key],col2 type2 [not null],..) 根据已有的表创建新表: A : create table tab_new like tab_old 使用旧表创建新表) B : create table tab_new as select col1,col2 5、说明:删除新表 drop table tab name ‘ testBack ??- from tab_old defi niti on only

6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一 能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tab name add p rimary key(col) 说明:删除主键:Alter table tab name drop p rimary key(col) 8、说明:仓J建索弓丨:c reate [uniq ue] in dex idx name on tab name(col ….) 删除索引:drop in dex idx name 注:索引是不可更改的,想更改必须删除重新 建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择: select * from tablel where 范围 插入: in sert into table1(field1,field2) values(value1,value2) 删除: delete from table1 where 范围 更新: up date table1 set field1=value1 where 范围 查找: select * from tablel where fieldi like '%vkee的语法很精 妙,查资料! 排序: select * from tablei order by field1,field2 [desc] 总数: select count as totalco unt from tablei 求和: select sum(fieldi) as sumvalue from tablei 平均: select avg(fieldi) as avgvalue from tablei 最大: select max(fieldi) as maxvalue from tablei

SQLServer数据库的备份和还原详解

SQLServer数据库的备份和还原详解 1. 基本概念: mdf文件:SqlServer数据库的主数据文件 ldf文件:SqlServer数据库的日志文件 SQL Server管理的每个数据库都对应一个mdf文件和一个ldf文件。当SQL Server服务处于开启时,这些文件是无法删除的。 用SQL Server 企业管理器,单击某个数据库,选择右键菜单中的“属性",从弹出对话框的“数据文件”和“事务日志”标签页中可以查看这个数据库对应的mdf文件路径和ldf文件路径。 2. 用SQL Server 企业管理器备份和还原数据库: 例如,备份数据库到可移动存储介质,然后还原到另一台机器上,步骤如下: 备份: 单击要备份的数据库,从右键菜单选择“所有任务->备份数据库”。 选择“完全备份”,删除“备份到”列表框中的现有内容,然后“添加”;弹出“选择备份目的”对话框,“文件名”就是你要得到的备份文件的存放路径。选好后确定,这时“备份到”列表框中出现你选择的目的文件路径。 因为没有重名文件,“追加”或“重写”选项的效果是一样的,不用管。选中它,确定,等待备份完成。完成后在你指定的路径下将看到你备份的文件,注意该文件默认没有后缀名。 备份文件还有很大的压缩空间,一般一个40多M的备份文件用winRAR压缩后只有4M左右,作为邮箱附件也没有问题。 还原: 将备份文件放到一个便于管理的文件夹下,例如你的数据库叫“test”,可以建立一个叫“e:\db_bak\test\”的文件夹。 从SQL Server 企业管理器单击“数据库”,选择“新建数据库...”,起名“test”,确定。看到该数据库出现在数据库列表中,里面只有一些系统tables。注意新建数据库默认的mdf文件和ldf文件都会被放在SQL Server安装目录下的子目录“MSSQL\data\”中,文件名与数据库名称相同。 单击该数据库,从右键列表中选择“所有任务->还原数据库”。弹出“还原数据库”对话框。 选择还原方式:“从设备”,单击“选择设备”弹出“选择还原设备”对话框。选择“还原自磁盘”。

mysql数据库常用语句大全

mysql数据库常用语句 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:mssql7backupMyNwind_1.dat’ --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明: 创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

C#常用数据库操作方法整理

C#常用操作数据方法整理 using System.Data.SqlClient; //导入sql数据库命名空间,这样可以用sql数据库操作相关类 String ConnectionStr = "server=.;database=数据库名;uid=sa;pwd=123456;"; //数据库连接字符串,server确定数据库服务器名,database定义数据库名,uid定义数据库使用者用户名,pwd为密码。 SqlConnection conn = new SqlConnection(ConnectionStr); //建立数据库连接,只有建立连接了才能操作数据。 //也可以合在一起:SqlConnection conn = new SqlConnection(“server=.;database=数据库名; uid=sa;pwd=123456;”); String SQLString=“”; //数据操作语句放在双引号中,语句有增,删,改,查操作。 SqlCommand comm = new SqlCommand(SQLString, conn); //建立数据库命令,确定sql数据操作语句,和数据库连接。 //也可以合并,SqlCommand comm = new SqlCommand(“数据库操作语句”, conn); conn.Open(); //打开数据库,只有打开数据库,数据库命令才能被执行。 int rows = comm.ExecuteNonQuery(); SqlDataReader dr = comm.ExecuteReader(); //专门用于读取数据库数据 Object result= comm. ExecuteScalar(); //或string result= Cmd. ExecuteScalar().Tostring(); //执行数据库命令: //ExecuteNonQuery()用于增,删,改操作,返回受影响的行数; //ExecuteReader()用于查操作,返回一个SqlDataReader类的对象; //comm.ExecuteScalar()执行查找,返回从数据表中查询结果的第一行第一个单元格的数据。conn.Close();

SQLServer 2008以上误操作数据库恢复方法

SQLServer 2008以上误操作数据库恢复方法——日志尾部备份 问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。遇到这种情况,一般都是没有做备份,不然也不会来发问了。首先要冷静,否则会有更大的灾难。直到你放弃。 解决方法: 对于这类问题,主要是找回误操作之前的数据,在2008之前,有个很出名的工具Log Exploer,听说还挺好用的,这个网上大把教程,这里就不多说了。但是唯一遗憾的是,不支持2008及更高版本,这时除了其他第三方工具,那么最常用的就是本文提到的方法——日志尾部备份。本文实验环境2008R2,对于2008及其以上版本可以使用这个方法,其实2005也可以,2000很少用,没试过,只是2008之前可以使用Log Exploer,所以就没必要用这种方法。 下面图文并茂讲解操作方法,至于原理,不属于本文范围,而且我相信真遇到误操作的时候,估计没人会看原理了。 步骤: (1)、检查数据库的恢复模式,如图:

或者使用脚本检查: 1.SELECT recovery_model,recovery_model_desc 2.FROM sys.databases 3.WHERE name='AdventureWorks' 结果如下: 确保数据库的恢复模式最起码不能为【简单】。至于如何修改成完整模式,我觉得这些应该没必要多说了。 切记,对于任何重要环境,不仅仅是客户正式环境(俗称生产环境),都强烈建议使用【完整恢复模式】,虽然对于另外两种(大容量日志(BULK_LOGGED)、简单(SIMPLE))来说,完整恢复模式产生的日志会大,但是在出现问题的时候,就会觉得这些都不算什么了。并且我也想不到任何理由对于正式环境不使用完整恢复模式。只要管理得当,完整恢复模式的日志也不会太变态。 (2)、这里其实隐含另外一步,曾经做过最少一次的完整备份。因为所有类型的备份都基于完整备份,如果没有最少一次完整备份,其他类型的备份都是多余的,所以在这里强调一下,在创建完一个新数据库之后,强烈建议甚至强制做一次完整备份。 1.SELECT database_name,recovery_model,name 2.FROM msdb.dbo.backupset 使用上面的语句粗略可以看到有那些数据库做过备份,由于测试,所以做了几次备份,可以看到我这个时间点已经做了备份了。 (3)、确保别人不再连接数据库,然后做一次日志尾部备份: 首先先创建一点数据: [sql]view plaincopyprint?

数据库常用语句

SQL常用语句一览 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*from数据表where字段名like'%字段值%'orderby字段名[desc]" sql="selecttop10*from数据表where字段名orderby字段名[desc]" sql="select*from数据表where字段名in('值1','值2','值3')" sql="select*from数据表where字段名between值1and值2" (2)更新数据记录: sql="update数据表set字段名=字段值where条件表达式" sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)" sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表) (5)数据记录统计函数: AVG(字段名)得出一个表格栏平均值 COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名)取得一个表格栏最大的值 MIN(字段名)取得一个表格栏最小的值 SUM(字段名)把数据栏的值相加 引用以上函数的方法: sql="selectsum(字段名)as别名from数据表where条件表达式" setrs=conn.excute(sql) 用rs("别名")获取统的计值,其它函数运用同上。 (5)数据表的建立和删除: CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) 例:CREATETABLEtab01 (namevarchar (50), datetimedefaultnow ()) DROPTABLE数据表名称(永久性删除一个数据表) 4.记录集对象的方法: rs.movenext将记录指针从当前的位置向下移一行 rs.moveprevious将记录指针从当前的位置向上移一行 rs.movefirst将记录指针移到数据表第一行 rs.movelast将记录指针移到数据表最后一行 rs.absoluteposition=N将记录指针移到数据表第N行 rs.absolutepage=N将记录指针移到第N页的第一行 rs.pagesize=N设置每页为N条记录 rs.pagecount根据pagesize的设置返回总页数 rs.recordcount返回记录总数 rs.bof返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof返回记录指针是否超出数据表末端,true表示是,false为否

MSSQL常用命令汇总

首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ?%value1%? ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count(*) as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL 随UNION 一起使用时(即UNION ALL),不消除重

相关文档