数据库 *** 作

数据库 *** 作,第1张

MS Access数据连接

用DSN连接并且没有用户名和密码:

<%

set conn=ServerCreateObject("ADODBConnection")

connopen "YourDSNName"

%>

用DSN连接并且有用户名和密码:

<%db="db/db1mdb"

Set conn = ServerCreateObject("ADODBConnection")

connstr="Provider=MicrosoftJetOLEDB40;Data Source=" & ServerMapPath(db)

ConnOpen connstr

%>

<%

set conn=ServerCreateObject("ADODBConnection")

connopen "YourDSNName","username","password"

%>

用实际的数据库绝对路径连接:

<%

Set conn=ServerCreateObject("ADODBConnection")

Strconn="DRIVER={Microsoft Access Driver (mdb)}; "

Strconn=Strconn & "DBQ=e:\yanhang\databasemdb"

connOpen Strconn

%>

用实际的数据库相对路径连接:

<%

Set conn=ServerCreateObject("ADODBConnection")

Strconn="DRIVER={Microsoft Access Driver (mdb)}; "

Strconn=Strconn & "DBQ=" & ServerMapPath("/database/yanhangmdb")

connOpen Strconn

%>

MS SQL Server数据库连接

用DSN连接:

<%

set conn=ServerCreateObject("ADODBConnection")

connopen "DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename"

%>

不用DSN连接:

<%

Set conn=ServerCreateObject("ADODBConnection")

DSNtemp="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename"

connopen DSNtemp

%>

FoxPro数据库连接

<%

Set Conn=ServerCreateObject("ADODBconnection")

ConnStr="Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBC;SourceDB=C:\yanhang\databasedbc"

ConnOpen ConnStr

%>

Oracle数据库连接:

<%

set conn=servercreateobject("adodbconnection")

conncursorlocation=adUseClient

DSNTemp="Provider=MSDAORA1;Password=xxxxx;User ID=yanhang;Data Source=xxxworld"

connopen DSNtemp

%>

数据写入

……………………………………………………………………………………

<!--#include file="common/connasp"-->

<%

set rs=servercreateobject("adodbrecordset")

sql="select from online"

rsopen sql,conn,3,2

rsaddnew

rs("name")=request("name")

rs("Tel")=request("tel")

rs("fax")=request("fax")

rs("mail")=request("email")

rs("code")=request("zip")

rs("content")=request("contents")

rs("Address")=request("Address")

rsupdate

rsclose

%>

<script language="JavaScript">

alert("成功添加!!")

locationhref="backasp"

</script>

数据修改

……………………………………………………………………………………

<%

if request("action")="edit" then '判断是否修改

'取得表单传递的数据

member_name=Trim(RequestForm("member_name"))

member_pwd=Trim(RequestForm("member_pwd"))

question=Trim(RequestForm("question"))

answer=Trim(RequestForm("answer"))

realname=Trim(RequestForm("realname"))

sex=Trim(RequestForm("sex"))

zip=Trim(RequestForm("zip"))

address=Trim(RequestForm("address"))

tel=Trim(RequestForm("tel"))

fax=Trim(RequestForm("fax"))

mobile=Trim(RequestForm("mobile"))

email=Trim(RequestForm("email"))

web=Trim(RequestForm("web"))

vip=requestform("vip")

remark=Trim(RequestForm("remark"))

sql="select from member where m_id="&m_id

set rs=servercreateobject("adodbrecordset")

rsopen sql,conn,1,3

rs("member_name")=member_name

rs("answer")=answer

rs("question")=question

rs("member_pwd")=member_pwd

rs("realname")=realname

rs("sex")=sex

rs("zip")=zip

rs("tel")=tel

rs("mobile")=mobile

rs("fax")=fax

rs("address")=address

rs("email")=email

rs("web")=web

rs("vip")=vip

rs("remark")=remark

rsupdate

rsclose

set rs=nothing

call ok("资料修改成功!","edit_memberaspm_id="&m_id)

end if

%>

数据删除

……………………………………………………………………………………

<%

if Trim(RequestQueryString("action"))="del" then

ID = Trim(RequestQueryString("ID"))

set rs=servercreateobject("adodbrecordset")

sql="select from pay where ID ="&ID

rsopen sql,conn,1,3

rsdelete

rsclose

end if

%>

数据到期自动删除

……………………………………………………………………………………

<!--#include file="connasp"-->

<%

sql="delete from netCard where DateDiff('d',datetime,now)>15"

connexecute(sql)

%>

数据显示

……………………………………………………………………………………

<%

Lei="行业资讯" '设置显示信息类别

set rs=serverCreateObject("adodbRecordset")

sql="Select top 20 from News where Lei <> '"&Lei&"' order by ID desc"

rsopen sql,conn,1,1

if rseof then '判断数据库内有无信息,防止读取错误

%>

暂无信息!

<%

else

do while not rseof

%>

<%if len(rs("Title")) > 10 then Responsewrite left(rs("Title"),10)&"" else Responsewrite rs("Title") end if%>

<%

'循环显示数据

rsmovenext

loop

rsclose

set rs=nothing

end if%>

