
sql语句大全
五红水-剪纸福字
2023年2月18日发(作者:教师技能大赛)SQL语句大全
--语句功能
--数据操作
SELECT--从数据库表中检索数据行和列
INSERT--向数据库表添加新数据行
DELETE--从数据库表中删除数据行
UPDATE--更新数据库表中的数据
-数据定义
CREATETABLE--创建一个数据库表
DROPTABLE--从数据库中删除表
ALTERTABLE--修改数据库表结构
CREATEVIEW--创建一个视图
DROPVIEW--从数据库中删除视图
CREATEINDEX--为数据库表创建一个索引
DROPINDEX--从数据库中删除索引
CREATEPROCEDURE--创建一个存储过程
DROPPROCEDURE--从数据库中删除存储过程
CREATETRIGGER--创建一个触发器
DROPTRIGGER--从数据库中删除触发器
CREATESCHEMA--向数据库添加一个新模式
DROPSCHEMA--从数据库中删除一个模式
CREATEDOMAIN--创建一个数据值域
ALTERDOMAIN--改变域定义
DROPDOMAIN--从数据库中删除一个域
--数据控制
GRANT--授予用户访问权限
DENY--拒绝用户访问
REVOKE--解除用户访问权限
--事务控制
COMMIT--结束当前事务
ROLLBACK--中止当前事务
SETTRANSACTION--定义当前事务数据访问特征
--程序化SQL
DECLARE--为查询设定游标
EXPLAN--为查询描述数据访问计划
OPEN--检索查询结果打开一个游标
FETCH--检索一行查询结果
CLOSE--关闭游标
PREPARE--为动态执行准备SQL语句
EXECUTE--动态地执行SQL语句
DESCRIBE--描述准备好的查询
---局部变量
declare@idchar(10)
--set@id='10010001'
select@id='10010001'
---全局变量
---必须以@@开头
--IFELSE
declare@xint@yint@zint
select@x=1@y=2@z=3
if@x>@y
print'x>y'--打印字符串'x>y'
elseif@y>@z
print'y>z'
elseprint'z>y'
--CASE
usepangu
updateemployee
sete_wage=
case
whenjob_level=’1’thene_wage*1.08
whenjob_level=’2’thene_wage*1.07
whenjob_level=’3’thene_wage*1.06
elsee_wage*1.05
end
--WHILECONTINUEBREAK
declare@xint@yint@cint
select@x=1@y=1
while@x<3
begin
print@x--打印变量x的值
while@y<3
begin
select@c=100*@x+@y
print@c--打印变量c的值
select@y=@y+1
end
select@x=@x+1
select@y=1
end
--WAITFOR
--例等待1小时2分零3秒后才执行SELECT语句
waitfordelay’01:02:03’
select*fromemployee
--例等到晚上11点零8分后才执行SELECT语句
waitfortime’23:08:00’
select*fromemployee
***SELECT***
select*(列名)fromtable_name(表名)wherecolumn_nameoperatorvalue
ex:(宿主)
select*fromstock_informationwherestockid=str(nid)
stockname='str_name'
stocknamelike'%findthis%'
stocknamelike'[a-zA-Z]%'---------([]指定值的范围)
stocknamelike'[^F-M]%'---------(^排除指定范围)
---------只能在使用like关键字的where子句中使用通配符)
orstockpath='stock_path'
orstocknumber<1000
andstockindex=24
notstock***='man'
stocknumberbetween20and100
stocknumberin(10,20,30)
orderbystockiddesc(asc)---------排序,desc-降序,asc-升序
orderby1,2---------by列号
stockname=(selectstocknamefromstock_informationwherestockid=4)
---------子查询
---------除非能确保内层select只返回一个行的值,
---------否则应在外层where子句中用一个in限定符
selectdistinctcolumn_nameformtable_name---------distinct指定检索独有的列值,
不重复
selectstocknumber,"stocknumber+10"=stocknumber+10fromtable_name
selectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname
---------groupby将表按行分组,指定列中有相同的值
havingcount(*)=2---------having选定指定的组
select*
fromtable1,table2
*=--------左外部连接,table1中有的而table2中没有得
以null表示
=*--------右外部连接
selectstocknamefromtable1
union[all]-----union合并查询结果集,all-保留重复行
selectstocknamefromtable2
***insert***
insertintotable_name(Stock_name,Stock_number)value("xxx","xxxx")
value(selectStockname,StocknumberfromStock_table2)---value为select语句
***update***
updatetable_namesetStockname="xxx"[whereStockid=3]
Stockname=default
Stockname=null
Stocknumber=Stockname+4
***delete***
deletefromtable_namewhereStockid=3
truncatetable_name-----------删除表中所有行,仍保持表的完整性
droptabletable_name---------------完全删除表
***altertable***---修改数据库表结构
_nameaddcolumn_namechar(2)null.....
sp_helptable_name----显示表已有特征
createtabletable_name(namechar(20),agesmallint,lnamevarchar(30))
insertintotable_nameselect.........-----实现删除列的方法(创建新表)
altertabletable_namedropconstraintStockname_default----删除Stockname的
default约束
***function(/*常用函数*/)***
----统计函数----
AVG--求平均值
COUNT--统计数目
MAX--求最大值
MIN--求最小值
SUM--求和
--AVG
usepangu
selectavg(e_wage)asdept_avgWage
fromemployee
groupbydept_id
--MAX
--求工资最高的员工姓名
usepangu
selecte_name
fromemployee
wheree_wage=
(selectmax(e_wage)
fromemployee)
--STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--VAR()
--VAR()函数返回表达式中所有值的统计变异数
--VARP()
--VARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression)--返回以弧度表示的角的正弦
COS(float_expression)--返回以弧度表示的角的余弦
TAN(float_expression)--返回以弧度表示的角的正切
COT(float_expression)--返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression)--返回正弦是FLOAT值的以弧度表示的角
ACOS(float_expression)--返回余弦是FLOAT值的以弧度表示的角
ATAN(float_expression)--返回正切是FLOAT值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1/float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT类型
RADIANS(numeric_expression)--把角度转换为弧度返回与表达式相同的数据类
型可为
--INTEGER/MONEY/REAL/FLOAT类型
EXP(float_expression)--返回表达式的指数值
LOG(float_expression)--返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10为底的对数值
SQRT(float_expression)--返回表达式的平方根
/***取近似值函数***/
CEILING(numeric_expression)--返回>=表达式的最小整数返回的数据类型与表
达式相同可为
--INTEGER/MONEY/REAL/FLOAT类型
FLOOR(numeric_expression)--返回<=表达式的最小整数返回的数据类型与表达
式相同可为
--INTEGER/MONEY/REAL/FLOAT类型
ROUND(numeric_expression)--返回以integer_expression为精度的四舍五入值返
回的数据
--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT类型
ABS(numeric_expression)--返回表达式的绝对值返回的数据类型与表达式相同可
为
--INTEGER/MONEY/REAL/FLOAT类型
SIGN(numeric_expression)--测试参数的正负号返回0零值1正数或-1负数返回
的数据类型
--与表达式相同可为INTEGER/MONEY/REAL/FLOAT类型
PI()--返回值为π即3.97936
RAND([integer_expression])--用任选的[integer_expression]做种子值得出0-1间
的随机浮点数
----字符串函数----
ASCII()--函数返回字符表达式最左端字符的ASCII码值
CHAR()--函数用于将ASCII码转换为字符
--如果没有输入0~255之间的ASCII码值CHAR函数会返回一个NULL值
LOWER()--函数把字符串全部转换为小写
UPPER()--函数把字符串全部转换为大写
STR()--函数把数值型数据转换为字符型数据
LTRIM()--函数把字符串头部的空格去掉
RTRIM()--函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING()--函数返回部分字符串
CHARINDEX(),PATINDEX()--函数返回字符串中某个指定的子串出现的开始位
置
SOUNDEX()--函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字
均只返回0值
DIFFERENCE()--函数返回由SOUNDEX函数返回的两个字符表达式的值的差
异
--0两个SOUNDEX函数返回值的第一个字符不同
--1两个SOUNDEX函数返回值的第一个字符相同
--2两个SOUNDEX函数返回值的第一二个字符相同
--3两个SOUNDEX函数返回值的第一二三个字符相同
--4两个SOUNDEX函数返回值完全相同
QUOTENAME()--函数返回被特定字符括起来的字符串
/*selectquotename('abc','{')quotename('abc')
运行结果如下
----------------------------------{
{abc}[abc]*/
REPLICATE()--函数返回一个重复character_expression指定次数的字符串
/*selectreplicate('abc',3)replicate('abc',-2)
运行结果如下
----------------------
abcabcabcNULL*/
REVERSE()--函数将指定的字符串的字符排列顺序颠倒
REPLACE()--函数返回被替换了指定子串的字符串
/*selectreplace('abc123g','123','def')
运行结果如下
----------------------
abcdefg*/
SPACE()--函数返回一个有指定长度的空白字符串
STUFF()--函数用另一子串替换字符串指定位置长度的子串
----数据类型转换函数----
CAST()函数语法如下
CAST()(AS[length])
CONVERT()函数语法如下
CONVERT()([length],[,style])
selectcast(100+99aschar)convert(varchar(12),getdate())
运行结果如下
------------------------------------------
199Jan152000
----日期函数----
DAY()--函数返回date_expression中的日期值
MONTH()--函数返回date_expression中的月份值
YEAR()--函数返回date_expression中的年份值
DATEADD(,,)
--函数返回指定日期date加上指定的额外日期间隔number产生的新日期
DATEDIFF(,,)
--函数返回两个指定日期在datepart方面的不同之处
DATENAME(,)--函数以字符串的形式返回日期的指定部分
DATEPART(,)--函数以整数值的形式返回日期的指定部分
GETDATE()--函数以DATETIME的缺省格式返回系统当前的日期和时间
----系统函数----
APP_NAME()--函数返回当前执行的应用程序的名称
COALESCE()--函数返回众多表达式中第一个非NULL表达式的值
COL_LENGTH(,)--函数返回表中指定字段的长
度值
COL_NAME(,)--函数返回表中指定字段的名称即列名
DATALENGTH()--函数返回数据表达式的数据的实际长度
DB_ID(['database_name'])--函数返回数据库的编号
DB_NAME(database_id)--函数返回数据库的名称
HOST_ID()--函数返回服务器端计算机的名称
HOST_NAME()--函数返回服务器端计算机的名称
IDENTITY([,seedincrement])[AScolumn_name])
--IDENTITY()函数只在SELECTINTO语句中使用用于插入一个identity
column列到新表中
/*selectidentity(int,1,1)ascolumn_name
intonewtable
fromoldtable*/
ISDATE()--函数判断所给定的表达式是否为合理日期
ISNULL(,)--函数将表达式中的NULL
值用指定值替换
ISNUMERIC()--函数判断所给定的表达式是否为合理的数值
NEWID()--函数返回一个UNIQUEIDENTIFIER类型的数值
NULLIF(,)
--NULLIF函数在expression1与expression2相等时返回NULL值若不相等时
则返回expression1的值
sql中的保留字
actionaddaggregateall
alterafterandas
ascavgavg_row_lengthauto_increment
betweenbigintbitbinary
blobboolbothby
cascadecasecharcharacter
changecheckchecksumcolumn
columnscommentconstraintcreate
crosscurrent_datecurrent_timecurrent_timestamp
datadatabasedatabasesdate
datetimedayday_hourday_minute
day_seconddayofmonthdayofweekdayofyear
decdecimaldefaultdelayed
delay_key_writedeletedescdescribe
distinctdistinctrowdoubledrop
endelseescapeescaped
enclosedenumexplainexists
fieldsfilefirstfloat
float4float8flushforeign
fromforfullfunction
globalgrantgrantsgroup
havingheaphigh_priorityhour
hour_minutehour_secondhostsidentified
ignoreinindexinfile
innerinsertinsert_idint
integerintervalint1int2
int3int4int8into
ifisisamjoin
keykeyskilllast_insert_id
leadingleftlengthlike
lineslimitloadlocal
locklogslonglongblob
longtextlow_prioritymaxmax_rows
matchmediumblobmediumtextmediumint
middleintmin_rowsminuteminute_second
modifymonthmonthnamemyisam
naturalnumericnonot
nullonoptimizeoption
optionallyororderouter
outfilepack_keyspartialpassword
precisionprimaryprocedureprocess
processlistprivilegesreadreal
referencesreloadregexprename
replacerestrictreturnsrevoke
rlikerowrowssecond
selectsetshowshutdown
smallintsonamesql_big_tablessql_big_selects
sql_low_priority_updatessql_log_offsql_log_updatesql_select_limit
sql_small_resultsql_big_resultsql_warningsstraight_join
startingstatusstringtable
tablestemporaryterminatedtext
thentimetimestamptinyblob
tinytexttinyinttrailingto
typeuseusingunique
unlockunsignedupdateusage
valuesvarcharvariablesvarying
varbinarywithwritewhen
whereyearyear_monthzerofill
查看全文
常用SQL命令和ASP编程
在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL
语句,如下:
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…)valuess(值1,值2,值3…)"
sql="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到
目标数据表)
(5)数据记录统计函数:
AVG(字段名)得出一个表格栏平均值
COUNT(*|字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)取得一个表格栏最大的值
MIN(字段名)取得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
引用以上函数的方法:
sql="selectsum(字段名)as别名from数据表where条件表达式"
setrs=(sql)
用rs("别名")获取统的计值,其它函数运用同上。
(5)数据表的建立和删除:
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……)
例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow())
DROPTABLE数据表名称(永久性删除一个数据表)
在ASP编程时,下面这些语句是必须知道的:
1.连接数据库
与Access数据库连接:
<%@language=VBscript%>
<%
dimconn,mdbfile
mdbfile=h("数据库名称.mdb")
setconn=object("tion")
"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=数据库密
码;dbq="&mdbfile
%>
与SQL数据库连接:
<%@language=VBscript%>
<%
dimconn
setconn=object("tion")
"PROVIDER=SQLOLEDB;DATASOURCE=SQL服务器名称或IP地
址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>
建立记录集对象:
setrs=object("set")
L语句,conn,3,2
2.记录集对象的方法:
xt将记录指针从当前的位置向下移一行
evious将记录指针从当前的位置向上移一行
rst将记录指针移到数据表第一行
st将记录指针移到数据表最后一行
teposition=N将记录指针移到数据表第N行
tepage=N将记录指针移到第N页的第一行
ze=N设置每页为N条记录
unt根据pagesize的设置返回总页数
count返回记录总数
返回记录指针是否超出数据表首端,true表示是,false为否
返回记录指针是否超出数据表末端,true表示是,false为否
删除当前记录,但记录指针不会向下移动
添加记录到数据表末端
更新数据表记录
附:
常数常数值说明
--------------------------------
adLockReadOnly1缺省值,Recordset对象以只读方式启动,无法运行AddNew、
Update及Delete等方法
adLockPrssimistic2当数据源正在更新时,系统会暂时锁住其他用户的动作,以
保持数据一致性。
adLockOptimistic3当数据源正在更新时,系统并不会锁住其他用户的动作,其
他用户可以对数据进行增、删、改的操作。
adLockBatchOptimistic4当数据源正在更新时,其他用户必须将CursorLocation
属性改为adUdeClientBatch才能对数据进行增、删、改的操作。
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
SQLSERVER2000功略(4)---自动化管理
发表人:kendy517|发表时间:2007年二月09日,11:56
面对大量反复的工作,即使一个优秀的管理员也会感到很大的负担。但为了保持
服务器维持在最佳运行状态,这些又时不得不作的工作。这时,SQLSERVER想
你所想,提供了自动化的管理措施。在我们工作之前,我们需要了解自动化背后
的好助手—SQLSERVERAgent,这个就是SQLSERVER的代理程序,他是运行在
后台的服务,可谓是幕后英雄!那他有什么功能呢,如下:
①作业调度。
②执行作业。
③产生报警。
④在指定的事件发生时,通知指定的管理员或操作员。
说到这里,我们就谈谈自动化中的角色:操作员,作业,警报。
操作员:所谓的操作员只是人名与其通信方式(可有电子邮件地址,呼叫器或
NETSEND的目的地三种)的设置而已。只要将服务器管理人员的联络方式都以
操作员设置妥当时,当SQLSERVER遇到各种需要处理的状况,SQLSERVER
Agent就会通过指定的方式通知管理人员前来完成,以达到及时的排除各种问题。
作业:作业是SQLSERVERAgent诸多功能中最常用的。所谓作业就是可让
SQLSERVERAgent自动执行的一组操作,它既可以自动执行(这个就涉及到调
度),也可以手动执行。在定义作业必须注意以下内容:作业的名称,作业的种
类,作业的所有者,作业的说明文字。
警报:就是指针对特殊的事件,要发信给操作员的设置。在作业的设置中的“通
知“页面中指定了要将作业执行状态通知操作员时,其实就是在设置警报(如下
图)
-333)=-333"border="0"galleryimg="no"/>
在定义警报时,可有两种设置事件的方式,一种是指明了针对某特定事件,也就
是只要在服务器发生该事件。另一种是指定事件的严重度(Serverity),只要是达
到指定严重程度的所有事件,SQLSERVERAgent就会发信通知操作员。
了解了概念,就是动手的时候了,这些我们就以图片给与说明,第一个我们新建
“操作员“,过程如下:
-333)=-333"border="0"
galleryimg="no"/>
-333)=-333"border="0"
galleryimg="no"/>
接着新建“作业“过程如下:
-333)=-333"border="0"
galleryimg="no"/>
-333)=-333"border="0"
galleryimg="no"/>
再来看看“警报“的创建过程:
-333)=-333"border="0"galleryimg="no"/>
-333)=-333"border="0"
galleryimg="no"/>
(注意在建立警报的“响应”栏目里,对应着相应的作业和操作员)
谈过了这些功能,是不是觉得真是很方便呀,当然了良好的运用不仅仅就这简单
的几步,这需要大家在应用中适时的总结以适应我们的需要。现在,我们再谈论
一个SQLSERVER
的另一项不错的功能—脚本。
所谓的利用脚本,就是可以将数据库对象或服务器中的其他对象以脚本(Script)
方式存入文件,也就是存成SQL程序以供我们继续利用。
同样脚本也可以用于这里的自动化管理。例如:我们可以将操作员,作业和警报
等对象存成Script文件后,再拿到别的服务器上加以利用。这是不是在不同的服
务器上创建相同的操作员等重复的工作了。这就是脚本的效率所在。
如果需要存为脚本文件,可以在企业管理器中右击相应的对象在“所有任务“/“生
成SQL脚本”命令,设置确定即可。
谈了上面的自动化管理的方式是很实用的,但似乎是不是缺乏全面性,要为自己
的服务器构建一套完善的自动化维护机制,可能需要花费不少心力,但是将大部
分的日常维护工作适度的自动化,多少可以减轻管理上的负担,为此
SQLSERVER还提供了一项可以将整套数据库维护工作自动化的功能,这就是数
据库的维护计划。
我们可以在企业管理器中执行“工具“/数据库维护计划器,这样就见到了如下界
面,依次设置即可。
这次的讨论就说到这里,关于自动化管理,我不用说大家都明白,合理的设置会
给你的工作带来什么样的影响,好好体会,让工作更加轻松!
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
SQLSERVER2000功略(3)-数据库的登陆及其用户权限
发表人:kendy517|发表时间:2007年二月09日,11:54
SQLSERVER2000功略(3)-数据库的登陆及其用户权限
SQLSERVER2000功略-数据库的登陆及其用户权限
说过了两章纯粹的理论,是不是有乏味的感觉,好,我们从这一讲就进入实质的
管理阶段。首先,我们讨论的是SQLSERVER安全管理中的登陆和权限问题。
SQLSERVER的登陆是安全管理的第一关。这个决定了那些人可以使用
SQLSERVER(就像进屋时的房门钥匙)。关于登陆控制,SQLSERVER则采用
了两种不同的检查方式:windows验证和windows,sqlserver混合验证。前者就
是我们登陆windows时的用户帐号,而后者则是在保留前者的前提下也允许
SQLSERVER中建立的登陆帐号。这也是为用户提供方便的选择。
我们拥有了登陆的帐号,就可以进入SQLSERVER的控制中心,那我们可以做
些什么哪?这个肯定是有控制的进行的。SQLSERVER中的访问权限分为两方
面,分别是:服务器本身的操作权限和数据库的访问权限。我们分别加以简介:
服务器的操作权限是从真个服务器来说的,是面向所有数据库的定义。例如:是
否有权创建或者删除登陆帐号,是否可以建立数据库等等。这些也就是通过设置
服务器角色(serverrole)来实现的。SQLSERVER内建了七个服务器角色,分
别代表七种服务器工作的操作权。
数据库的访问权限就是针对某一个数据库而言的。他可以分为两层,第一层是限
制何人访问数据库,第二层限制可访问数据库中的那些表,视图和存储过程,以
及是否可以用select,insert,update等等。这个权限往往是通过数据库角色得以实
现的。
(服务器角色不可以自定义,数据库角色可以自定义)
仅仅知道上面这些概念是不行的,因为SQLSERVER中的权限是比较复杂的,
因为彼此之间可能存在某些权链。所以仅仅概念是不容易说清的,我们讨论的就
是基础的东西,懂得了这些在真正工作中才可以更好的掌握管理技能。我们简单
的谈谈权链的问题吧!
由于每个对象都有他自己的拥有权信息,这个对象可能和其他对象存在一定的依
存关系,比如:一个视图是从另外一个视图建立过来的。这些相互依存的对象关
系可能拉的很长,因此相依存的对象的拥有权就形成一个由上而下的链结,这在
SQLSERVER中就称作拥有权链(OwnershipChain)。正是由于这样,可能所产
生的访问权限变得非常复杂。所以,我们在这里提出以视图和存储过程来限制访
问范围。通过视图确定用户可以访问的内容,然后把视图的相关权限赋予具体的
用户,这样可以有效的减轻权限设置的工作量(特别是用户访问范围跨度较大的
情况下)。除了视图,我们也可以自定义存储过程来对数据的访问加以限制,即
把一组可查询某特定数据的语句存成存储过程,然后将其execute权限设置给用
户,用户就可以执行他来取得数据了。这样省去了很多复杂的授权过程,是不是
很方便呀!
简单的说了说这些,我们再来谈谈SQLSERVER中特殊的东西:sa帐号,public
数据库角色,guest数据库用户。
Sa是SQLSERVER默认的管理员帐号,主要是为了向下兼容而设置的。这个也
就是安装好SQLSERVER时就有的帐号,而且权限极大,所以在安装过程中最
好把他的密码进行设置,不要为空。这个帐号相当于服务器角色中的system
administrator,而且不可以删除。
Public数据库角色是一个公共的数据库角色,也就是说当你新建一个数据库角色
的时候,默认的就属于这个角色。这个也是不可删除的。所以为了安全期间,我
们对public数据库对象不要赋予过多的权限(除非有这个需要)。
Guest是一个特殊的数据库用户,类似于windowsNT/2000下的guest帐号,都
是给未经授权的用户提供某种程度的访问权限。如果不需要这个用户可以将其删
除。
说了这些概念,其实现都是通过“企业管理器”实现的,我们就这些谈谈用相应的
系统存储过程:
登陆管理:sp_addlogin新增帐号
sp_droplogin删除帐号
sp_grantlogins允许某windows帐号访问
sp_denylogins禁止某windows帐号访问
sp_revokelogins删除某windows帐号访问
sp_helplogin查看帐号信息
sp_addsrvrolemember将某用户添加到服务器角色
sp_dropsrvrolemember将某用户从数据库角色中删除
sp_helpsrvrole查看服务器角色的信息
数据库用户管理:sp_grantaccess建立数据库用户
sp_revokedbaccess删除数据库用户
sp_helpuser查看用户信息
数据库角色管理:sp_addrole建立数据库角色
sp_addrolemember将用户加入数据库角色
sp_helprole查看数据库角色信息
sp_helprolemember查看某数据库角色的所有成员
sp_droprole删除角色
sp_droprolemember删除角色中的某一成员
好了,看了上面的不要感觉麻烦呀,这可是让你高效工作的宝贝呀,熟能生巧,
我们一起联系多了,其实掌握就觉得很轻松了!继续努力!:)
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
SQLSERVER2000攻略(1)-工作流程篇
发表人:kendy517|发表时间:2007年二月09日,11:51
SQLSERVER2000是windows平台上一个重要的数据管理工具。了解数据库的朋
友对他一定很熟悉。我们就此在这里作一系列的讨论,希望通过这次的交流我们
对SQLSERVER2000有个深刻的理解。首先,我们探讨一下他的工作流程,这
可是工作的基础呀,好,我们开始了!
简单的说,SQLSERVER2000是个采用主从结构的关系数据库系统。哈,是不是
太简单,毕竟现在市面上的数据库产品几乎都是这个结构。我们来深入一点,所
谓SQLSERVER的主从结构(Client/Server),就是由SQLSERVER扮演存放数据
和提供数据给客户端的角色,当用户要取用数据时,则可调用各种不同的客户端
应用程序,通过SQLSERVER所支持的接口,向SQLSERVER提供请求,然后
取得数据库中的数据并返回给用户。这个过程应该好理解吧。
看了这个是不是觉得很easy呀!其实,这只是比较传统的双层式Client/Server
结构,近年来三层式或者多层式主从结构的应用正在流行。例如:配合微软的
BackOffice中的其他服务器产品,即可建立多层主从运算模式。
了解了基本的数据流程,那是不是要问是什么实现客户端与服务器之间的沟通
哪?这个是个比较有意义的问题。我们知道了作什么,就应改知道他是怎么做的。
所谓,打破沙锅问到底!我们说一下工作原理:SQLSERVER提供了多种不同的
接口让客户端(应用程序)顺利与服务器进行交流,在此接口的基础上,由
NET-Library(网络函数库)建立两边IPC(InterprocessCommication)通讯管道来
进行工作。具体的说就是:当客户端程序使用某种接口向服务器提出查询请求时,
数据库接口驱动程序调用客户端的Net-library,而Net-library则调用IPC应用程序
接口产生IPC,通过IPC送达服务端,服务端接受请求后经SQLSERVER处理,
以同样的方式将结果送回客户端。(这个过程有两个情况,Client和Server在同
一台计算机上,Net-library会使用localIPC,如果是网络存取,则会有双方所使用
的网络协议产生RemoteIPC)图示如下:
了解了外部工作机制,咱们看看服务端是怎么分工的,毕竟多数的数据工作是由
服务器完成的。整体上说,整个SQLSERVER的数据管理系统分为如下几个组
件:
▲OpenDataService(ODS):负责处理由Net-library送来的查询请求,ODS会调用
SQLSERVER的内部功能来完成客户端的需求。
▲SQLServerService:这个SQLSERVER的“心脏”负责管理我们的数据库,以及
所有建立,查询和修改的数据库的操作。此数据库管理系统的核心又分为几个单
元,其中最主要的两个单元就是负责解SQL语法和安排查询执行计划等工作的
关系引擎(RelationalEngine),以及负责管理数据库文件和文件读写等工作的存
储引擎(StorageEngine)。这两个组件之间则是通过OLEDB接口来通信的。
▲SQLSERVERAgent(SQLSERVER代言程序):可以说此组件是重要性仅次于
SQLSERVERService的组件,这个服务提供了有关工作编排,以及服务器有问
题时通知管理员等相关功能的支持。
▲MSDTCService:如果将SQLSERVER安装在多台服务器上,要让客户端能够
在单个事务中对不同的服务器(数据源)进行处理,就须借助MSDTC(Microsoft
DistributedTransactionCoordinator)Service来负责这类分布式事务的协调工作,
以确保在各个数据库上的更改操作能正确完成。
了解了上面的过程,是不是有点印象了,来我们理清一下思路,问一下自己:客
户端的工作请求怎么传递给服务器的?服务器又是怎么处理相应的请求的?认
真想想这两个问题,其实你会觉得原来“不过如此”!^_^
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
SQLSERVER中使用存储过程(StoredProcedure)
发表人:kendy517|发表时间:2007年二月09日,11:50
随着SQLSERVER不断的学习,认识的深入,我们会发现越来越多的功能呈现
在我们面前,这些功能都是十分强大的,在我们应用中发挥着十分有意义的作用,
也因此感知作为一个大型的数据库管理系统的魅力所在。从这一篇开始,我们着
手讨论“存储过程“,”触发器“,”游标“,”事务“和”锁“的应用,如果熟练的掌握
了这些,我想驾驭SQLSERVER的能力将是一个新的层次。学习是为了应用,
掌握就是为了解决问题。希望通过我们一起的学习,我们都可以很好的利用这个
工具为我们服务。这是我们学习的目的也是我们的奋斗目标。好,我们继续吧!
说起存储过程,我们先了解他的概念,这是我们讨论必走的第一步:存储过程就
是将所需要的工作,预先以SQL程序写好,命名后进行保存,以后需要作这些
工作时可以使用EXECUTE指令来调用,即可自动完成相应任务。这里的存储过
程也是自动化的一个方面,总之就是为了方便管理的一种措施。让我来说说他的
优点吧:
1.执行效率高(这点不容置疑)
2.统一的操作流程:也就是通过存储过程的操作避免了一些操作过程中可能无
意中认为的错误,只要确定了制作存储过程时是正确地,以后在调用过程中就不
用担心了。大家使用时流程是一样的。
3.重复使用
4.安全性:这一点我们在数据库的安全策略里讨论过,可以参考前边的文章。
也就是说:我们可以利用存储过程作为数据存储的管道。可以让客户在一定的范
围内对数据进行操作。另外,存储过程是可以加密的,这样别人就看不到他的内
容了。
存储过程分为三类:
系统存储过程(SystemstoredProcedure)sp_开头,为SQLSERVER内置存储过
程:
-333)=-333"border="0"
galleryimg="no"/>
扩展存储过程(ExtendedstoredProcedure),也就是外挂程序,用于扩展
SQLSERVER的功能,以sp_或者xp_开头,以DLL的形式单独存在。
-333)=-333"border="0"
galleryimg="no"/>
Δ(观察上面的你会发现系统存储过程和扩展存储过程都是在master数据库中。
sp_开头的可是全局的,任何一个数据库都可以直接调用的。)
用户定义的存储过程(User-definedstoredProcedure),这个就是用户在具体的
数据库中自己定义的,名字最好不要以sp_和xp_开头,防止混乱。
了解了基本概念,就到应用的阶段了。
首先创建一个存储过程(在pubs数据库中),我们命名为MyProce示例代码如下(功
能为向stores表中插入stor_id,stor_name两个字段值):
createprocedureMyProce
@param1char(4),@param2varchar(40)--定义参数,作为存储过程的接口
withencryption--存储过程加密
asinsertstores(stor_id,stor_name)values(@param1,@param2)
go
我们如此调用:
execMyProce‘111111’,’Leijun’book’--参数赋值,调用存储过程
用企业管理器创建如图所示:
-333)=-333"border="0"
galleryimg="no"/>
如果我们要修改,可以查看相应的存储过程的“属性“,如上图在”文本“窗体中修
改。
但是注意我们这个因为用了withencryption语句,所以,打开时将有下面的提示,
不允许查看,这也就是加密。
-333)=-333"border="0"
galleryimg="no"/>
看了上面的是不是有所了解了,其实创建时还有其他的参数可以使用,我们这里
只是一个简单的例子,更多的应用需要我们在实践中不断的总结,这样才能更加
灵活的应用。下面我们再来看一个创建的例子(这个的作用是在authors表中查
找一个人名,表中把一个名字分为两字段存储了,如果查到了,打印“查有此人
ID:”及其au_id字段值):
CREATEprocedureSearchMe
@param1varchar(10),@param2varchar(30)
as
select@param2=au_id
fromauthors
whereau_fname+au_lname=@param1
if@@rowcount>0--全局变量,记录影响到的行
print'查有此人ID:'+@param2
GO
我们这样执行:ExecSearchMe‘leijun’,null
由于查找到了所以显示如下:
-333)=-333"border="0"
galleryimg="no"/>
例子就简单列举这些,因为他的灵活性很大,所以我们只简单的说明一下,如果
要更好的利用,这就需要我们不断的摸索了。
下面我们谈谈使用过程中我了解到的注意事项:
1.在存储过程中,有些建立对象的语句是不可使用的:createdefault,create
trigger,createprocedure,createview,createrule.
2.在同一数据库中,不同的所有者可以建立相同名称的对象名。例如:
,,三个数据表可以同时存在。如果存储过程中未指明对
象的所有者(例如存储过程中的语句select*fromsample,这句中的sample没有
指明所有者),在执行的过程中默认的所有者查找顺序是:相应的存储过程的建
立者->相应数据库的所有者。如果这个查找过程中没有把所有者确定下来,系
统就要报错。
(这里我额外插一句:如果需要严密的数据操作,在任何操作中尽量加上所有者,
例如)
3.在存储过程名称前边添加#或者##,所建立的存储过程则是“临时存储过程
“(#是局部临时存储过程,##是全局临时存储过程)。
上面的都是一些容易忽略的,特别是第二条,我们一定的认真思考,也许这些有
意无意的忽略是我们造成错误的根源!!
转载自:leijun
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
[Php+APACHE+MySQL][或在windows已装IIS下的]配置
发表人:kendy517|发表时间:2007年二月09日,09:30
前段时间的文章:
/bbs/?id=2372560
可以一看,但是其对本篇价值是1%.希望本篇能补充之缺陷.
一:下载安装程序
Apache可以从/下载
PHP可以从下载.
mysql在/下载.
二安装程序(以下以2k为例说明,其他windows系统的类似)
首先如果您安装了IIS的话,Internet服务管理器--->默认web站点-->右击--->停
止.
1:先是Apache,有4.2M左右,没啥说的,点击安装到D盘,为了方西系统重装,D盘
方便.一路会很容易的安装的成功.
2:php5.1.X的安装版是2.44m左右,可以点击安装,选择服务器的时候选择
apache,不过,没有组建扩展,还有下载扩展的dll文件包(有的19m左右,不一定),
复制到C:WINNT目录下面的.可以直接复制到d盘文件下面也可以,笔者不知道
为什么选择了第一种.
3:MySQL我下载的是4.1.7版本,36.7M左右,也是一路点击,然后启动之.
三:必要设置
如果我们要使用CGI二进制文件,那么我们要将如下指令插入到Apache的
配置文件中,以设置CGI二进制文件:
PHP以CGI方式安装到Apache:
ScriptAlias/php/"D:/php/"
AddTypeapplication/
Actionapplication/x-httpd-php"/php/"
如果我们想把PHP作为Apache2.0的模块,那么就一定要移动到
winnt/system32(WindowsNT/2000)或windows/system32(WindowsXP),覆
盖原有文件(如果有的话),对于PHP5,这个文件是。然后我们要
插入如下两行到中,以使我们的PHP作为Apache的PHP-Module
安装:
PHP以模块方式安装到Apache:
;ForPHP5dosomethinglikethis:
LoadModulephp5_module"c:/php/"
AddTypeapplication/
添加这2行代码到,文件可通过计算机搜索找出.哈哈....
再在里面找出:
DocumentRoot"D:/web/web/php"
相关行,可以修改成自己的php网站根目录.
如果你把那些扩展都复制到C:winnt下面的话.
测试:
<?phpinfo();?>
应该:正常可以看到的.
关于连接MySQL的,请看:
/bbs/?id=2408054
为了您的IIS能继续工作,请在internet信息服务--->默认web站点-->右击属
性--->IP地址:192.168.1.105,端口:81,否则会提示端口以已使用之类的信息.
完毕,有问题请马上提出,早安.
天气:大雨,ccdot发表于2006-1-212:48:43,阅读了460次,共有个1回复.
花了大半天的时间,终于把全新的php平台建了起来,历经了太多错误和反复,
看了网上无数篇教材,可仍错漏百出,唉,真不知道那些写教程的人在写什么。
不过苍天不负有心人,摸索了好久,最终还是成功了.:)..写下来,以后也有个
参照。
调试环境如下:
OS:win2000sp4
apache_2052-win32(msi格式)
php-5.0.2-Win32(zip包)
mysql-5.0.1-alpha-snapshot-win(zip包)
所有程序(apache,php,mysql)安装在F:/server目录下。
●解压php到f:/serverphp文件夹中。
的一些配置
.doc_root=F:/phpf//默认php文档位置,设为apache中一样,偶没设,却也行!!
.extension_dir=F:/server/php/ext//扩展文件位置,用作支持mysql,一定要设正确
._path=c:/temp//session存储位置
._redirect=0//如果出现SecurityAlert!ThePHPCGIcannotbeaccessed
directly的警告,设置此值
.register_global,把它设置为on.//避免post变量不能传递
.display_errors=on//显示错误消息
●装好apache到f:/server/apache2,首先让Apache2能支持php5
1、打开apache的配置文件,添加如下两行(php安装在F:/server/php下)
.AddTypeapplication/
.LoadModulephp5_moduleF:/server/php/
这样就已经可以支持了php了,不知网上的教程里为什么还要把那些dll文件
复制得满天飞(版本是相同的),郁闷。
2、的一些其他必要设置:
.索引页名称
.默认文档位置,设置DocumentRoot路径
3、网上流传的配置,我没有copy,但也成功了。
.把复制到winnt目录或system目录中
●安装mysql到f:/servermysql中。运行bin目录中。设置你的
用户名和密码,端口不必更改。
●接着让PHP支持Mysql数据库
.将安装目录中的-recommended复制到winnt目录中,改名为
查找[MySQL]字段内的内容.修改如下.
t_port=3306
//这里是MYSQL的端口.
t_host=localhost
//这里是本地主机.
t_user=root
//这里是用户
t_password=abcdefg
//这里是密码
修改到这里就可以让Php与MYSQL关联了.
最后启动PHP对MYSQL模块支持.
查找extension=php_字串.删除掉前面的;号
extension=php_
请注意.如果不启动PHP对MYSQL模块支持.将无法使PHPMYADMIN正
常工作.将提示:
cannotloadMySQLextension,pleasecheckPHPConfiguration
无法装入MySQL扩展,请检查PHP的配置。
可是我设置完这样,重启apache却出现找不到动态链接库的提示,
几经折磨才发现,必须把php中的复制到apache中的bin目录中才
ok(网上教材可没有)。
●让apache也支持mysql
把php目录下的复制到apache的bin目录下。
ok,调试phpinfo(),一切正常。可是我写了句echo"我爱你";,就出现了中文乱
码。老问题,从网上搜得一段话,顺利解决了问题。
●原因很简单,由于Apache它默认的编码是西欧编码,你只要在“”中
找到“AddDefaultCharsetISO-8859-1”将它修改为“AddDefaultCharsetGB2312”,
保存然后重新启动Apache再试,可能有的朋友的已经解决了,但还是有很多的
朋友的网站依然是乱码,包括我的,这是什么原因呢,网上也有介绍把它改为
“AddDefaultCharsetoff”,可能在你的网站也不一定行得通,实质问题在于它是
由网页制作软件引起的,如果你使用的是Macromedia公司的Dreamweaver系列
软件制作的,由于它的编码为“gb2312”,所以就会出现乱码,因此你只要在你网
页的代码中找到“”,把“gb2312”改为“GB2312”然后保存网页,再试试看,行了吧!
是不是太简单了,但是我为了把这乱码问题解决,也足足花了二天的时间才找到
真正的原因,如果你做好了,别忘记请我喝酒呀!
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
MSSQL经典语句
发表人:kendy517|发表时间:2007年二月09日,09:24
1.按姓氏笔画排序:Select*FromTableNameOrderByCustomerNameCollate
Chinese_PRC_Stroke_ci_as
2.数据库加密:selectencrypt('原始密码')
selectpwdencrypt('原始密码')
selectpwdcompare('原始密码','加密后密码')=1--相同;否则不相同encrypt('原始
密码')
selectpwdencrypt('原始密码')
selectpwdcompare('原始密码','加密后密码')=1--相同;否则不相同
3.取回表中字段:declare@listvarchar(1000),@sqlnvarchar(1000)
select@list=@list+','+omsysobjectsa,=
='表A'
set@sql='select'+right(@list,len(@list)-1)+'from表A'
exec(@sql)
4.查看硬盘分区:EXECmaster..xp_fixeddrives
5.比较A,B表是否相等:if(selectchecksum_agg(binary_checksum(*))fromA)
=
(selectchecksum_agg(binary_checksum(*))fromB)
print'相等'
else
print'不相等'
6.杀掉所有的事件探察器进程:DECLAREhcforeachCURSORGLOBALFOR
SELECT'kill'+RTRIM(spid)cesses
WHEREprogram_nameIN('SQLprofiler',N'SQL事件探查器')
EXECsp_msforeach_worker'?'
7.记录搜索:开头到N条记录
SelectTopN*From表
-------------------------------
N到M条记录(要有主索引ID)SelectTopM-N*From表WhereIDin(SelectTop
MIDFrom表)OrderbyIDDesc
----------------------------------
N到结尾记录
SelectTopN*From表OrderbyIDDesc
8.如何修改数据库的名称:sp_renamedb'old_name','new_name'
9:获取当前数据库中的所有用户表selectNamefromsysobjectswherextype='u'
andstatus>=0
10:获取某一个表的所有字段selectnamefromsyscolumnswhereid=object_id('表
名')
11:查看与某一个表相关的视图、存储过程、函数selecta.*fromsysobjectsa,
=ke'%表名%'
12:查看当前数据库中所有存储过程selectnameas存储过程名称from
sysobjectswherextype='P'
13:查询用户创建的所有数据库select*frommaster..sysdatabasesDwheresidnot
in(selectsidfrommaster..sysloginswherename='sa')
或者
selectdbid,nameASDB_NAMEfrommaster..sysdatabaseswheresid0x01
14:查询某一个表的字段和数据类型selectcolumn_name,data_typefrom
information_s
wheretable_name='表名'
[n].[标题]:Select*FromTableNameOrderByCustomerName
[n].[标题]:Select*FromTableNameOrderByCustomerName
from:/?PostId=585515
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
触发器-MSSQL常用操作
发表人:kendy517|发表时间:2007年二月09日,09:18
不再新开文章.
这里只打算讲解四部分了,也就最简单、最常用的四部分。
1、触发器。
定义:何为触发器?在SQLServer里面也就是对某一个表的一定的操作,触发
某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
常见的触发器有三种:分别应用于Insert,Update,Delete事件。(SQLServer2000
定义了新的触发器,这里不提)
我为什么要使用触发器?比如,这么两个表:
CreateTableStudent(--学生表
StudentIDintprimarykey,--学号
....
)
CreateTableBorrowRecord(--学生借书记录表
BorrowRecordintidentity(1,1),--流水号
StudentIDint,--学号
BorrowDatedatetime,--借出时间
ReturnDAteDatetime,--归还时间
...
)
用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同
时更改借书记录表的学号);
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
等等。
这时候可以用到触发器。对于1,创建一个Update触发器:
CreateTriggertruStudent
OnStudent
forUpdate
As
ifUpdate(StudentID)
begin
UpdateBorrowRecord
SetStudentID=tID
FromBorrowRecordbr,Deletedd,Insertedi
tID=tID
end
理解触发器里面的两个临时的表:Deleted,Inserted。注意Deleted与Inserted
分别表示触发事件的表“旧的一条记录”和“新的一条记录”。
一个Update的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到
Deleted表,然后删除Student记录并写入新纪录。
对于2,创建一个Delete触发器
CreatetriggertrdStudent
OnStudent
forDelete
As
DeleteBorrowRecord
FromBorrowRecordbr,Deltedd
tID=tID
从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。
这里我们只讲解最简单的触发器。复杂的容后说明。
事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被“级联”所替代.
来自:/?logID=512
分类:(一般分类)::评论(0)::静态链接网址::引用(0)
MSSQL数据库导出和导入
发表人:kendy517|发表时间:2007年二月09日,09:17
SQLServer导出导入数据方法
2004-02余枫一、导出导入SQLServer里某个数据库1.在SQLServer企业管理
器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。2.备份选
数据库-完全,目的备份到按添加按钮文件名在SQLServer服务器硬盘下输
入一个自定义的备份数据库文件名(后缀一般是bak)重写选重写现有媒体最
后按确定按钮。如果生成的备份数据库文件大于1M,要用压缩工具压缩后再
到Internet上传输。3.通过FTP或者remotedesktop或者pcanywhere等方法把
第二步生成的备份数据库文件或者其压缩后的文件传到目的SQLServer数据库,
如果有压缩要解压。4.目的SQLServer数据库如果还没有此数据库,先创建一
个新的数据库;然后选中这个新创建的数据库,按鼠标右键,选所有任务->还
原数据库还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件
名)->确定还原备份集->数据库-完全最后按确定按钮。完全的数据库导入成
功了。(如果在已经存在的SQLServer数据库上还原数据库可能遇到有还有其它
人正在使用它而恢复操做失败,可以去看->管理->当前活动->锁/对象->找到数
据库下锁的进程号->到查询分析器里用kill进程号杀掉这些锁,然后再做还原)
注意:如果在原有的目的SQLServer数据库上从备份文件(*.bak)还原数据库会
把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库
里的内容。如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据
库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;新
数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一
样才行。二、导出导入SQLServer里某个表1.没有防火墙,同一个局域网里或
不在同一个局域网里,但通过Internet可以互相访问在SQLServer企业管理器里
选中目的数据库,按鼠标右键,选所有任务->导入数据->弹出数据转换服务导
入/导出向导窗口->下一步->选数据源->数据源(用于SQLServer的Microfost
OLEDB提供程序)->服务器(可选择局域网内能访问到的所有SQLServer服务
器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQLServe身
份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQLServer服务
器上所有权限范围内的数据库)->下一步->选择目的->目的(用于SQLServer的
MicrofostOLEDB提供程序)->服务器(默认为上一步里选中的导出服务器,也
可以选其它局域网内能访问到的所有SQLServer服务器,或者直接输入IP地
址)->目的数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据
库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可
———————————————————————————————————————
3、通过活动,使学生养成博览群书的好习惯。
B比率分析法和比较分析法不能测算出各因素的影响程度。√
C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。X
C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错
C产品的实际生产成本包括废品损失和停工损失。√
C成本报表是对外报告的会计报表。×
C成本分析的首要程序是发现问题、分析原因。×
C成本会计的对象是指成本核算。×
C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。√
C成本计算方法中的最基本的方法是分步法。X
D当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本
中。×
D定额法是为了简化成本计算而采用的一种成本计算方法。×
F“废品损失”账户月末没有余额。√
F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。X
F分步法的一个重要特点是各步骤之间要进行成本结转。(√)
G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错
G工资费用就是成本项目。(×)
G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对
J计算计时工资费用,应以考勤记录中的工作时间记录为依据。(√)
J简化的分批法就是不计算在产品成本的分批法。(×)
J简化分批法是不分批计算在产品成本的方法。对
J加班加点工资既可能是直接计人费用,又可能是间接计人费用。√
J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,X
K可修复废品是指技术上可以修复使用的废品。错
K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。X
P品种法只适用于大量大批的单步骤生产的企业。×
Q企业的制造费用一定要通过“制造费用”科目核算。X
Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。X
S生产车间耗用的材料,全部计入“直接材料”成本项目。X
S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。(×)
W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对
Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对
Y引起资产和负债同时减少的支出是费用性支出。X
Y以应付票据去偿付购买材料的费用,是成本性支出。X
Y原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。X
Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差