这些代码都是通过实践整理出来的,对新手非常的有用!

数据对象 *** 作语句,主要是对数据表中的一行数据,进行增删改查 *** 作:整个语句分成以下4类

ps:字段的书写顺序,不需要与数据表保持一致,只会保证数据1,与字段1一一对应存储

书写的数据类型,必须与字段定义时,数据的类型保持一致,varchar是字符串,数据必须有引号‘’

示例:

示例:

SQL包括了所有对数据库的 *** 作,主要是由4个部分组成:

1数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

2数据 *** 纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类 *** 作,其中数据更新又包括插入、删除和更新三种 *** 作。

3数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

4嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

下面我们将分别介绍: SQL数据定义功能包括定义数据库、基本表、索引和视图。

首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)

1数据库的建立与删除

(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:

CREATE DATABASE <数据库名> 〔其它参数〕

其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。

例:要建立项目管理数据库(xmmanage),其语句应为:

CREATE DATABASE xmmanage

(2)数据库的删除:将数据库及其全部内容从系统中删除。

其语句格式为:DROP DATABASE <数据库名>

例:删除项目管理数据库(xmmanage),其语句应为: DROP DATABASE xmmanage

2基本表的定义及变更

本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。 SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:SELECT 目标表的列名或列表达式集合FROM 基本表或(和)视图集合〔WHERE条件表达式〕〔GROUP BY列名集合〔HAVING组条件表达式〕〕〔ORDER BY列名〔集合〕…〕

简单查询,使用TOP子句

查询结果排序order by

带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字,

模糊查询like

整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。在WHERE子句中的条件表达式F中可出现下列 *** 作符和运算函数:算术比较运算符:<,<=,>,>=,=,<>。逻辑运算符:AND,OR,NOT。集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。集合成员资格运算符:IN,NOT IN谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。上面只是列出了WHERE子句中可出现的几种主要 *** 作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:1无条件查询例:找出所有学生的的选课情况SELECT st_no,su_noFROM score例:找出所有学生的情况SELECTFROM student“”为通配符,表示查找FROM中所指出关系的所有属性的值。2条件查询条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。例:找出任何一门课成绩在70以上的学生情况、课号及分数SELECT UNIQUE studentst_class,studentst_no,studentst_name,studentst_sex,studentst_age,scoresu_no,scorescoreFROM student,scoreWHERE scorescore>=70 AND scorestno=student,st_no这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。例:找出课程号为c02的,考试成绩不及格的学生SELECT st_noFROM scoreWHERE su_no=‘c02’AND score<603排序查询排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。例:查找不及格的课程,并将结果按课程号从大到小排列SELECT UNIQUE su_noFROM scoreWHERE score<60ORDER BY su_no DESC4嵌套查询嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名SELECT st_no,st_nameFROM studentWHERE stno IN (SELECT st_noFROM scoreWHERE su_no=‘c03’ AND score>80 )这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。5计算查询计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:COUNT() 计算元组的个数COUNT(列名) 对某一列中的值计算个数SUM(列名) 求某一列值的总和(此列值是数值型)AVG(列名) 求某一列值的平均值(此列值是数值型)MAX(列名) 求某一列值中的最大值MIN(列名) 求某一列值中的最小值例:求男学生的总人数和平均年龄SELECT COUNT(),AVG(st_age)FROM studentWHERE st_sex=‘男’例:统计选修了课程的学生的人数SELECT COUNT(DISTINCT st_no)FROM score注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DISTINCT进行过滤。 由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。1安全性控制数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户 *** 作不同的数据对象的权限。存取权控制包括权力的授予、检查和撤消。权力授予和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库 *** 作前,先核实相应用户是否有权在相应数据上进行所要求的 *** 作。(1)权力授予:权力授有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:|CONNECT |GRANT|RESOURCE|TO 用户名〔IDENTIFED BY 口令〕|DBA |其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授予指定的用户。若要同时授予某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授予权力:GRANT CONNECT TO SSE INENTIFIED BY BD1928GRANT RESOURCE TO SSE用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:|SELECT ||INSERT ||DELETE |GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用户名|〔WITH GRANT OPTION〕|ALTER | |视图名| |PUBLIC||NDEX ||ALL |若对某一用户同时授予多种 *** 作权力,则 *** 作命令符号可用“,”相隔。PUBLIC 表示将权力授予数据库的所有用户,使用时要注意:任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力。例:如果将表student的查询权授予所有用户,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若将表subject的插入及修改权力授予用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION这里,UPDATE后面跟su_subject是指出其所能修改的列。(2)权力回收:权力回收是指回收指定用户原已授予的某些权力。与权力授予命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。DBA专用的权力回收命令格式为:|CONNECT |REVOKE|RESOURCE|FROM用户名|DBA |用户可用的权力回收命令格式为:|SELECT ||INSERT ||DELETE |REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用户名||ALTER | |视图名| |PUBLIC||INDEX ||ALL |例:回收用户SSE的DBA权力:REVOKE DBA FROM SSE2完整性控制数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的〔CHECK〕子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。3事务控制事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个 *** 作序列(集合),这些 *** 作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。SQL提供了事务提交和事务撤消两种命令:(1)事务提交:事务提交的命令为:COMMIT 〔WORK〕事务提交标志着对数据库的某种应用 *** 作成功地完成,所有对数据库的 *** 作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。(2)事务撤消:事务撤消的命令是:ROLLBACK 〔WORK〕事务撤消标志着相应事务对数据库 *** 作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令

mssql数据库 *** 作手册

一 备份数据库

打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server SQL Server组 >双击打开你的服务器 >双击打开数据库目录 选择你的数据库名称(如系统数据库Newasp) >然后点上面菜单中的工具 >选择备份数据库 备份选项选择完全备份 目的中的备份到如果原来有路径和名称则选中名称点删除 然后点添加 如果原来没有路径和名称则直接选择添加 接着指定路径和文件名 指定后点确定返回备份窗口 接着点确定进行备份

二 还原数据库

打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server SQL Server组 >双击打开你的服务器 >点图标栏的新建数据库图标 新建数据库的名字自行取 点击新建好的数据库名称(如系统数据库Newasp) >然后点上面菜单中的工具 >选择恢复数据库 在d出来的窗口中的还原选项中选择从设备 >点选择设备 >点添加 >然后选择你的备份文件名 >添加后点确定返回 这时候设备栏应该出现您刚才选择的数据库备份文件名 备份号默认为 (如果您对同一个文件做过多次备份 可以点击备份号旁边的查看内容 在复选框中选择最新的一次备份后点确定) >然后点击上方常规旁边的选项按钮 在出现的窗口中选择在现有数据库上强制还原 以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项 在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录) 逻辑文件名不需要改动 移至物理文件名要根据你所恢复的机器情况做改动 如您的SQL数据库装在D:Program FilesMicrosoft SQL ServerMSSQLData 那么就按照您恢复机器的目录进行相关改动改动 并且最后的文件名最好改成您当前的数据库名(如原来是NewCloud_data mdf 现在的数据库是Newasp 就改成Newasp_data mdf) 日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是_log ldf结尾的) 这里的恢复目录您可以自由设置 前提是该目录必须存在(如您可以指定d:sqldataNewCloud_data mdf或者d:sqldataNewCloud_log ldf) 否则恢复将报错 修改完成后 点击下面的确定进行恢复 这时会出现一个进度条 提示恢复的进度 恢复完成后系统会自动提示成功 如中间提示报错 请记录下相关的错误内容并询问对SQL *** 作比较熟悉的人员 一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误 数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复 *** 作 如果还提示正在使用的错误可以将SQL服务停止然后重起看看 至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

三 收缩数据库

一般情况下 SQL数据库的收缩并不能很大程度上减小数据库大小 其主要作用是收缩日志大小 应当定期进行此 *** 作以免数据库日志过大 设置数据库模式为简单模式 打开SQL企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 >双击打开数据库目录 >选择你的数据库名称(如系统数据库Newasp) >然后点击右键选择属性 >选择选项 >在故障还原的模式中选择“简单” 然后按确定保存 在当前数据库上点右键 看所有任务中的收缩数据库 一般里面的默认设置不用调整 直接点确定 收缩数据库完成后 建议将您的数据库属性重新设置为标准模式 *** 作方法同第一点 因为日志在一些异常情况下往往是恢复数据库的重要依据

四 设定每日自动备份数据库

强烈建议有条件的用户进行此 *** 作! 打开企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 然后点上面菜单中的工具 >选择数据库维护计划器 下一步选择要进行自动备份的数据 >下一步更新数据优化信息 这里一般不用做选择 >下一步检查数据完整性 也一般不选择 下一步指定数据库维护计划 默认的是 周备份一次 点击更改选择每天备份后点确定 下一步指定备份的磁盘目录 选择指定目录 如您可以在D盘新建一个目录如 d:databak 然后在这里选择使用此目录 如果您的数据库比较多最好选择为每个数据库建立子目录 然后选择删除早于多少天前的备份 一般设定 - 天 这看您的具体备份要求 备份文件扩展名一般都是bak就用默认的 下一步指定事务日志备份计划 看您的需要做选择 >下一步要生成的报表 一般不做选择 >下一步维护计划历史记录 最好用默认的选项 >下一步完成 完成后系统很可能会提示Sql Server Agent服务未启动 先点确定完成计划设定 然后找到桌面最右边状态栏中的SQL绿色图标 双击点开 在服务中选择Sql Server Agent 然后点击运行箭头 选上下方的当启动OS时自动启动服务 这个时候数据库计划已经成功的运行了 他将按照您上面的设置进行自动备份

修改计划 打开企业管理器 在控制台根目录中依次点开Microsoft SQL Server >SQL Server组 >双击打开你的服务器 >管理 >数据库维护计划 >打开后可看到你设定的计划 可以进行修改或者删除 *** 作

五 数据的转移(新建数据库或转移服务器)

lishixinzhi/Article/program/MySQL/201311/29538

以上就是关于数据库 *** 作全部的内容,包括:数据库 *** 作、数据库数据对象 *** 作语句SQL、SQL数据库的 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9344881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存